1. Mar 14th, 2006

    I don’t subscribe to “One Language To Rule Them All”

    My post on Gosling’s presentation received a lot of attention, and some great comments. But it wasn’t the sum of everything I wanted to say.

    In his presentation Gosling compares Java to Ruby and PHP. In the discussion that follows developers mention Python, Bash, JavaScript, LISP, I also remember seeing Smalltalk. Java vs language plurality. Or is it Java vs platform neutrality?

    I’m a software developer. I build software that solves problems. Building software itself is a problem, and so I use the best tools I can find to ease the pain.

    Writing a new TCP/IP stack? I would go with C for speed and portability. Adding a new feature to WordPress? I picked up PHP just for that. Developing a new Web app? My first choice would be Ruby. Make it responsive? A little bit of JavaScript goes a long way. Need automatic backups? A few lines of Bash.

    The past decade, I’ve developed mostly in Java, and I still do a lot of heavy lifting in Java. I know it top to bottom, bugs and all. Yet, I don’t call myself “a Java programmer”. I’d never put that on a business card.

    A “Java programmer” is defined by knowing just one language. And just one language means you’re best at solving problems, only when those problems happen to be best solved by that one language. Hammer, nail, you know the rest.

    If I was “a Java programmer”, I couldn’t customize my WordPress or WikiMedia. They’re both written in PHP. Yes, there are Java blogs and Java Wikis, but they’re not what I’m looking for. I don’t pick a blog server because it pleases the language Gods. I pick the one that’s best for blogging.

    If I was “a Java programmer”, I would spent hours writing Java code for simple tasks, instead of quick and simple Bash scripts. I would struggle with Struts when I could be building with Rails. I would dream of writing my very own Firefox extension, held back because JavaScript is not Java.

    Java is just a language. With a great plaform around it. But it’s a tool of the trade that’s excellent for some things, lousy for others, and quite often just good enough.

    Not for Sun. For Sun, Java is the hope of a computing platform that will someday dominate. Productivity and useability come second. The same way Microsoft treats Windows as the computing platform that will someday dominate. Damn everything else. It’s all about licensing revenues.

    I don’t play in that sandbox. I live on the Web, so I don’t care much for the operating system, or the programming language. Tell me what your service does, how much it costs, how it will make my life better.

    Here’s my full disclosure. I want to see more companies out there using the best development tools for a very simple, very selfish reason: I want to be able to do more and pay less. Your competitive advantage is good for me.

    Is Java all that bad? I don’t think so. Some people benefit from mastering one language, one platform, one IDE. It’s not about productivity or performance, it’s about reusing the same skillset to the max. You can make a living out of programming in the same language day in and day out for decades. Just ask any COBOL maven.

    But if you want to be best at software development, I suggest forgetting about one language fits all. Invest in software design and software engineering, not in a language. It’s all about productivity, yes performance, but bottom line: cost. And it’s a constant learning experience, it means getting out of your comfort zone and trying something new.

    You may spend a few hours picking up a new language that seems foreign at first, but you will save days being productive in everything that language does best. Use multiple languages because no one language can be good at everything (despite what LISP programmers tell you).

    I have no language loyalty. No platform loyalty. The only thing I care for is delivering the best software, solving real problems and having fun doing that.

    1. Mar 18th, 2006

      Thought Leadership

      More Thoughts on Ruby and Why it isn’t enterprise…

      I previously blogged on Large Enterprises and why they don’t care about Ruby and was rightfully accused of bashing folks in the Ruby community but not providing the answer to my original statement. Figured I would set things right……

    2. Mar 22nd, 2006

      David Baker

      to forecast opponents you should be very memorizing: http://vesuvius.jsc.nasa.gov/er/seh/movies.html , good is feature of memorizing gnome

    Your comment, here ⇓