Last Friday, I participated in a magical conference: Reaktor Dev Day. The world-class keynote speakers included Scott Chacon, Martin Odersky, and Jonas Bonér. I'm still thrilled with the event along with the subjects presented there. Additionally, the conference was very professionally organized. Thank you, Reaktor!
Below you can find some of my thoughts regarding the presentations.
I really liked the Scala and Akka introduction by Odersky and Bonér, although the schedule for the presentation was a bit too tight. Right after the presentation, I participated in the Scala Introduction hands-on session by Sebastian Nykopp.
Scala soon felt like a cosy programming language to me, as I have previously done functional programming with Scheme, Haskell and Python and also written a lot of Java. The syntax of Scala primarily reminded me of Haskell. In fact, someone at the conference said to me that in some circles, Scala is called as the "bastard son of Haskell and Java". I would rather call Scala like the Haskell implementation that has a real-world connection through many web and backend frameworks.
At home after the conference, I had to dig up some old code. Do you recognize the languages? Which would you pick as having the most beautiful syntax? For some strange reason, I like the last one the most.
map (lambda x: x*2, [1, 2, 3, 4]) List(1, 2, 3, 4).map(_*2) map (*2) [1, 2, 3, 4] (map (lambda (x) (* x 2)) '(1 2 3 4))
Distributed Web Systems
Ricard Vice Santos from Spotify started the afternoon with a presentation about Distributed Web Systems. Santos' act was not the best presentation at Reaktor Dev Day, but Spotify is such a hot service today that peeking under its hood sparked the attention of many conference attendees, including me.
From time to time, Santos submerged us in very deep implementation details of Spotify. However, the most interesting part of his keynote was about the multi-layered backend architecture of Spotify and how it achieves the critical low latency that a service such as Spotify needs.
Actually, the Distributed Web Systems presentation reminded me of the Google Computing Platform keynote held by Hannu Helminen in 2007. Although Helminen was a very convincing speaker, he could not elaborate the details of Google's implementation in such a detail as Santos could. Surprisingly, Santos did not have to decline in answering the in-depth questions that he was posed.
A Tale of Three Trees by Scott Chacon convinced me that Git really is the best version control system out there. I had previously listened to a colleague's enthusiastic presentation about the internals of Git, but only now did I start to understand the elegance of Git's architecture based on checksums and source tree snapshots. The core idea of his presentation was the skillful use of git reset which enables a good workflow for manipulating past commits before pushing them upstream.
On top of the great content in the presentation, Chacon was by far the best speaker at Reaktor Dev Day. He spiced his presentations with due humor:
"... then you open it in your text editor. Vim if you're cool. Emacs if you're... older"
Chacon uses a presentation system called ShowOff that he has written himself. It is naturally available in GitHub.
The Business of Open Source
Chacon concluded the conference in a keynote about open source business models, some of which are used at GitHub, for example. The keynote slides are also available in GitHub and I set up ShowOff to share his Reaktor Dev Day slides on my virtual server.
The main arguments of the keynote were:
- Become an open source maintainer (e.g. in GitHub)
- Contribute in an open source project: send patches, make a pull request
Chacon of course encouraged us to use open source and to open source projects we are working on. Ultimately, Chacon urged us to even use some features of open source development models in commercial development as well. I think that many of the ways of working he presented are still too idealistic to be used on a large scale, and might not be successful in the projects and with the clients that I've run into. But without a doubt, some of them could work and are should definitely be considered – especially when a new project is starting and the ways of working together are being built.
Chacon's presentation reminded me of Jon "Maddog" Hall's inspiring Linux evangelization that I was able to attend at the Helsinki University of Technology in 2003. While reflecting these two presentations, I realized that social media - such as GitHub - is the most important change in the ways open source is being distributed and developed during these 8 years. Another significant phenomenon is the evolution of distributed version control systems (DVCS). In 2003, there was no DVCS systems nor GitHub and Maddog concentrated on how to use and distribute the lower level open source components starting with the Linux operating system.
The use and significance of open source has been continuously growing. The open source community is using the "social DVCS media" for self-organization in a whole new way. You just need to carry out the Chacon's core theses to catch this train.