Menu

Linux: “A Programming OS”?

January 25, 2020 - Programming

I don’t get why Linux is associated with programming so heavily. Or why it is said to be "good for programmers".

Now, I have some personal systems running Linux, and I’m relatively familiar with it. It’s a fine system. But I still don’t get why people associate Linux with Programming. Or rather why people make that connotation positively. I can’t even use, (realistically) those systems for my work!

I can think of four main reasons. One is that you have GCC as well as any number of other compilers built in to most linux distributions or at least easily accessible. Source control systems are usually developed for Linux and hell Git, one of the most popular, was developed originally for the Linux Kernel.

The second reason I can think is that it takes a programmer to actually customize it properly. Which isn’t strictly speaking a bad thing, but for all the problems people claim of Windows, many problems can be fixed in exactly the same way. People often talk about customizing their Linux distributions by programming new components, and then say "you can’t do that on Windows"… but that doesn’t make sense. Of course you can! I’ve written software specifically to customize my Windows experience on my Windows systems just as I’ve done the same for Linux. When Windows 10’s Network connection “foldout” was for lack of a better word, awful, I took it upon myself to solve my issue myself and created my own program that allowed connecting to networks via the Notification area. It uses rasphone, but what I’ve found is that for some reason it is more reliable than the built-in Windows interface.

Another angle is that perhaps “programmer” nowadays is often used to refer to “web developer”, via the development of web ‘applications’ and websites, for which Linux makes perfect sense since it is the basis of the most common LAMP web stack that is found/supported on most VPS systems, and can be administered via SSH as well quite easily. It’s also common to use things like Postfix and dovecot for managing mail, and, it can all be set up for only the cost of hardware. For that it certainly makes sense to work on Linux rather than try to test your Web application/software on Windows, because if you use Linux your testing environment will be the same as the one you eventually deploy it too.

One contributing factor I think is that a lot of the best programmers in the world have used nix like environments. However, Programming- like most "STEM", is full of hubris, so even though 99% of programmers can’t; be the 1%, we all seem to think we are top shelf product. Too many programmers don’t even consider that maybe the top 1% are people that are literally smarter than them, They think instead they must have hit some kind of “glass ceiling” because of their toolset or their OS. Some of us are so used to being "top of our class" or the "smartest one in the room" or rockstar programmers at small companies that we forget that in a larger scope, we are merely average and a lot of programmers/software developers cannot accept that. Clearly, It must SIMPLY be the toolset these top 1% use. So they start mimicking some of the best programmers, people like Paul Graham. They read his essays and see him making negative remarks about "mediocre" developers and the "masses" who use "Visual Blub" (Visual Studio") And they laugh, and go "haha, so true!" or repeat quotes to others, with zero self awareness. They start writing programs in Lisp, but their expressiveness is dreadful, and they still don’t even know what a cons pair is, but they’ll pretend if you ask them. They start writing code in eMacs or VI. But they can’t figure out why they aren’t shooting to the top. Could it be that they aren’t as smart as somebody else? "No…. no that isn’t true. That’s impossible!"

Emulating those top 1% by using the same toolsets as them doesn’t magically make you a better programmer. It’s equivalent to finding out they all drive say Toyota’s and figuring that if you drive a Toyota that you will become a good programmer. You don’t become a good programmer by following others; Those top 1% that people try to emulate didn’t follow anybody else to reach there, they followed their own path. Perhaps all those paths lead to *nix. Perhaps not. But you aren’t going to become a good programmer by simply taking a shortcut to the end of the path because what actually makes you more proficient at software development and programming is the journey not the final destination.

Have something to say about this post? Comment!