• When Good Blog Posts Go Bad

    I lost a little faith today. I usually stay out of the ego-driven world of blogging, and based upon the reaction to my friend’s blog I’ll probably achieve pariah status in the CF community for even voicing my opinion on this subject. Fortunately, my blog has a readership of about six people, and those who would really get upset about what I have to say in this post probably wouldn’t take kindly to me anyway.

    My friend and co-worker Brian LeGros has been blogging for about two months now on various things, and was the subject of some interesting events recently.

    It’s always a shame when people take the opinions of others to heart, especially when they are stated as opinions. Opinions will obviously differ, especially in a field as academic and subjective as technology. It seems that Brian Rinaldi took some serious offense to some of the things that Brian LeGros has been posting, resulting in a regrettable public outburst during which Brian LeGros was referred to as an “@$$”.

    Anybody who knows LeGros knows that he is a pretty humble individual with a self-deprecating sense of humor. This is obvious when you read the title of his blog, which is “What Do I Know”, and are made aware that his nickname amongst his colleagues at work is “Ham Ham Fury Legs.” Unfortunately, tone doesn’t translate well electronically, and things that I can read and see LeGros smirking at in sarcasm would be clearly lost as arrogance on those who are not familiar with his mannerisms.

    Additionally, anybody who has worked with LeGros is well aware of his deep understanding of computer science. I’d say he’s clearly one of the brightest people I’ve had the pleasure to work with (which either makes him very smart, or means I need to enlarge my circle of professional connections). Even so, LeGros and I don’t always agree on technology matters, and we can comfortably put our differences down to personal taste (or “preference” as LeGros would call it – we don’t even agree on nomenclature :) ).

    So I can see an outsider poring over LeGros’s blog, and taking the sarcasm and dry wit out of context. I can then see that same outsider reading what I can only imagine is the offending blog post and being sent over the edge.

    “Overall a pretty good talk, very solid. Everyone seemed to get the topic and have relatively relevant questions. It was kinda crazy, but exciting, to see some level of understanding at a CF conference finally.”

    I’ll state my disclaimer, followed by my opinion, and then I’ll don my flame-retardant underwear since I’m sure somebody will violently disagree with me. And thank God, because otherwise we’d be living in a police state.

    My disclaimer is this: I have a great deal of respect for the CF community, and this is why I have involved myself in it publicly for the last three years, speaking at several conferences and user groups and supporting community initiatives. There are a bunch of really smart people I have had the pleasure of meeting and learning from, including (in no particular order) Joe Rinehart, Sean Corfield, Simeon Bateman, John Paul Ashenfelter, and many others who I apologize for not mentioning.

    That being said, there’s clearly a large percentage of the CF community that has struggled with OO concepts ever since CFCs were introduced, and it’s been interesting to witness the emergence of OO technology as a core concept in CF development. It’s literally happened over the last three years; I wouldn’t be arrogant enough to say I was part of making it happen, but I witnessed it and hopefully contributed to it through some of my talks.

    At my second CF conference in 2004 (Fusebox, DC), the entire focus was on “what’s MVC?” and “how do I use CFCs with Fusebox?”, a topic which practically popped up as soon as Hal made his keynote speech. I was presenting a case study at this conference on using a CFC model for a Fusebox app that we had built at CFI, and clearly by the audience reaction there were not a lot of people using CF in this fashion at the time (bearing in mind that the app I case studied was almost a year old by the time I was presenting it at my talk). mach-ii was the only OO CFC framework, and many of the developers present hadn’t even looked at OO development seriously prior to the conference. There were excellent presentations by Hal and others on OO design and development that were packed wall-to-wall with CF developers looking to get on the OO bandwagon.

    Next year at the 2005 Frameworks conference, I was talking about using Java and Spring with ColdFusion. I had a nice chat with a guy named Chris Scott who said he was working on an AOP implementation for an IoC project based on Spring called ColdSpring. At the time, ColdSpring was still pretty small in terms of adoption, but it was clear that a revolution was taking place in the way that CF developers built their apps.

    I just got back from cf.objective() 2007, and still, Hal’s sessions on OO design and Chris Scott’s sessions on ColdSpring are packed wall-to-wall, and for many of the developers there it’s the first time they are really pulling back the curtain on OO development and getting ready to put it in to practice.

    So, what am I getting at? I’m getting at the fact that when LeGros says “It was kinda crazy, but exciting, to see some level of understanding at a CF conference finally”, he’s not being a dick. He’s not being sarcastic, and he’s not trying to talk down to anybody. What he’s saying is that it’s great to see OO concepts like those applied in ColdSpring and AOP becoming de-facto for CF developers, and for the adoption of OO and design patterns to be concepts that CF developers embrace and understand in the mainstream, as opposed to being limited to a handful developers pushing the limits.

    Anybody who attended the 2004/2005 conferences knows exactly what I’m talking about; the questions on OO development during those conferences were rudimantary and at the beginner’s level. This isn’t an insult to CF developers at large; it makes total sense for the state of the community and the technology at that time. If Sun hadn’t introduced OO language elements to Java until its sixth release (as Macromedia did with CF), I’m sure that the Java community would have gone through an identical learning curve.

    Less than two years ago, I had a great conversation at a mainstream CF conference with a prominent CF blogger and community member (who shall remain nameless) about the state of OO development in the CF community. This individual reminded me that I was one of probably 2% of the CF development community who operated at a high level of OO understanding. I thought this was harsh at the time; my speaker buddies at the conference were all on the same page, and I didn’t see us being that advanced in terms of our capability. But the more I thought about this person’s comments, the more it made sense; it’s just the evolution that the CF community has gone through. I started with Java and ended up with CF, so of course I would have a different perspective on development than somebody who went the other way around.

    And the CF community is not alone in this situation. About 90% of the Java developers we interview at CFI fail our technical screening because they don’t understand OO development. That’s a sad state of affairs for a language that is OO to the core; at least the CF community started off procedural and went OO years after it became a mainstream technology.

    So, I guess it’s a bit sad to see LeGros’s comments taken out of context, and for there to be a clear chip in the shoulder of some prominent CF community figures. All I can say is, take it for what it is, and don’t feel the need to be defensive when it comes to technology. Knowing something about a technology doesn’t make anybody better or worse; I can’t write a single line of assembly code, but that doesn’t make me an idiot any more than a CF developer who hasn’t needed to touch OO yet. If LeGros feels that he needs to express excitement at something he observes taking place in the CF community, feel free to correct him if you think he’s wrong. But if you ask me, calling him names and feeling the need to defend an entire community of developers over a statement seems a little over the top, especially when it’s abundantly clear from previous industry conferences that mainstream OO development in CF is still a pretty new thing.

    Overall, I’d like to see that change as a good thing rather than a bad one.

    UPDATE: In the comment thread for this post, Brian Rinaldi corrected some of my statements. Rinaldi’s comment was directed toward Brian LeGros’s apparent tone in his blog posts, and not toward him personally.

    Tragically, even with this turn of events, Brian Shoeman stands firm in his assertion that LeGros is still, in fact, an @$$ (first comment on post). Or, put more simply, the ShoemanScript statement

    assertEquals(legros, "@$$");

    still passes without throwing an exception. :)

    But seriously… everybody has now stated their piece on the matter, and some semblance of clarity has hopefully emerged from the situation. The blogosphere may now return to full normalcy.

    Category: Uncategorized | Tags: