Clojure Gazette 187: Who won the language wars?

Who won the language wars?


Issue 187 - August 22, 2016

Over 10 years ago, before JavaScript was considered a real language, Java dominated almost everywhere. Languages were categorized as either programming languages or scripting languages. And people fought about it. We called it the Language Wars.

Scripting languages were like scrappy guerrilla groups. They often had a strong leader with a vision, but few resources. The programming languages were more serious. They were often backed by giant corporate interests who spent millions training and equipping programmers. The fighting was intense.

Programmers of all stripes were involved. They fought for jobs, for identity, for mindshare, and for popularity. Nobody was fired for choosing Java. Meanwhile, many languages struggled against misconceptions like that scripting languages are slow or a language with a prompt must be interpreted, not compiled. The last squirmishes are still being fought about types. But in general, the fighting is over.

So who won? Well, I think we all did. I am constantly hearing about large companies who use multiple languages---not just one or two, but five or six. Friends I had who were absolutely against anything besides Java are asking me for advice about Clojure. Many companies are developing their own languages, adding to the mix. Programmers now typically know three or four languages well and can switch between them fluently. As programmers, we are no longer defined by our language choice. We have mobility between technologies. And we have more choice of technology than ever.

What happened? A lot. AWS made server infrastructure easy. The ops team has lost power. They once had to standardize on a few technologies because configuring servers was hard. JavaScript opened people's minds about learning that second language. Docker made deployment of different environments simpler. Microservices compose systems from multiple languages.

A bunch of other things happened as well, but the absolute biggest thing, in my opinion, is that the industry has been dominated demographically by post-web programmers. They have different attitudes from the ideas I was taught in college back in 1998.

In college, I had to learn VAX assembly. There was a class about how to use a mouse. We had a computer lab filled with Sun workstations (sponsored by Sun, the company behind Java) we did our homework on. Now they've cleared off those same tables so people can bring their own laptops. When we learned C, the book we used was already 20 years old. Students now probably read more words from blogs than from their textbooks.

I, for one, am glad the fighting is over. People are open to learning new programming languages and paradigms. There were real divisions between compiled and scripting languages, between slow and fast languages, between serious and toy languages, and between mainstream and obscure languages. These divisions are dissolving. People freely borrow across languages. And companies hire good programmers, regardless of what language they're familiar with. It's a bright day and only getting brighter.

Rock on! is the best place to learn functional programming. At least that's what I'm trying to make it. And I need your help! I need other teachers who want to share the great ideas of the past 50 years of programming and get paid to do it. If you're interested, please watch the invitation video .