Dynamic Languages

Forta posted on CF being omitted from InfoWorld's article on dynamic languages. My question is "why should CF be on the list?" Let's compare CF against some others (I'm going to somewhat arbitrarily pick Python, Ruby, and Groovy as the main ones).

CF excels at JEE web presentation tier development. Python and Ruby are both commonly used to build web presentation tiers. Groovy is somewhat scarce in this space, but it's often used as "glue" code inside Java (including JEE) applications that rely on something else (JSP, Velocity, etc.) for the web presentation tier.

CF can only function in a JEE web environment. Python and Ruby are useful anywhere their interpreters are available. Groovy shares CF's dependence on a JVM, but not the JEE web environment. I can think of a lot of applications that run in an environment that includes interpreters/JVM access, but doesn't provide a JEE environment.

CF is little more than a proprietary replacement for JSP that ships with a pile of taglibs included. One could argue that CFCs clearly differentiate CF from JSP, and while that's a valid observation, it doesn't change the fundamental nature of the beast.

So stop trying to make CF out to be something that it's not. Just because it's not analogous to Dynamic Language X doesn't mean its' a bad platform. It just means that it's not a "toolbox" language (which is what most dynamic languages are designed to be). That's not good or bad, just different.

4 responses to “Dynamic Languages”

  1. Peter Bell

    Hmm. I don't know whether Cf "should" be on the list or not. It was a short list based at least in part on popularity, and given that they only chose one pure web scripting language (PHP), it is hard to argue with them choosing PHP over CF in terms of popularity.

    While you could call CF "a proprietary replacement for JSP with a bunch of taglibs", you could equally describe Ruby as "impenetrable as Perl – but with slower performance" (Twitter, Twitter!). I quite like both languages so I wouldn't choose either of those phrases, but all languages are ugly in some way unless they are your own. Of course, I WOULD call Java "job security for mediocre programmers" and Lisp "the fount of all goodness", but I guess that just goes to show you can't have a rational language debate :->

    The one thing I will disagree with is the implication that because "most dynamic languages are designed to be [toolbox languages]", CF not being one should keep it off the list. PHP and CF are comparable in terms of their roles and PHP was on the list. The reason ColdFusion wasn't on the list was that the writer decided to choose one pure web scripting language, and they quite reasonably picked the most popular one.

  2. Brandon Harper

    Peter,

    No offense, but I think you're pretty off-base with Java programmers being mediocre. I think there's a much higher percentage of developers who understand the difficult problems such as algorithms, threading, OO, etc in Java than you ever would in CF. I say this as someone who's done CF for quite awhile and decided to move into Java to work on stuff that is more challenging. Right now I'm working on a cutting-edge application which requires real-time horizontal scaling for thousands of users (among other interesting problems to solve).

    It's much easier to find people who are very competent developers and actually understand programming by tapping into those with solid Java experience. I know it's not the shiny new ball at the moment like Ruby and the like, but Java is definitely much more than big, boring J2EE development. I would definitely tag the typical CF developer with "mediocre" well before a Java developer.

  3. Sammy Larbi

    "I think there’s a much higher percentage of developers who understand the difficult problems such as algorithms, threading, OO, etc in Java than you ever would in CF."

    I think that's probably true (although if the CF bloggers are any indication of the overall talent pool, then I wouldn't think so).

    But …

    "No offense, but I think you’re pretty off-base with Java programmers being mediocre."

    I think Peter's comment about mediocrity comes from Gosling's quote about Java being designed for average programmers. And, I think knowing what we know about the vast divide between mediocre programmers and good programmers, and the types of languages good programmers prefer, you'll likely find a lot of mediocre ones in Java.

    I like a lot of the work I've done in Java, but its more the application that excites me than the language (and as you might notice, it wasn't any feature of Java that you mentioned about good programmers – it was exciting applications and algorithms, which of course are available in pretty much any language).

    It's not that liking or working in Java makes one a bad programmer – it's just that I would think you'll find a large proportion of them working in a language that was likely used not because a programmer decided to, but because someone higher up in the food chain who heard it was good to standardize on it decided it would be so.