Ask HN: What language/IDE combo has the best DX (for achieving flow)?
by "best" I am imagining:
- on a laptop, no need to ever be switching windows - instant refresh on save (or rerun with very low build time if env is CLI), with state maintained. - 1-2 keypresses to access previous file. - dialtone editor features like auto-format on save, etc. - help/code suggestions integrated into editor (probably an area I'd be flexible on)
don't care what language. I just want to see what kind of flowful creative programming experiences are out there to really maximize the connection and refind the joy of programming after a day of clunky corporate work ...
They get a lot of hate, but tiling window managers are my secret sauce to hitting flow state. Any "work" device I use gets an install of i3wm with my keyboard shortcuts and dotfiles installed, designed so I spend as little time as possible with my hands off the keyboard. Maybe there's a "hackerman" meme to be made here, but minimalism is your best friend when you're trying to build a productive setup.
Perhaps even weirder, I don't particularly proselytize for one IDE or another. For command-line editing I use micro, which has the most natural feeling keybinds to me and loads in a flash. If I need a more robust workspace I'll usually reach for VS Code, or god forbid Intellij if the project is particularly hairy. In any case though, I think the biggest roadblock to staying productive is having a streamlined desktop. I've come to despise how Windows and MacOS in particular handle windows, it's a particularly distracting and annoying affair trying to reposition things every 30 seconds when a new window gets added to the mix. TWMs prevents you from doing the awkward dance between keyboard and trackpad/mouse.
Language-wise, I feel most productive writing Rust, Bash and Python. C/C++ are fine as well, but Rust is really good about catching errors before you hit compile time, and the overall structure of the language discourages you from making the kinds of mistakes that you'd otherwise be forced to catch in Valgrind. Again, it's mostly a matter of personal preference, but that's the way I roll when productivity is the table stake.
I think the “flow” comes from long experience with and mastery of the tools. I have used vi/vim for so long that I don’t think about it — the editor just gets out my way. I work with languages I know intimately. When the tools and language and all of that fade into the background of mental muscle memory you can focus exclusively on the actual work or project.
Everyone who replies will list the tools and languages that they have mastered and feel comfortable with. The “flow” doesn’t come from the editors or IDEs or languages, but from familiarity and confidence.