After coding for a Windows platform for a couple of days, I've come to realise why I've used Linux this long.
Linux has a feature which is formidable, incredible, and has kept me on the platform despite the occasional lack of drivers, breakages, and complete lack of gaming. It’s the one feature that beats the fact that Linux, unlike Windows, won’t try and be smarter than you, and unlike Macs, won’t pretend everything is alright when clearly it’s not.
In fact, this feature is the very reason that many software vendors are no longer supporting Linux, specifically in the drivers arena, but more generally as well. It causes a great amount of confusion among new users, and most people don’t even know what this feature is.
The feature is deprecation!
I know, it doesn’t sound like a feature at first, but it’s the single greatest thing about Linux. Sure, every other week someone’s gone and built a whole new paradigm to, say, write an audio driver, but by that same token, every other week someone’s gone and built a whole to paradigm to write an audio driver. The new paradigm is way cooler and can do more awesome things than the old one. I can see how some people who enter the game late can look at all these “competing” frameworks and wonder which one they should use. The answer should be obvious: Use the newest one until it becomes deprecated. The rest are probably deprecated already.
One reason I like this is that Linux ends up being an environment that’s unflinchingly, uncompromisingly future focused. As a guy who is not interested in horse and buggy transportation and lighting fires using pieces of rock, this sort of future focus makes living in Linux land really exciting. The only thing better than today, with all it’s sharp edges and paper-cuts, is the promise of tomorrow.
The other reason I like this is that it actually makes sense, because any time anyone asked "why do you have to do this", someone went and changed the API so it made sense. In the Windows world, someone will go and implement some idea up in 1995, and 15 years later I’ll have to know about how he was a little too drunk that night so I have to pass a corrupt Pakistani cricketer in as a parameter or else some guy’s Hello World application from 1996 will stop working. In Linux land, I pass exactly what I think I ought to pass, because everyone’s application inevitably stops working eventually in Linux land, and no one gives a shit.
Because while some people are all about shoring up the old and infirm, others are all about the future, and the road to the future is paved with software that no longer works.