The week of OOPSLA is now over and life has now returned to its regular path. Some notes from last week's conference:
Anders Hejlsberg was in a panel titled "Celebrating 40 Years of Language Evolution: Simula 67 to the Present and Beyond" along with Guy Steele and James Gosling from Sun. In his opening remarks Anders noted that better programming language support for concurrent programming is definitely needed, the current metaphors for concurrency synchronization like mutexes and locks are no longer sufficient. The reason for drawing attention to concurrency is the advent of multicore processors that are starting to be commonplace, we will probably have massively concurrent hardware on our desktops within a few years. All of this thinking was agreed on by the Sun representatives on the panel.
Anders and his team at Microsoft are working on better parallel support to be included in the .NET Framework. Related to this effort is the recent announcement of making F# a fully supported product on the .NET Framework. F# is a functional language, and functional features are something that will help in building and utilizing the upcoming parallel framework. For example, parallel version of LINQ, called PLINQ, takes advantage of the fact that LINQ queries better capture the intent of what the developer wanted to express (when compared to just writing strings that contain SQL). That allows utilizing the parallel framework to automatically parallelize parts of the query for to be executed parallel in multiple cores.
Another observation that was made at the panel was that programming has not evolved that much from the days of Simula67. We still write code like "i = i + 1", although slight progress has been made by introducing "i++" ;) It was questioned whether the majority of papers presented at OOPSLA for example are that significant, many of them just talk about small iterative additions that has been added to Java.
Anders was wondering the hype about dynamic languages, he is not that fond of losing many of the useful features of statically typed languages, such as the ability of the compiler to do basic type checking and other tooling-related goodies. He claimed that the strong metaprogramming features are much more important than their dynamic nature and really the reason for the sudden interest for dynamic languages.
Bran Selic also asked a good question from the audience: when do programming languages recognize physics phenomena such as time, location, performance etc as first-class constructs? No good answer was given if I recall correctly.
A good question from the audience was also this: Programming does not appear to be fun anymore! Being smart in software development does not matter that much any more, it is merely a matter of knowing which API to call. IMO this is also related to the problem many western universities face that it is hard to attract enough talented computer science students. It was answered with a note that we have just began exploring the possibilities of software and that there are a lot of interesting problems still left to explore in the world of software development.
Also an interesting note from Anders related to domain specific languages was that DSLs need a bit of general purposeness to be really useful. Anders thought that DSLs are not that different from traditional languages as many seem to think they are.
Programming in the Age of Concurrency - Anders Hejlsberg and Joe Duffy: Concurrent Programming with PFX
Somasegar's WebLog : The world of multi and many cores
Somasegar's WebLog : F# - A Functional Programming Language
Another notable person to present in my opinion was Erik Meijer, a researcher from Microsoft. He had basically two talks that caught my attention: VB9 and "Democratizing The Cloud". In VB9 talk Erik hilariously explained many of the features that have been in Visual Basic for years already (many of them are introduced in so called "big" languages like Java, C# etc, as new innovations). Great talk.
"Democratizing The Cloud" was a very interesting talk on how Erik's team has approached the problem of how to write code that can be easily recompiled to run on wildly different environments. The title refers to the idea presented by Visual Basic 1.0 that democratized Windows development (suddenly "anyone" could develop software for Windows). Similarly, here he talks about a possibility for "anyone" to write cross-tier software without the need to dig in to intricacies of Javascript or other tier-specific "native" programming environments. Suddenly, "anyone" could write code that can run "anywhere" by just writing C# or VB.NET code.
Project Volta includes an idea of cross-tier computational model, where MSIL code is recompiled to Javascript code for example if it is needed to execute it on a browser. Erik showed a few examples on how it works (even cross-tier debugging from Visual Studio!). Volta is still a research project, but who knows, it might become a supported product some day if there is enough interest on it.
http://research.microsoft.com/~emeijer/
Democratizing The Cloud
Erik Meijer: Democratizing the Cloud
Visual Basic 9
General observations
As a general note about the conference, I was surprised to find that OOPSLA was not a bigger event given that it is so famous. There was roughly 1200 attendees during the 3-day main conference + 2 days of workshops before that.
The structure of the conference was not that clear to me, there was multiple types of sessions (workshops, keynotes, panels, demos etc) that were not of equal length, and it was quite difficult to form a clear view on what was available. Also, since I only had "OOPSLA registration", I was not allowed to attend tutorials (each tutorial would have cost 400+ dollars extra) and surprisingly there also was no lunch provided even on the main conference days for non-tutorial attendees!
As I noted in the feedback form, I would encourage the organizers to attend Microsoft TechEd or PDC in the future and learn how to organize a really professional tech conference!
After all, OOPSLA 07 was a nice experience as I have never attended OOPSLA before. We had our DSM workshop presentation already on Sunday, so the rest of the week was free of worries on how to prepare for that.