being productive is usually considered a good thing. however, over the last decade or so there have been tools and technologies unleashed upon the world that while they have certainly made us more productive, they have turned the average developer into a drooling, babbling idiot. more than ever, the gap between tool users who call themselves developers and people who can actually build, implement, design, and engineer solid, robust software systems is widening. how the fuck did we get to this point?? lets investigate...
the RAD fallout...
just like we have our favorite buzzwords of today, lets not forget every decade had it's own set of buzzwords. in the 90s, one of the most popular ones was RAD...rapid application development. it was motivated by a single concept...make the developer as productive as possible and stop at nothing no matter how assinine it is to make this possible. while not a new concept (it was really what smalltalk was supposed to do, but that's another story, and after that case tools, but that is another story as well), it was during the 90s that software developers were inundated with all the typical marketing bullshit telling us that RAD will take our productivity to new heights and will change the face of software development forever... well, um...hmmm....i totally agree...RAD really did change the face of software development forever...it opened up the doors to millions of fucking morons who under normal circumstances would have never, never, never, NEVER, NEVER EVER be qualified or even allowed to code "Hello World!", let alone contemplate a fucking career in software development.
there are two RAD tools especially that i see as blowing the doors wide open to let everybody and their mother try their luck as a software developer...microsoft visual basic and microsoft access (surprised, right...thank you microsoft!) ok, ok, before all the access and vb fanboys start having a fucking heart-attack, let me make a couple of things clear...
- i am NOT saying that all access and vb developers are completely incompetent fools who are so fucking clueless they should just kill themselves while simultaneously realizing that, yes they really are a fucking waste of humanity... for that my friends, you'll have to wait for another post ;)
- access and vb are by no means the only tools or technology that are responsible for this. trust me...i will detail more below. (some of which are non-microsoft related.)
what i am saying is that with these two tools, the barrier of entry for developing software was lowered considerably. by no means was microsoft the only vendor to get in on the RAD action. during the nineties, almost every software manufacturer attempted to get in on it. remember sybase's powerbuilder?? and who knows how many failed attempts ibm had at developing some kind of RAD tool?? and of course there is borland's beloved delphi, which out of the bunch was probably the most well thought out and implemented RAD tool, hailed by all the critics, was the feel good movie of the year, and designed by mr. c# himself...unfortunately it had a total user base of two. (and no, i am not one of them.) ok...lets move on now, shall we...
the web fallout
all right! raise your hand if you know somebody that got their career in building "enterprise, multi-threaded, distributed systems" with...html???? man!... h. t. m. l. ...fucking html... between html and the .com boom, there was a time where everybody on the fucking planet was somehow associated with the tech industry. who could've have predicted that software development was going to be so fucking confused with document design?!?!?! learn html in 3 seconds was spotted being eargerly carried by every graphic designer, secretary, middle-manager, and mcdonald's employee world-wide. this blissful state of affairs and ignorance did not last too long though...unfortunately for them, somebody had the fucking unmitigated audacity to decide that static pages weren't good enough for the web..."what do you mean...these web pages just sit there????" soooooooo...over time we went from seeing nancy (or bob or biff or bubbles) in accounting carrying learn html in 3 seconds to carrying learn cgi, perl, isapi, asp, or coldfusion in 3 seconds. and of course if they really wanted to dazzle 'em...they picked up learn javascript in 3 seconds as well...after that, more bad news...they needed to learn a database system as well. so now we can add learn access in 3 seconds to the quickly growing pile of books too. now not all of our htmlers made it this far, but some had no choice. when they went beyond the point of no return and gave everything up to be a web designer, all they could do was hope for the best with all this shit.
let me pause for a second... at this point you basically now have people doing mixed-language, client-server, distributed systems development. this is something that even a well experienced honest to god skilled software engineer/architect would find daunting with a decent toolset, let alone these fucking half-baked moronic web technologies. this is a pretty fucking scary situation. i can't tell you how many fucking times i've been asked to help out on projects (which is really just a euphemism for, "holy shit...get us the fuck out of this mess...NOW!!!!!!"), where the so called "tech-lead" (or whatever these buffoons fucking call themselves nowadays) didn't know at least one of the following:
- the difference between late and early binding
- the difference between call by reference and call by value (you don't even want to know how this one came up)
- what a "pointer" is (i'm being fucking serious here folks...)
- that visual interdev is NOT a programming language (i shit you not)
- what an XOR operator does
- that xml was not invented by microsoft (oh..man you should have heard this guy..."i won't use xml because it's a microsoft technology...")
- what the newton quotient is (all right, that has nothing to do with technology, but i was still surprised)
i am not making this up. these are things that regardless of platform, tool, or sexual preference you would think that everybody would just know as a matter of course (or at least i thought any developer would know). well, we can take heart in the fact that if these guys need any advice, they can always just ask the RAD developers that are sitting in the cubes next to them...
the java fallout
well...what can you possible say about the most hyped programming language in the fucking world??? jesus...talk about being in the right place at the right time. unfortunately the sun marketing department did a hell of a better job marketing it than then sun engineering department did in implementing it. i mean how many of us remember all the "write once, run anywhere" bullshit?? (jesus with some hindsight, i should have just sued those fuckers for false advertising, but once again that's another story.) also ironic is that aside from simplicity and portability, the most hyped part of java was applets...oh man...what a fucking success story that was!! oh yeah...while i could go on for days bashing java...my point is... is that java hype became so prevelant at one point, it attracted those same nancys, bobs, biffs, and bubbles from above...who armed with their trusty learn java in a ridicously short amount of time books went right to work amongst our RADers and web developers.
of course though...these guys had a little bit more of a harder time of it. apparently though the payoff was worth it. they might not be able to write a decent swap function, but they could all now say bullshit like, "well...java is a pure object-oriented language", while not even realizing that that's just plain wrong, and spout new acronyms they learned like jvm, rmi, and (for the truly fearless) jni, all while looking petulantly down at vb developers for not programming in a real language. this is pretty ironic being that sun was desperately trying to woo vb developers by touting how easy java was to learn and that anybody could be productive with the java platform in no time. woohoo!!! time to start the wankfest!!!
ramifications...
so...just what exactly does all this add up to?? i think this is the most interesting part, because when you take all the above into account, many things start to fall into place like:
the fact that most software systems today have a standard of quality that to call it fucking disgraceful is being way, way too kind. most software written today is a fucking abomination. the quickest way to write better software is to have better people build it.
the real reason why many microsoft developers go fucking completely apeshit when their manager talks about moving to an open source solution...they have neither the skills nor the mental capacity to develop on the linux platform. they feel threatened and insecure because programming in c, pointer arithmetic, manual memory management, and working on a system whose primary mode of communication is via a command line is just too mentally overwhelming for them. most open source development is done at a level of abstraction that is considerably lower than the level of abstraction offered by the typical microsoft tools and technologies. these are the kind of reasons why these developers gravitated to vb in the first place...
the whole vb6 petition fiasco. when microsoft released the .net platform along with vb.net, they tremendously improved the vb language. all i remember for years is hearing the vb community bitch and moan, and bitch and moan about things like theading, true object-orientation, being a toy language, getting no professional respect from their c, c++, and java peers, and so on. so what does microsoft do? amazingly enough, they give these cocksuckers a version of vb that has all of those long requested features finally implemented!! this is a perfect case of be careful what you asked for... because when these total fucking morons finally got it, they also got all the added complexity that these things bring with them. i wonder how many people who actually signed this petition know anything about actually writing code and developing software...(of course the only execption to this would be bill vaughn.) blinded by their fear of the unknown, these people do nothing but validate everything i've said above about vb'ers.
and about half a million other things...
finally, a couple of things...
- i am talking mostly about developers found in corporate IT environments who are typically writing applications meant to be used in house.
- these are just my own personal opinions formed from watching this shit happen over the last 12 years or so. i would expect your opinions and experiences to hopefully be different
- what was once considered to be baseline common knowledge among software developers is disappearing altogether or is considered to be too 'specialized' for typical corporate IT developers.
- due to financial reasons, these are just the developers that most software vendors cater to, so they are just fueling the fire...
- to be fair...believe it or not, i have met access developers who happend to be tremendously talented software developers. i know this is a total paradox (yes, bad pun intended), but there a few out there. also there are (believe it or not) many visual basic guys out there too that are fucking awesome developers. i try not to judge a book by it's cover, but i feel there are valid reasons why these tools and the developers who develop with them have the reputations that they do.