Engineers play with Lego, but playing with Lego isn’t always engineering. I was reading coding horror again, and basically Atwood says that people are finding MS development shithouse and moving to something a little more open source. Unlike Nathan’s predictions about the year ahead, my predictions are more slow-but-sure. Linux works at making developers happy, because it’s written by developers who want to be happy.
Eventually, every developer alive will have grown up writing and using free / OS software, and whatever they do from then on will be writing stuff that works with that. They may do other things because it pays the bills, but they’ll do it whilst swearing at how shitty the development environment is. If you want a system where the developer comes first, then you can’t go past Linux. I feel almost literally like I’m working without all my limbs when I’m using anything else. Barring something really weird, open source software will eventually be the best you can get.
The thing that’s really strange is that Windows developers don’t appear to have these extra appendages. It’s like they’re tied up from birth and don’t know how to move freely. The reason I know this is simple: When they “leave” the Microsoft camp (I don’t even know what that means. I mean, why are there camps?), they always claim some non-developey reason for doing so: MS is unethical or MS raped my kittens or something. Truth be told, MS development almost exclusively involves cutting and pasting code, and that’s not development at all.
When I write something, I look up the documentation for whatever I need to do, and then go and do it. In Linux this is usually a “man XYZ” if I know the command, or some webby info. I then go and write code which takes care of the parameters and conditions. Sounds reasonable, right? I mean, I’d almost call that Engineering if you added some processes like unit testing and code reviews.
I had the displeasure of writing something Windowsey a couple of times. Not mentioning the uncomfortable programming environment, the slew of stuff you cannot automate, the thing that really got to me was that instead of looking up documentation (which was there, but completely undecipherable) you ended up doing the following: Google up your problem, or go to one of a multitude of sites with pre-baked solutions. Then you did something I’ve only ever done with Javascript...
You cut the code right out of the website.
You paste it into your codebase.
Repeat for the entire application. It was gross. Not only is this kind of thing borderline illegal, having this approach to software development is ultra the gay.I guess I understand why some people call it cutting code now. This was it. There was no way to test some of this shit. It felt like a bunch of crap sticky-taped into place. And then Visual Studio would generate extra code for you. Extra code which looked ugly as fuck. Then you have to go through a bunch of menus to get the right linker options, and then the application wouldn’t work because the code you ripped was for a different version of the compiler.
If you’re a Microsoft developer, and you start using Linux and write code in it, that’s the kind of shit you leave behind. It’s not even an ethics thing. If only you had eyes to see.