Ask HN: How do you find (again) joy in software dev with so much setup?
It takes days to set up the development environment. There are never ending libraries, frameworks, settings to do. Hours upon hours goes in configuring these and they are so finicky. One missed configuration somewhere can ruin one's day.
All I want to do is write code and do creative work. How do you get over this? How do you find joy (or at least not hate) in development again?
25 comments
[ 0.72 ms ] story [ 263 ms ] threadIt's still a slow start.
Then you have the getting to understand what to build/correct, what for, who for (that part is the slowest one).
Then deployment (somehow slow, but akin to automation like setup above).
The production (not slow, but depending on the environment and the history, might be painful).
The fun is occasionally in the coding part. But it more surely happens most of the time in the relationships and discussions around it.
(speaking for me, not a general case)
Sorry, I don't get this, this isn't difficult right?
This doesn't solve the problem of distributing developer-specific configuration, and limits the UI tools that can be used, but if you can live with these constraints then it allows you to treat your development environment as yet-another-service!
Tweak things that aren't working.
Has been working for my side projects since 2017.
For work, yeah.... it's a grind. All the custom build tools. Multi-step set up processes. That stuff does take days. But corporate jobs are slow for other reasons too and they're valid reasons. It takes a week or two to make a change at work that would take a few hours at home, due to planning, testing, waiting, approvals, etc. So the build environment is just another annoyance of working in a company that I suck up and deal with.
For company environments hopefully there is a script to do the setup, or an existing environment you can pull down or otherwise create trivially. If there isn't it's usually a day 1 thing and you're getting paid, so hard to complain.
For personal stuff I have environment files in a git repo and install what I want as I need it. It's not that difficult to manage, certainly not hours.
For provisioning new machines like CI/CD runners and so on, your project should have a configure script to do everything automatically.
https://www.adaltas.com/en/2022/02/08/nixos-installation/
Once you have setup one system and tuned a configuration.nix to your liking it's portable to each nixos system you setup.
I try to mitigate this as much as possible with templating projects. I use https://gitlab.com/reedrichards/cookiecutter-goapp for small webservers and this generates the infra i need for aws, and go has been a relatively simple development and packaging platform for me.
I am also working at https://brev.dev and have been using their product at work and on personal projects to help standardize my development environment well. I often found myself at other companies constantly fire fighting developer environments falling into entropy and wishing for something like this so we can not having to worry about the different configurations of N developers * M machines.
*edited to make link clickable
I really hate the whole babel, npm, sass, ts ecosystem. Too many dependencies, too many pre and post processors, pipelines to build, transpile… it sucks.
This helped me get my motivation back.
So switched to Swift and Xcode for personal stuff. I am still learning but it has been very refreshing and programming is fun again.