This year’s OSCON will showcase a host of new programming languages in the first Emerging Languages Camp. I got in touch with Alex Payne, BankSimple co-founder and the Camp’s co-organizer, to find out why new languages emerge and which languages have captured his attention.
On the Emerging Languages Camp blog, you said new programing languages are often attempts at solving new problems. What are some of the biggest computing problems we currently face?
Alex Payne: The headliner that everyone’s been talking about is concurrency. We have a handful of languages on the Camp roster that exist largely to address concurrency problems. Solutions could involve allowing people to spread computations over multiple physical machines in a pretty transparent way, or by providing different single-machine or single-virtual-machine concurrency paradigms. It’s an interesting problem. There’s a lot of conflicting takes on how relevant it is.
Some of the other problems involve expressability and maintainability of code. That’s not a fundamentally new problem to the task of programming, but as there are more professional programmers entering the field at disparate levels of experience and education, having more languages that provide conventions toward readability of code has become a priority. There’s no longer this monastic expert class writing Lisp in academic computer labs, nor people coming out of giant industrial organizations like IBM who go through a multi-week training process before they ever write code. A handful of the emerging languages are just explorations in maintainability.
Of the languages scheduled to be discussed at the Camp, which caught your eye?
AP: Gilad Bracha is presenting a language called Newspeak, which is a weird combination of ideas from Smalltalk and ideas from Bracha’s experience with Java, and stuff from Lisp. In the programming language design community, small as it is, Newspeak is provocative. The discussions around it have been really interesting.
Rich Hickey is going to talk about Clojure. I’ve been to several conferences where he’s spoken and he always has interesting metaphors from math, physics and literature. Clojure is a highly experimental language that’s making inroads into industry, which is pretty rare. There’s a lot of next-level ideas in Clojure, and people are actually picking it up.
Matt MacLaurin’s Kodu is a visual programming language that was originally developed for the Xbox as part of a children’s game. Visual programming languages have been around for a while, but this one is practical and applied. Kodu is also vastly different from anything else on the Camp’s list.
Jonathan Edwards is at the MIT AI program, and he was working for a number of years on a language called Subtext that never saw the light of day. He’s since reshaped that project into something called Coherence. I’m really interested to hear his talk, even though I think it’s going to be very abstract. Most people get to the coding stage as soon as possible when they’re working on a language because they’re scratching an itch. Edwards is taking more of a hands-off, scholarly approach. He’s been noodling on the ideas in this language for years.
Alan Eliasen works on a language called Frink. I hadn’t heard of this language, but he found out about the event and wrote me a bold email that basically said: “My language is fantastic, and you should give me a slot because I’m going to be the hottest thing at your conference. I’ll keep your people entertained.” Frink itself is essentially a calculating language, but it has the concept of different units built in so you can easily convert calculations between units. It’s all designed for scientific calculations, but it’s got some neat syntactical stuff, more than you might imagine for a language that’s built for calculations. On the Frink homepage, Eliasen has conversion examples for how much beer and how much jungle juice you would need for X individuals at a party. It’s crazy.
Slava Pestov will talk about a language called Factor, which is a stack-based language like Forth. He and a couple of other people who work on Factor have done just an incredible amount of work in optimizing the compiler and the virtual machine for it. Once a month or so, they publish a blog post on what’s going on in Factor, and essentially every one feels like a breakthrough in programming language implementation.
Where did the idea for an Emerging Languages Camp come from?
AP: I was at Foo Camp last year and did a session on what’s coming in programming languages and what people would want out of an event that explored that. The Emerging Languages Camp is the result. I don’t know how much of the feedback from the Foo Camp session ended up in the conference, but at the very least, there was a room full of people who thought that it would be an interesting way to spend a couple of days. So that was a big motivating factor.
What do you want the Camp to accomplish?
AP: I have a feeling that a number of the attendees who aren’t language designers will be there because, like me, they’re programmers who like working with new languages and are always looking for better tools. The real goal is to get the actual implementers connected so they can find commonalities. People have already started to find each other on the Camp’s mailing list. I’m hoping those conversations continue afterward.
- Does the world need another programming language?
- Parallel programming, Arduino and the good kind of trouble
The first Emerging Languages Camp will be held at OSCON on Wednesday, July 21 and Thursday, July 22. Learn more about the Camp here, and receive a 20% discount on OSCON registration with the code OS10RAD.