… and a post-functional programming-style enlightenment.
Last week we visited Scandinavia’s biggest (and only) Java-conference Jfocus 2013 in Stockholm. I had heard positive rumors about interesting topics and good speakers and after seeing the thing live, I can only say it delivered the promise of bringing world-class speakers and seasoned developers together.
During the two conference days there were constantly four simultaneous tracks of talks from varying topics going on. The main themes circled around functional programming style (coming soon to a Java near you), how to build scalable systems/apps and various common tasks in development and deployment. Fortunately there were also four of us present (and 1500 others), so we had the chance to split and discuss the topics later.
Some crowd-magnet talks were, for example, those from Netflix and Twitter where
they gave us a sneek peek at how to deliver when things get big. Both of the services have millions of users and thus have massively scalable systems. The Twitter talk focused on realtime delivery of content whereas the Netflix talk was about their overall cloud architecture (which, by the way, they are currently open-sourcing one service at a time). An interesting point from the Twitter talk was
that their problem is not the 300 000 tweets coming in every second, but the cha
nges in viewing scope (like starting/stopping to follow someone) which generates 18 million outgoing messages per second.
By far the funniest (and still highly informative) speaker was Dr. Venkat Subramaniam on “Design Patterns in modern JVM Languages”. His talk focused on the re-emerging functional programming style, which for decades has been mostly of academic interest (because it alone has no high level structures like packages and inheritance which object oriented style offers).
So why introduce functional concepts, like currying and monads, to object-oriented languages? (even if you’re not quite on par with the concepts, just keep reading) Well, in yesterdays apps, everything was run on one computer or on a single system for that matter. In todays apps, we have multiple processors available even in our laptops not to mention cloud platforms. Unfortunately in our current apps, the heritage of procedural programming being taught and used everywhere shows (in many simple operations, like going through lists). Our past has left us with poorly scalable apps, luckily the coming functional programming style has scalability built-in. Yeah, it’s a bit harder at first, but it will pay off with also better re-usability on the method (I mean function) level.
Many of the talks were recorded and will become available online in the coming weeks at: