I am in London this week for QCon London 2012. Expectations are high and I hope it lives up to it. So far so good, I have to say. I have been on two tutorials so far and if quality is kept at this level I should be in for a treat.
When Martin Fowler announced he’ll be having key note there I had to check out what was the conference all about. Now, recently he was blogging about Polyglot Persistence which caught my attention (info deck they prepared on the topic is excellent), and that was going to be the topic of the key note so naturally I was interested. It turned out the conference ticked all the right boxes for me with tracks on Architecture, Big Data/NoSQL, High Availability, High Performance, surprisingly I had absolutely no interest in Agile track (we’re agile enough I like to think ). Anyway, goes without saying with all that on offer my expectations were always going to be high, especially when for every day, every slot, I want to see at least 3 sessions. It was very hard to pick what to see (well, harder to decide what not to see I should better say) and the ones I chose better be good!!!!
Why Erlang? Well, I’m all into this Polyglot Programming thing – using the right tool (language) for the right task. Also, I like learning new programming languages and I like to see different philosophy, different approaches, keep my mind open for new ideas. When I say different languages – to me Java and C# are pretty much the same in this context, however, if you look at languages like Ruby, it’s very different, F# too, Prolog completely out of this world. Now, Erlang was made from ground up to be highly available, concurrent and distributed, oh and have I mentioned – functional (they are definitely gaining momentum them functional languages). So this makes it quite different and don’t mind functional aspect of it – high availability and distributed computing is the key here.
The session was excellent, packed with information, lots of hands on as well. Definitely gave me enough to want more and I should really start reading Programming Erlang since there’s so much to it and we only skimmed the surface. Well, I should’ve really said continue reading it since I’ve started it a year ago (*blushing*). It was interesting to hear where Erlang is used like in Televoting (X-Factor and such, you know ), but one thing that impressed me the most was Erlang’s lightweight processes. Your man, Francesco, spun off 10,000,000 of those (one was spun off by the next, sends it a message, receives a message and terminates) – it took just 12 seconds for them to finish. I thought that was really impressive. Another impressive thing demonstrated was how easy is to create distributed processes and communicate between them, and actually monitor if they are still alive and it was all in just few lines of code. For a lightweight introduction to the language I would recommend Seven Languages in Seven Weeks book, that’s how I started with it, and there are 6 more languages covered in it, so very well worth reading.
The second tutorial I attended was Are you a Software Architect? Well, the answer is sort of, not, maybe, yes, well … depends Joke aside, the tutorial was brilliant. My motivation was actually to see what am I doing wrong and what am I doing right and to see how to improve on both ends – do things that I’m doing good better, and fix things I’m not doing well. Simon, the speaker, was excellent, and the format of the delivery too. We had several exercises where we had to discuss various topics in pairs and then we would call out responses. Honestly I did not expect any exercises given the topic but this was clever. I got to know how other people have organized teams, what problems they’ve encountered, got to hear different opinions on roles – not just Architect role, and it was really interesting because you don’t have opportunity to do this … well, ever And when people start talking about, say responsibilities of a Software Architect, more often than not my reaction was – right, never thought about that.
All in all, I never thought before that Software Architect would have so many responsibilities and so many soft skills required, that there are so many fallacies and myths. Now that I took so many notes and it has been mentioned, it makes sense, but seems that there’s never enough time to step back from all the daily chores and actually think about all these things.
Lots of impressions for the first two days, and if it is to be judged by them the reminder should be really really good. Expectations are high, tomorrow is going to be a long day, I’ve settled for Architecture track and will maybe switch to High Availability track later in the day. Hopefully will have something exciting to write about tomorrow.