The emerging languages space is programming’s work bench. It’s where novel theories are tested and new ideas are tweaked — and the underlying motivations are often less important than the work being done.
Characterized this way, it’s easy to understand why last year’s OSCON emerging languages camp proved to be popular. It offered an unusual opportunity to focus on the essence of the field rather than strict practical applications. This year, to meet the demand and amplify the work being done, emerging languages has been promoted to a full-fledged conference track at OSCON 2011.
I got in touch with the track’s organizer, Alex Payne (@al3x), to discuss the particulars of this year’s schedule as well as the broader state of emerging languages. Our interview follows.
Which languages in this year’s emerging languages track intrigue you most?
Alex Payne: One of the things that’s neat this year is that there’s a couple of very experimental languages in the track. One of the most interesting to me is Wheeler, which describes itself as a language with no objects, functions or variables. It’s difficult to describe how that works in practice.
Ola Bini, author of the Ioke language, has a new language called Seph, which is sort of an experiment in using Java 7 as a platform for building new languages. It builds on some of the ideas in Ioke and it borrows from Clojure a bit. Seph could be really interesting.
The FAUST language was a late entry. It’s a programming language for real-time signal processing and synthesis. I like that it’s so domain specific. That’s nice to see because a lot of the languages we got last year were general purpose, but this one is very focused.
Do the languages you’re seeing plug in to broader trends, like the popularity of Node.js?
The thing that Node, and Ruby before it, have done well is remind language developers that usability and community really matter. Node, in a very short period of time, has developed an enthusiastic community. They’ve developed good tools and tutorials around it. It’s friendly, it’s readable, and there’s lots of examples. Developers working on the cutting edge can forget to do that stuff, and then they wonder a year or two down the line why no one is interested in their project.
A comment attached to our 2010 interview questioned the need for emerging languages — “evolution is better than revolution” was the exact phrase. What’s your take on that?
Alex Payne: Most of these languages are evolutionary and not revolutionary. Clojure is a synthesis of stuff going on in concurrent programming, and it borrows heavily from Lisp.
Go is certainly an evolutionary language, building on the enduring qualities of C and attempting to correct what some might see as the missteps of C++, Objective-C, and Java.
I don’t think that a lot of these languages come along and say everything we’re doing in the realm of programming is broken and we have to rethink it. The only person who came to last year’s camp with that kind of agenda was Jonathan Edwards, who presented on his Coherence language. But he had a lot of push-back at the end of his presentation, and this was in a room full of people who were interested in emerging languages.
Your perspective on this depends on how close you are to these emerging language conversations. If you’re the sort of programmer who only picks up a new language once or twice a decade, then yes, seeing people talk about the need for new languages is probably revolutionary and probably threatening. If you’re involved in discussions about programming languages day-to-day on mailing lists or on sites like Lambda the Ultimate, Hacker News, or Reddit, then you can watch these new languages slowly take shape. With that social context and perspective, new languages look much more evolutionary.
Are there categories or problems this year’s crop of languages are trying to address? I’m thinking of things like mobile or big data.
Alex Payne: Most of the languages are not going after the problems the industry as a whole is thinking about right now. The submissions that we got for this year’s track are focused on experimenting with the fundamentals of the languages themselves. For example, we have a language called Plaid that’s an experiment in a concept called typestate. We also have a talk that’s about object-functional languages like Scala and how you resolve some of the problems in them. The group of people submitting talks for this track seem to be more interested in ironing out issues in the language world rather than addressing industrial problems.
Are you surprised at the popularity of any current languages?
Alex Payne: I’m constantly surprised at the popularity and success of Objective-C. Almost everyone I know tells the same story about Objective-C: they started learning it and they hated it. They thought it was the worst of C and the worst of dynamic languages. And then eventually, they learned to love it.
Most of the time, that software works pretty darn well, so who am I to judge? I’m pleasantly surprised by the continued success of Objective-C, and I think it should be taken as a lesson for the language designers out there.
This interview was edited and condensed.