The next wave of programming languages

Alex Payne previews the first Emerging Languages Camp.

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.

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’sKodu 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.

Get the O’Reilly Programming Newsletter

This sounds great, I wish I could attend. Will there be video available so we can watch the talks afterwards? It would be even cooler if we could watch talks live and have the opportunity to ask a question.

Patrick Viry

I just learned about the Emerging Languages Camp, too late to attend.

We have released a solution for concurrent programming that does not require a new language, but extends an existing one. See http://ateji.com/px.

Using language extensions, we solve “new” problems without introducing new languages, and this has an enormous impact on code maintainability and team training.

Patrick

Walter Bright

I’ll be at the Camp to represent the D programming language. See ‘yall there.

Alan Eliasen

LOLz! I like how the article makes me sound like a cross between P.T. Barnum and the ShamWow! guy. That is awesome.

I had to look back at the e-mail I sent, just to see if I wrote anything like that, and should be embarrassed. Here’s what I actually wrote:

‘I just heard of your “Emerging Languages Camp” from a posting on lambda-the-ultimate.org, and I wondered if there would be interest in my
programming language “Frink”.’
…
(then a couple links and general background about Frink. Nothing about how awesome I am because even Google’s servers don’t have enough space to hold it all!!!!11i^4)
…
“If there’s interest in me giving a talk, please let me know as soon as possible. I probably won’t be attending OSCON due to the cost (I develop Frink independently of any university or company) but would like to attend the ELC if possible.”

The story’s way more funner Alex’s way, though. It makes people want to come in and throw tomatoes at me because I’m such a jerk. One speaker trainer I once knew said you should always start your talk with a provocative statement that will raise peoples’ hackles. Heh. I forgot to do that, but that’s been covered for me!

After Alex offered me a speaker position, he did ask “is a 15 minute slot okay for you?” Since I don’t think 15 minutes is enough to get adequate depth in any of these languages, I encouraged him to poll potential attendees and speakers to see how much time they thought they thought was appropriate. (The original schedule had 22 talks stuffed into 8 hours on only the first day, and then “free-form” meetings the second day. I argued that it would be better to make all talks longer for all people that wanted it and spread talks across both days.) I did mention that every time I’ve spoken, I have always had enough material and attention to fill an hour or more of time. I’ve given these talks before, and I know what can get addressed in given amounts of time, and 15 minutes wasn’t nearly enough! 30 probably wouldn’t be either. Anything I said about holding audience attention was in a later message encouraging more time for *all* speakers, including me, that wanted it. (Just as an example, I gave a 30-minute talk on Frink at a conference last week, and the organizers asked me to give another 30 minutes in the afternoon because there was good interest and many more topics to be addressed.)

But the above interpretation of my actions makes me feel a bit like “Yum-Yum” in “The Mikado:”

“Yes, I am indeed beautiful! Sometimes I sit and wonder, in my artless Japanese way, why it is that I am so much more attractive than anybody else in the whole world. Can this be vanity?”

(looks in mirror)

“No!”

I’d love to talk about lots of things: practicalities of tracking units of measurement, date/time math, proper numerics, interval arithmetic, creating a computer algebra system, solving systems of equations, the interesting theoretica problems of algebraic simplifications when units (or different numerical types) are involved, and more. So I argued that I (and most other developers) could fill more than 15 minutes, and argued for more time for everyone. I wanted to hear more from other developers, and make it worth my time. After all, most of us will spend thousands of dollars of our own money just to attend and talk for 20 minutes. And we’re getting some awesome developers that we should try to respect and appreciate in every way possible, and make it worth their time. I know I’m excited about seeing them!

It’s way more funner to have people think you’re the most arrogant programmer in the world, though, and want to attend just so they can hiss at you, so let’s go with the alternate version when we rewrite history.

So, in that vein, I shall invent even better self-promotion! I am the bestest programmer ever! Frink rules j00 and is the only programming language anyone should evAr use and it can compute things that no Turing-complete languages can compute!! It solves the halting problem!!! It divides by zero!!!! It runs infinite loops in O(1) time!!!!! It is the language the universe was written in and is not bound even by the limits of quantum physics!!!!!!1 I so much rule!!!!!!

Brian

Just what we need another dam mousetrap.

Time would be better spent improving the languages we have rather than inventing new. Evolution is better than revolution (the old stuff doesn’t go away anyway – anyone for COBOL!).

Amos Wenger

I’ll be at the camp, presenting the ooc programming language.

Looking forward to meeting everyone!

Kocsis Dávid

I working on a programming language too

Greg Wilson

Will anyone at ELC be presenting any data to show that any of these new languages has any impact on productivity?

Chris B

@Greg Wilson

Note “new languages”, the concept of which precludes the idea of a full on survey of a company or five in relations to productivity before and after, or at the very least makes it highly unlikely to have been done. Especially for some of the more abstract/newer languages.

Productivity is for managers anyway, who shouldn’t have any say in the language used. :P

Neil Murphy

New languages are not the next big thing. For the vast majority of IT people these are just another pointless distraction.

Toys for propeller heads best describes them.

Biff Socko

what about Google’s language “GO”?

Mac Slocum

@Biff: GO is also on the OSCON schedule. We had a separate interview with Rob Pike recently: http://oreil.ly/b1bh6B

De Lurk

Can someone PLEEEEASE stop these people? We had all those important people (or they thought that they are important) who want to create a new programming language….Well it is like every soul out there who thinks he is important wants to write a book. How much energy has been lost to humanity due to this horrible language inventors? Alone in Zurich there was a guy at a university who “invented” about 3 languages. Poor souls who invested their energy in these. They are all dead and lots of money must be spent to convert these codes.
We need a universal languages not a new one. And they are already here C++, C#, Java.
You are surely guys with intelligent background you can also improve the existing platforms.

Kocsis Dávid

There are everything that i need to programming is in C++, C#, BlitzMax, but not in one language

De Lurk, The Anchor programming language I developed is good-looking like #python yet fast like C (compiles into C) (also compiles into C++, Java, PHP or whatever). Its strength is it is not a programming language at all. It’s near-sighted goals are to make curly-bracket code easier for me to read.