Thursday 20 March 2014

An insight into the mind of a CFML developer

I was going to respond to this on the blog I found it (the Adobe ColdFusion one), but I'll do it here instead so I'm not polluting their blog with my anguish / irritation. Be warned: this is a fairly mean-spirited article, and singles out an individual.

Ram's (it's not Ram I'm singling out here; this is just framing the situation) doing a good job at blogging stuff about ColdFusion 11 and its mobile features, and this article is an example: "ColdFusion mobile features are not just about cfclient, but it is necessary" (it's old: it's from November, and it's been sitting idle until today). I'm not personally interested in the content, but I subscribe to these threads to see the discussion and what other people are thinking. This works, because today I found myself reading the comments and going "what the hell are you thinking?"

The comments have turned to discussing what would benefit CFML more, and the idea of ceasing with the crufty UI stuff (which <cfclient> basically is: "UI stuff", I mean), and perhaps work with the actual developers to improve the language. I think the zeitgeist (not subscribed to by everyone, granted) is we don't really need the help of the ColdFusion Team writing our client side code for us because a) they're not very good at it; b) there are a lot of other people out there who are really good at it; c) it's a bit career-stifling to only know how to do this stuff via ColdFusion. Some people seemed optimistic about <cfclient>, which is good... for them. You know my opinion.

Anyway, no comments since November 19 last year, until today when we get this chap Nate posting this comment:

I have been developing cf since the 1st version what was made way back when. It was attractive because it was easy and easy to make a database enabled application. I think the community has ruined CF. Ya all want to code in java script make everything OO, put everything in a cfc. make a bunch of simple stuff terribly complex. Phone gap mobile apps just add to that. CF should be simple, auto generate everything, and make all the jquery bs and the ajax that goes with it be behind the scenes. CF was once easy and simple and I could hire an 8th graded to code it, and it worked great. Ya ruined that and now cf sucks more than ever. Just saying..
Jesus Nate. I dunno what's worse. That you think that, or that you think that so adamantly that you bloody write it down and tell everyone. How bloody embarrassing. It's embarrassing for you, Nate, and it's also embarrassing for our community to have people with this level of lack of ambition, nous, and purchase on reality putting their heads above the parapet. Yes of course all communities have people like this. This doesn't make it a good thing.

I despair. It's just so monumentally ignorant. All these new-fangled "features" ("features" like OO, JS, mobile development: more realities of life than "features") should be seen as opportunities to improve one's self, and indeed opportunities to make one's job easier. OO isn't there just so people can feel smug; it's there to make life easier! I'm surprised you didn't mention the concept of "frameworks" as being a blighted complexity on the world (although I'm sure it's only because you forgot to). All this stuff makes it far easier to work with our sites.

Any of us that's been in the web business since the 1990s started out using Cold Fusion to automate cookie-cutter style templates to make dynamic web pages. And that's where the expectations were for web sites back then. There wasn't much to 'em. So that approach was adequate (and Cold Fusion was very good at filling that niche). However 20-odd years later, the requirements placed on us these days simply don't scale following those old school development practices. All OO and frameworks and the like really do is organise our code more, to make it more maintainable. Easier. This is a good thing. Similarly with JavaScript. It's not some fiend from the depths; it's a bloody useful tool, and the various JS libraries out there make it so very easy to use. Again: it's easier. It's easier than not doing it.

One can tell you've let your skills go stagnant by clinging on to this idea that "the old way" of doing CFML is the best way; had you tried to extend yourself, you'd easily see that there's more than one way to do something, beyond <cfset>, <cfquery>, <cfloop> and <cfif> (what's the fifth one? <cfoutput> I guess). And learning more than one way to do something improves one's capabilities across the board (eg: learning JS will improve both your JS and your general ability to program, so will improve your CFML as well).

You comment that 8th graders used to be able to do CFML. Well if they hadn't been scared of CFML because of its poor reputation in the industry (caused in no small part by people like yourself, Nate), they'd be writing code streaks ahead of you, mate. Whilst those 8th graders are off coding circles around you, I hope you have a very secure job in the corner of some IT office in the civil service somewhere (where no-one has any expectations of quality), because if you needed to find a job, you'd be bloody screwed. Or you'd be screwing whoever accidentally hired you.

Wake the hell up.