5 min read

Programming Languages: Coldfusion, JS Server Frameworks and R at Supermondays

It was the old, the new and the obscure at tonight’s Supermondays. This was the second Supermondays talk on programming languages (the first was before my time in Newcastle), but this time around, rather than focus on everyday languages such as PHP and Ruby, it explored those that most programmers might have heard of but never had enough time to explore.

I shared an office in 2010 with a designer/Coldfusion developer (funnily enough, he had just moved over from England) who maintained that the language was very easy to use, despite it having falling out of popular favour that it had in the early 00s. (Back then it seemed like every other site on the web had the .cfm ending on it — and given that the only other real CMS option at that time was ASP, it probably did). That was one of the core themes of Stephen Moretti’s talk. As a Coldfusion veteran (he’s been using it since the mid 90s and developed some big sites on it), his favourite feature of it is its simplicity of code and wide feature set. In fact, he believes the biggest issue with Coldfusion is its features and ease of use … as it allows people to abuse it. (Even on Adobe’s site: he did notice Jeffery Zeldman’s recent complaints about Coldfusion and his adobe.com password).

It is a lot easier to run on servers now than it used to be, and developers get a free account, but the pricing of Coldfusion servers (£100 for a single install, £800 for big rollout) definitely means I won’t be playing with it any time soon. That said, it sounds as if there is still an active and helpful community, even if it is a small one.

One aside: I had to give Moretti credit for being a true Adobe evangelist as his slides were done in Adobe Presenter (and as he later explained, initialised using Coldfusion).

Stephen Moretti talking about CFML
It's an Adobe fest! (Stephen Moretti on Coldfusion)

We also had two new kids on the block known as javascript programming frameworks: node.js (presented by Ian Oxley) and backbone.js (by Phillip Poots). From what I can gather, the two differ in that node.js actually works as a server, while backbone.js works in the browser along with jQuery. 

Out of the two, I’ve heard the most buzz about node.js, and it does seem exciting — run javascript without the document model! It also is light on the server, and is an easy transistion for front end developers used to writing javascript.

Ian Oxley presenting with "event loop approach, easy and safe to build scalable services, all i/o should be non-blocking, use asynchronous callbacks to handle events)
Ian Oxely on node.js

When asked about whether the page requests were parallel or serial, he came up with the vivid (and hilarous) answer:

“Node.js is like getting a coffee from Starbucks rather than getting a pint from the pub”.

(While this could be taken many ways — I couldn’t help but worry about the lack of quality that that metaphor implies node.js has, it was actually a metaphor for loading schedules. While node.js does process requests in serial, it’s able to push them through a distributed system to serve them up so is still very fast).

I hadn’t heard of backbone.js, but it has a lot of good mobile apps to its name (Soundcloud, LinkedIn, and 37 Signals to name a few), and unlike node.js works in the browser. This means that it only needs to pull JSON data from the server and is so very fast. (If you run it with HTML 5 you don’t even need a database either). 

Phillip Pootes showing slides about Clean Code
Look ma, no kludge! (Phillip Poots on backbone.js)

He also argued that the code is amongst the cleanest javascript he’s ever seen.

[Edit: I'd originally misquoted Poots' as saying backbone.js was amongst the cleanest code he'd ever seen. Not only did he email me to clear up the confusion, he also explained how backbone.js pulls a lot of its structure from Ruby on Rails:

You will be hard-pressed to find cleaner code than Ruby, which is what I program in everyday. In fact CoffeeScript was invented so that JavaScript would look like Ruby  (The guy who wrote Backbone.js is also the author of CoffeeScript).

Thanks Phillip for the information, half of the fun of the internet is how languages and systems are related to each other!]

The surprise of the evening for me was R. Never heard of it? I sure hadn’t (and was with most of the crowd on that one). As Colin Gillespe of Newcastle University explained, R is the de-facto language for data analysis.

The best thing about R is that it was developed by statisticians. The worst thing is that it was developed by statisticians. 

– Bo Cowgill, Google.

While it’s been around since 1995, it’s been slowly gaining traction in the academic world as using open source products have become more acceptable.appealing, and is now used by big companies such as Shell, Google, Lloyds, and Facebook (Remember that Facebook mapping of connections? R.)

Because it’s highly specialised, it’s possible to create graphs with only a few lines of code.

Colin Gillespe showing lines of code showing a plotted line
Colin Gillespe showing lines of code
Plotting with R … and the code behind it “only five lines” (Colin Gillespe on R)

There are also thousands of package repositories (CRAN) available (it’s expected to hit 10,000 in 2015), and, most excitingly, an easy connection to GoogleVis tools. (It is a pity that they couldn't put some of the Googlevis love on their own website — if you're a designer, ignore the bad feeling the site gives you!)

So, while this was definitely in the developer end of the Supermondays spectrum (and a little over my head at times), I'm glad I went along to find out more about languages I'd only heard — or not even heard — about. I now understand what the buzz is around these JS server frameworks, and were I not an incredibly broke student would be highly tempted by the R courses that Gillespe shamelessy promoted.