I had the pleasure of spending my Sunday participating in a Techtalk with Anders Hejlsberg and Steve Ballmer at the Microsoft development center in Vedbæk, along with around 350 other developers.
The focus was clearly on Hejlsberg's talk about the future of programming languages, and Steve Ballmer dropped in directly from the airport giving a short so-called pep talk and a little Q&A.
Hejlsberg started out with comparing development in computer hardware with the development in programming languages, stating that there hasn't been a dramatic change from the old Pascal days to C# today - actually the "hello world" in C# is slightly more verbose than in Pascal. At the same time hardware has developed so fast, that his CPU today is a thousand times faster than when he wrote Pascal.
So programming languages evolve very slowly compared to hardware. But what will a mainstream programming language look like in the future, and how will language designers try to help software developers become more productive?
Hejlsberg described how he had literally wasted a couple of years exploring the possibility of doing programming with graphic UI and concluded that sometimes a line of code can be worth a thousand pictures.
He went on to discuss some of the trends that we are seeing in current languages. He discussed how declarative programming will be a great influence in mainstream languages, and talked about functional programming with F# and immutable types and programming with and without side effects.
Hejlsberg introduced what he calls "the elephant in the room", that everybody knows is there, but no one talks about. This is the problem with keeping a presumably ever increasing number of processors busy with our code. In that connection he talked about the Parallel Extensions to .Net 3.5 that is currently out as CTP, and did a little demo showing how it works.
He mentioned dynamic programming languages and features like type inference, that lets us work like we are dynamic, but lets us keep the type safety of static languages.
His prediction is also that we will se a lot more to Domain Specific Languages - languages that are created for a specific purpose instead of being a general purpose language. Especially the internal DSL's like LINQ will find their way into the future languages.
So in short Hejlsberg thinks future programming languages will be declarative, concurrent and dynamic, and the borders between language paradigms will be erased, and we will se the mainstream languages like C# and VB evolve with along the lines of these described trends to become multi paradigm languages.
It was a very interesting talk, and definitely worth the rather long drive from Odense on a Sunday. The whole thing was taped, so I presume it will be available online at some point.