If I was trying to makes sense out of this as someone who doesn't use Linux daily, I'd be heavily confused and discouraged by such writing.
If I was trying to makes sense out of this as someone who doesn't use Linux daily, I'd be heavily confused and discouraged by such writing.
This is completely my personal opinion, but I find Linux much easier to navigate and set things up in than Windows. I barely used macOS, so I can’t judge that. In Linux, pretty much everything can be done in the terminal, and it's easy to find workarounds. If you “screw something up” badly—with no snapshots/backup—you can reinstall the whole system without touching the home partition, assuming it’s on a separate one. And we are not even talking about nixOS or the likes ones.
This is also why the Mobile Web Developer program at my college teaches Linux and Linux Web Hosting (including Apache and Wordpress) early on. We find this also helps students feel comfortable working within the macOS Terminal during all later courses, as well as with git commands.
Since the days of Apache/PHP I don't think people (need to) host their dev work on proper servers at their local computers. So this argument is kind of invalid unless you want to set-up your dev machine as some kind of dummy server.
True, and false
I do host the cloud software I work on on a local machine (running Debian-12) because it is easy. I do not need to, I want to and it makes me more productive
I also spend a lot of time in a terminal on a remote machine. I have to be careful to not get the two confused (I use different background colours for terminals on different machines.)
I have done the "remote terminal on cloud software" on Windows - a difficult and painful experience. Tools I take for granted, and get gratis, on Linux are not there on the Windows servers.
What ever flaws the article has it is not out of date
I see less developers setting up local servers and managing them for development purposes. Containers are not the same thing, for the purposes of this commentary on how people work now.
> You must understand why you damaged your system and why the fix you applied fixed it.
Only GNU/Linux (in fact any free software) gives you the possibility to fully understand your system. It allows you to drill down to any level required. Thriving for such understanding is a trait of hackers, but having the freedom to do so is beneficial for any software developer- at whom the article was targeted.
Not really, sadly. There's a bunch of binary blobs for the CPU as well as other opaque firmwares in the hardware.
Most of the time I would rather have devs spending time to learn their database engine for back end. For front end devs would rather that they spend time understanding how web browsers work.
While I like to spend time getting to know OS details and running windows or Linux servers - for instance I do get a grasp of CSS and can use dev tools in browser, but I see how a front end developer fixes CSS issues in 5 mins that take me 30mins.
We cannot expect everyone to know everything - but also I think we can expect some basic knowledge of different parts of stack.
Most systemd distributions have a lot of technical merit (I like Fedora Silverblue), but they are increasingly becoming monolithic, so hackability isn't one of their strengths.
I remember a time when Linux was pure anarchy, with loosely coupled independent subsystems that could easily be experimented with and replaced. Now, most distributions are much closer to macOS: they "just work", but you're not supposed to mess with them. So long for hackability.
I am not a fan of Systemd for irrelevant reasons. But the "monolithic" nature of systems has to do with the interdependence of the parts not the glue.
> I remember a time when Linux was pure anarchy, with loosely coupled independent subsystems
Sounds like my Linux box I have for fun. We are still making systems like that, but for business purposes we were always making solid and staid systems.
Very little has changed, only the words we use to say it (and the raw power of the underlying hardware of course!)
I (literally) remember a time from some years before Linux just was - because i was alive, and working in software, then.
source code of packages, including major ones, was available to download ... and source code for programs was available probably much before the technique of downloading was even a thing. people used to ship around programs in source code format via (magnetic) tapes or usenet or sneakernet, later, floppies, etc. see the Jargon File for much more computer lore than you would ever want to know about, including some of this stuff, although plenty of it is interesting, imo.
>So long for hackability.
pardon me.
are Linux distributions not downloadable as source anymore?
I guess, to many devs, including me, that's the ultimate meaning of hackability.
because then you can hack anything from the top to the bottom of the stack.
still editing ...
Autohotkey is vastly superior to anything available on Linux, where one must string together several arcane tools to achieve similar scripting effects. Autohotkey serves for everything, it is extreme reliable and predictable. I know someone will shout "there's Autokey on Linux! And pyautogui!". Rest assured, I know these tools. They're not nearly as reliable and comprehensive as Autohotkey is on Windows.
On Linux, I may sometimes have to glue xmodmap + xcape + xbindkeys + xdotool + wmctrl + whatever-else in a bash script that will probably require reading multiple man pages and multiple iterations to get right. Autohotkey would only require accessing a single source of solid documentation, as it can all be done in a single Autohotkey script that doesn't rely on any other tool.
More often than not GPT will give you the entire code that you need on the first or second response. But it only knows Autohotkey version 1.
By analogy it's as is there's a single stable interface to the GUI layers in apps mediated by the OS, instead of poking at X APIs.
I'm not a programmer but still... It's a little demotivating.
FWIW if you want something to start maximised I'm sure there's a flag in STARTUP_INFO to say that when you create process
You only need to know one – awk.
How is this even a question?
(edit: to not put words in anyone else's mouth)
Software freedom is a very important business property.
Closed source software can be OK while it is supported, and the licencing agreements not too onerous. But when those conditions no longer apply, very expensive retooling ensues. I have seen this often
Free software does not suffer those fates.
This is a very important business reason for Free Software
True, it doesn't.
The article encourages developers to learn Linux, not switch to Linux.
Outside of native phone and desktop applications, 90%+ of the time your code is going to run on some form of linux. Maybe you can argue a developer who only does windows desktop applications would not benefit from linux knowledge, however I'd argue they would benefit most of all lol.
I think today the only reason to need to know linux is actually backend dev and embedd in the sense of small pcs with custom uis.
With the amount SaaS today most of the backend services can be bough, so that also lowers the amount of developers who need to know linux.
As a comparison I don't have the skills or need to develop firmware or other software that directly interacts with hardware, but having some high level knowledge of how CPU, RAM and I/O physically operate has been very useful in designing good programs. I feel comfortable arguing that investing a small amount of time in basic linux knowledge is going to be a net benefit for virtually any professional developer.