Take the community feedback survey now.


Nov 1, 2011
  2455
(0 votes)

Impressions from the SPLASH 2011 conference

I have been to a number of IT-related conferences, but they have all been industry/practitioners events, usually the Microsoft PDC:s etc. These conferences are good and focused on delivering knowledge that you can take home and use today. However I really wanted to try out one of the more academic conferences and see what I could pick up there. The OOPSLA conference is something that I have heard of over the years so I decided that was probably a good bet (see http://splashcon.org/history/ for a couple of the "big things" that has originated there) . For various reasons it has changed name to SPLASH (a very convoluted acronym that stands for Systems, Programming, Languages and Applications: Software for Humanity). I soon found out that acronyms is something of an addiction in the academic world, I quickly got lost among FOOL, PLATEAU, FREECO, AGERE etc, etc...

Since this conference covered so much, I will not try to cover everything but just give a very broad overview and point out some points of interest.

Theme 1 - JavaScript rules!

Much research with regards to programming languages was focused on JavaScript since it is such a popular language. This was a bit of a surprise to me, I expected more work around functional languages.

The keynote speech for the last day was given by Brendan Eich, the original creator of JavaScript. An interesting talk about the history of the language (it was prototyped in 10 days before the spec was frozen) as well as some information about the current and future developments with EcmaScript 5 and 6. JavaScript will move away from dynamic scoping and when ES6 comes along it should (hopefully) only be lexical scoping. One of the demos was really cool - a video decoder entirely in JavaScript and running at 30fps! See http://arstechnica.com/open-source/news/2011/10/native-javascript-h264-decoder-offers-compelling-demo-of-js-performance.ars for more info.

Theme 2 - parallelism, concurrency, multi-core, many-core...

I cannot remember how many times I heard "The free lunch is over" referring to Herb Sutters classic article http://www.gotw.ca/publications/concurrency-ddj.htm . Everyone was experimenting with various approaches for taking advantage of many-core architectures, improving the parallelism of serial programs, improving synchronization mechanisms etc.

Speculative execution "in the large": You know about todays CPU:s using speculative execution to improve performance, but now there are experiments with using many-core architectures to automatically execute various permutations of your code in parallell and simply pick the version that finishes first.

Another thing that was really interesting was a concept that David Ungar from IBM talked about. Forget about trying to ensure the correctness of your code with synchronization - it is just too expensive. Instead accept that your code will be wrong some times and try to implement recovery strategies. I am a proponent of eventual consistency for the sake of performance, but giving up on the notion of correctness? Maybe in a few, well defined cases, yes - but I have a hard time convincing myself that correctness can be a secondary concern.

Theme 3 - Java and the JVM

Maybe not as much of a theme as the other two, but almost every time there was a talk about introducing new language features or modifying runtime behavior, the JVM (and sometimes Java) was the subject being experimented on. For example one talk was about using asynchronous assertions - basically breaking out asserts in your Java program and running them on one or more separate threads. Implemented by doing some brain-surgery on the JVM.

I talked to a couple of the presenters and it seems to be the general view that the current JVM implementations are really outstanding examples of good software engineering. However the Java language was generally not held in high regard.

Academic conference indeed...

The event started out on Sunday with a number of workshops. I decided to go to the FOOL (Foundations of Object Oriented Languages) workshop and quickly found out that this was really the stuff for die-hard mathematicians. Mathematical descriptions for JavaScripts memory/variable model, more mathematical reasoning about events in combination with object state changes etc. Somewhat overwhelming and intimidating but the highlights was to get to talk with some really bright people. Even though highly research-oriented and academic in nature, everyone seemed really interested in applying their knowledge to real-world problems. The researchers really want to work with us practicioners (that's us - the people who making a living of creating software).

...but also a lot of pragmatic views

My favourite talks:

  • "How to handle 1 000 000 daily users without using a cache" by Jesper Richter-Reichhelm from WOOGA
    Described the challenging road from a traditional three-layered database approach, to doing both horizontal and vertical partitioning of data, to moving to an hybrid solution with in-memory NoSql as well as traditional SQL database. All in the name of performance and scalability.
  • "Erlang - The Road Movie" by Kresten Krab Thorup from Trifork
    Contrasting the object-oriented view that "everyone" in the software industry has today with the agent-approach of Erlang, this was a real eye-opener for me. The object-based paradigm is so dominant that it is hard to even see that there are alternatives. Erlang is the next language that I will learn. Period.

Sorry - I could not find the slides for these presentations available online...

[Update - slides for "Erlang the Road Movie" available here http://www.slideshare.net/drkrab/erlang-the-road-movie-gotocph-2011-keynote ]

Nov 01, 2011

Comments

Please login to comment.
Latest blogs
A day in the life of an Optimizely OMVP - Opticon London 2025

This installment of a day in the life of an Optimizely OMVP gives an in-depth coverage of my trip down to London to attend Opticon London 2025 held...

Graham Carr | Oct 2, 2025

Optimizely Web Experimentation Using Real-Time Segments: A Step-by-Step Guide

  Introduction Personalization has become de facto standard for any digital channel to improve the user's engagement KPI’s.  Personalization uses...

Ratish | Oct 1, 2025 |

Trigger DXP Warmup Locally to Catch Bugs & Performance Issues Early

Here’s our documentation on warmup in DXP : 🔗 https://docs.developers.optimizely.com/digital-experience-platform/docs/warming-up-sites What I didn...

dada | Sep 29, 2025

Creating Opal Tools for Stott Robots Handler

This summer, the Netcel Development team and I took part in Optimizely’s Opal Hackathon. The challenge from Optimizely was to extend Opal’s abiliti...

Mark Stott | Sep 28, 2025

Integrating Commerce Search v3 (Vertex AI) with Optimizely Configured Commerce

Introduction This blog provides a technical guide for integrating Commerce Search v3, which leverages Google Cloud's Vertex AI Search, into an...

Vaibhav | Sep 27, 2025

A day in the life of an Optimizely MVP - Opti Graph Extensions add-on v1.0.0 released

I am pleased to announce that the official v1.0.0 of the Opti Graph Extensions add-on has now been released and is generally available. Refer to my...

Graham Carr | Sep 25, 2025