« Lump it | Main | XP to Ubuntu »

Programming languages as deployed

Tiobe is a widely cited index of the popularity of software programming languages. I thought it would be interesting to record what I actually used in productionwork this year, as opposed to what I think is cool or interesting or has potential. So, here are the languages I've used in production so far this year:

  • Python
  • Java
  • Javascript
  • SQL
  • Perl5 Regex
  • XSLT
  • Ant
  • TAL/Zpt
  • CSS
  • Relax NG
  • HTTP
  • Clisp*
  • RDF*

Are all these really programming languages? While I didn't write a list like this last year I sense the number of things I'm using that aren't normally considered "programming languages" is on the rise.

I guess some people are looking at things like HTTP and Ant and CSS and wondering whether they are really programming languages. Still, I figure that they can be included, on the basis they are either replacing or reducing the raw coding I used to do. I'm in no doubt whatsoever protocols like HTTP are languages - or at least, if you start thinking about HTTP as a language, the job of using it becomes far easier. Curiously, the Ant I wrote this year was for building a Plone based system, not for Java code. Using Ant was less effort than maintaining a hairball of a shell script or starting from scratch with Python.

This year was the first year I've used UML/MDA for generating production code, something I'll confess to being a tad ambivalent about, though in this case there was no need to roundtrip the code, which simplifies things. Some people reading this will know I have a background in RDF and am openly critical about certain aspects of it; but I'm seeing more and more value in it as an interlingua/interop technology - not for representing content but for relationships between content. For example RDF is ideal for saying that something is a translation of something else.

Surprising omissions and inclusions. On reflection, I was surprised to see no Jython. Spending most of this year with Plone/Zope probably has a lot to do with that. And this year I wrote more Javascript than I have for years, perhaps more than at any time in the past, even though I would not consider myself a JS programmer if asked. What I can say is that JS is easier to work with today than I can remember. XSLT is similar. XSLT must be Perl for XML people. I don't consider myself an XSLT person, but I seem to use controlled doses of it year in and year out.

Outside of work, my time was taken taken with - well, work mostly - this year has been hectic, to say the least. But other than that, Atom Protocol** and Django occupied most of my interest, with very small smatterings of Erlang, (J)Ruby and Eclipse/RCP.

Ongoing. It will certainly be interesting to see what the list looks like a year from now, and I think it might be useful to do this over a 5 year period, not just looking for trends, but looking to see how many of the the things one looks at for fun, self-development or pure evaluation ever make their way into production. It wouldn't be a surprise to find dissonance, or a gap between what is initially appealing or interesting, and what gets deployed in the field. One thing I will say, is that I doubt the list will become shorter. When Joe Gregorio says "My prediction is that we'll see the same thing tomorrow as we see today: a frothing stew of languages competing for niches on an ever growing software landscape", what I actually use seems to to bear that out.

* When I get stuck, I tend to drop down to RDF and Lisp to figure out data modelling and programming problems respectively. Lisp and RDF are executable whiteboards. The RDF went into production in various guises, and the CLisp stayed behind as scaffolding - maybe next year ;)

** As an aside, I'm seeing increased interest in Atom/RSS in commercial work, and most of it is coming from the business side, not technologists.

November 4, 2006 06:55 PM


Post a comment

(you may use HTML tags for style)

Remember Me?

Trackback Pings

TrackBack URL for this entry: