cross-posted from: https://lemmy.ndlug.org/post/1064425
And Linux isn’t minimal effort. It’s an operating system that demands more of you than does the commercial offerings from Microsoft and Apple. Thus, it serves as a dojo for understanding computers better. With a sensei who keeps demanding you figure problems out on your own in order to learn and level up.
…
That’s why I’d love to see more developers take another look at Linux. Such that they may develop better proficiency in the basic katas of the internet. Such that they aren’t scared to connect a computer to the internet without the cover of a cloud.
Related: Omakub
I wonder what kind of support for development do you get? Honestly I’ve only had obstacles when I switched, for example the docker installation was much more complicated on linux than on windows+wsl. Even installing python was problematic because apparently ‘upgrading it yourself can brick the system’, at least if an older version comes with the OS?
And lastly it’s the simple thing that pretty much all tools work on windows natively but on linux you have to find workarounds, which is definitely a problem when it comes to productivity.
So what are the benefits, what does linux have that windows doesn’t in this context?
It really comes down to what you’re used to. If you use Windows tools then you already know many of the workarounds for Windows and you don’t know the tools that haven’t been ported there.
For example, you know not to use Python directly, but that you have to install anaconda instead, or whatever the current problems with Python development on Windows are.
The big obvious thing that you can’t get away from is that you have to do things differently if you have develop for two different OSs with a view to deploying on Linux.
In particular support for shell scripts is crap on Windows. I could learn powershell or there’s workarounds using WSL and a bunch of other stuff that I don’t need to care about, but I’d rather not bother.
I don’t think it was the point of your post necessarily, but I did want to mention a couple of things that might make the Linux switch a little easier - if not for you, anybody else reading and agreeing.
First, distrobox (https://github.com/89luca89/distrobox) is a nifty frontend for podman/docker that I think makes it a little more usable/accessible without having a PhD in devops. Basically helper scripts that create a series of simple CLI commands that let you launch a new environment, enter the new (or old) environment, do stuff in the environment, exit the environment. Keeps your core system’s python separated from your development environment(s). Sacrifices the isolation qualities of containers in favor of usability, so probably ok for dev work on a desktop and not so much for production on a server.
Also, there are GUI applications for point and click management of distrobox - I use BoxBuddy, which is available as a Flatpak on Flathub, so again no interference with the core system provided it can run podman and flatpak.
Second, I know the php dev world figured out ways to abstract some docker complexity away with stuff like ddev (https://github.com/ddev/ddev) and lando (https://github.com/lando/lando). I wonder whether other languages have or will build that dev environment in a box abstraction on Docker/Podman/whatever.