W-JAX 2009: Why the next five years will be about languages

babelDisclaimer: This entry has been written while listening to the talk. Please forgive me any typographical or grammatical errors resulting from this approach.

Next is the keynote by Ted Neward about language evolution. Since I am myself a strong believer in DSLs I’m looking forward to this talk.

Ted asked the question (like everyone – which he clearly stated): “What is the next big thing?” and he admitted that he had no clue. Great start for a keynote πŸ™‚ I like his style.

Ted proceeded by stating the we are standing at the beginning of renaissance of programming languages which will change of the next 5-10 years to be very different compared to today – and a lot more efficient. There will be lots of new concepts introduced but overall everything is about making money in the end.

As prime movers behind this change he differentiated between practicioners (the folks who want to get things done) and the academics (the folks who want to figure things out and invent new ways of doing stuff). He mentioned a US saying I so far hadn’t heard: “Those who can – do. Those who can’t – teach. Universities are the places where programmers are going to die.”. Think about it πŸ™‚ I had to laugh quite a bit about that point because on friday of this week I am going to defend my Ph.D. thesis and hopefully become a doctor πŸ˜‰ Lucky me that I did this as a kind of weird hobby while working fulltime in the industry, even in my own company, all the time and had more than my share of practically relevant topics each and every day.

Ted proceeding beating on universities and scientists for their rather academic approach to life (quote: “Relational databases? What is this thing you speak of?”). He again and again stressed the fact that academical approaches usually carry the problem that they investigate one special isse but fail to adress all the other issues that are relevant when trying to provide real world solutions. The result being that academic concepts are unusuable because they lack too many relevant concepts required by real world. And since their solutions are irrelevant to real world scenarios they fail to get feedback on their new ideas. Thus there is an overall barrier preventing good ideas from spreading at decent speed. He explained this by example of object oriented programming – taking a period from 1970 to 1995 from idea to implementation in Java making it mainstream. Which is too long.

Ted stressed this with another example from compiler theory with compiler and parser builders like Lex and Yacc. Another great saying Ted provided: “You have a problem. You decide to use a regular expression. Now you have two problems.”

The current forces at work trying to create a perfect storm according to Ted are virtualization, language tools, linguistic focus and DSLs (as a hype). Virtualization in his book basically means abstraction (removing developers from the details like memory management, integer sizes, etc.). Another great saying: “Real men know how to use pointers… *HARRR*”. Tool support also has grown to a level where it is unthinkable to do professional projects without todays tool support from IDEs over debuggers to background compilation, refactoring and code completion. Next linguistic support or rather the scope of programming languages has grown to a level where it is possible to represent concepts in a decent way. The current flood of new languages is an indicator for this – there are many old concepts being rediscovered and some new concepts being introduced in order to raise programming to a new level. Along the way he mentioned the evolution from OOP to AOP, functional programming being rediscovered, etc. the gist being that it is possible to talk about programming languages again. And the proof being that currently there are more than 200 languages available for the Java VM. Not to mention the Microsoft runtime environment. The interesting question arising is “which of those languages will survive to a level that will allow me to safely build my business on them”.

In order to evolve to the next level of programming languages he advised to either explain the benefits rationally – or just do it. I somewhat doubt the second approach but see its merits with those managers who just block evolution and progress for reasons of insecurity or lack of understanding. But for me still the way convincing by argumentation is the way to go. Otherwise our victories will remain hollow.

Overall Ted is a nice “basher” – he does criticize many things very well (and correctly). Being a cynic I thus enjoyed the keynote – it just took a bit long to get to the point. But it was a very amusing way to that point – so kudos to Ted for a good and very amusing keynote! The laughs were well deserved.

Comments are closed.