craigaspinall.com

29 Jul 2011 - Can Kotlin K.O. contenders?

If you follow my Twitter feed then you may have seen my initial reaction to Jetbrains announcement that they were working on another JVM language was one of disdain. Not because I don’t think Jetbrains can create a compelling language, but because I was concerned that the JVM language space is becoming saturated, and too much choice can be just as harmful as no choice at all!

Having had a bit more time to look into it, I don’t think my initial reaction was warranted, and I shouldn’t have been so dismissive of Kotlin. When you look closely at the successful JVM languages, all of them with the exception of Scala are dynamically typed. If you want a statically typed alternative to Java that has a reasonable chance of still being around in a few years, you really only have the choice of Scala, Groovy++ or Gosu. There is clearly room for more choice in this space and Kotlin (and Red Hat’s Ceylon) are trying to fill it. Hopefully the competition will be healthy and we’ll end up with more than one good language to choose from.

So far Scala has been the main contender to challenge for the position of a better Java, yet it seems to divide opinion very easily. Jetbrains have labelled it too complex in their justification for creating Kotlin, a topic which Martin Odersky has addressed before. I think the real problem is just that Scala is a different language to Java and therefore (as with all new languages) you have to put some effort into learning it and practicing with it before you can use it proficiently. Whether Kotlin is enough like Java to avoid the mental leap remains to be seen, but I wish JetBrains (and all the language creators) the best of luck in their battle royale for the title of The Better Java. Without them, the Java ecosystem would be a very dull place!

28 Jul 2011 - My technology radar

One of the things I learned at Uberconf was how to build your own technology radar, a tool that ThoughtWorks use to decide what technologies they should (or would like) to use either internally or on customer engagements. I’ve built two so far, one for myself and one for my day job, and in both cases I’ve found it to be a really useful thought exercise.

This is my personal radar:

It is split into four technology quadrants:

And into four levels of interest (with my personal spin on the meanings):

Also things in red are on an outward trajectory and things in green are on an inward trajectory.

So what I decided is that I’m putting GTD on hold so I can try out personal kanban and see how that works out for me. I’m also leaning much more heavily on Acceptence Test Driven Development and Test Driven Development and will be encouraging others to do the same, as well as learning and promoting functional programming.

In the tools space, I’ve dropped Subversion and Mercurial in favour of Git, and I’ve dropped Maven in favour of Gradle, and I’ll assess whether I need to use Leinengen to build my Clojure projects or whether I can do that in Gradle too. I’m siding with Jenkins over Hudson and I want to use Sonar much more effectively.

Groovy is now my go to language and Clojure is the language I am most interested in learning. I don’t want to write Java code if I can avoid it so I should be looking more closely at Groovy++, Scala and Gosu for the times when I need a statically typed JVM language. I’m still interested in Haskell (primarily to learn functional programming) but I’m also keen to get more into the web space, hence JavaScript and CoffeeScript being on my radar too.

Finally in the platforms space, since I am moving more towards web applications, I am looking at the cloud computing offerings from EC2, AppEngine, NineFold and CloudBees (although I’m also interested in CloudBees for the hosted Jenkins offering). I’ve also dropped Bitbucket and Google Code in favour of GitHub in line with my change over to Git.

15 Jul 2011 - Uberconf, Uber Geeks, Uber Tired!

My first Uberconf is over. Was it worth the 16,000 mile (26,000km) round trip and a week away from my family? It was definitely worth making the trip but now I need a holiday to get over it because I’m exhausted and next time, I’ll bring my family along for the ride!

The conference is a learning and networking feast, with a wide variety of great content delivered professionally by awesome speakers that really understand their subject matter. The Westin Westiminster hotel was also a great vanue that catered well for a conference of this size, in terms of the rooms, the delegate accommodation and the food.

Almost all of the sessions I went to were good, but if I had to pick my top three sessions it would be these:

Encryption on the JVM: Boot Camp by Matthew Mccullough

Matthew completely blew me away with this talk. Not because of the subject matter but how he delivered it. I have never seen anyone deliver a presentation as professionally as Matthew did. I attended two of his other talks and he was just as good in both of those, even when the wifi was conspiring against him! He is definitely the Steve Jobs of the No Fluff Just Stuff crowd!

This is a subject that I knew next to nothing about before the session and I left feeling confident that I could go and implement encryption correctly and effectively afterwards. I also really enjoyed his Thinking in Git presentation which gave me lots more reasons to love Git!

I also got the chance to sit next to Matthew for dinner one evening and he is a really nice guy too. Very engaging, humble and friendly. A definite star in our industry.

Complexity Theory in Software Development by Tim Berglund

Like Matthew, Tim is an excellent presenter and this talk was probably the most thought provoking of all those I attended. It was a whistlestop tour of what complexity theory is and what bearing is has on our daily lives and the software we write. It was both educational and challenging in exactly the right proportions.

He also delivered a wonderful skit after dinner one evening, called Oh, The Methods You’ll Compose, which almost got a standing ovation from the audience! It reminded me very much of Guy Steele’s and Richard Gabriel’s 50 in 50 keynote that I was fortunate enough to see live at YOW! Brisbane last year.

Towards a Humane Interface by Venkat Subramaniam

I wasn’t able to make any of Venkat’s other talks but I had been told that he was an excellent speaker and didn’t want to miss out on the opportunity to see him. This subject wouldn’t have been top of my list of his talks, but it was the only one where I didn’t have a clash!

As it happened it was the last session of the conference and Venkat was in excellent form! He engaged the audience with some great anecdotes and was animated and jovial throughout. He clearly has a passion for all the work that he does and it was a great privilege to see him in action.

Narrowing it down to three talks was very difficult and the three I’ve picked out are the ones I enjoyed the most, but these guys also deserve special mention:

  1. Neal Ford for Build Your Own Technology Radar, which was another very thought provoking session.
  2. Frank Kim for Tricks of the Trade: What Every Developer Should Know About Application Security, which was both educational and very scary as we worked through case studies of actual security breaches and Frank demo’d how easy some of the common hacks are!
  3. Hamlet D’Arcy for Effective Groovy which was my first Uberconf session and had some great lessons for intermediate Groovy developers such as myself to learn and improve from.

Last but not least I need to say thank you to Jay Zimmerman, Mr. No Fluff himself. I know that he was very helpful in getting me to the conference and he made a point of coming over and checking how I was getting on, obviously remembering the e-mail exchange he had with my team leader. Now I know that is just typical of his attention to detail and the reason that the No Fluff Just Stuff conferences have the reputation that they do.

The only criticisms I had from the conference (and I know other attendees had the same problems) were:

  1. There were 10 tracks and in many slots I wanted to attend five talks. Having too much good content is clearly an excellent problem to have, but I really feel like I missed out on more than I got (which was still a lot).
  2. The multi session workshops meant you had the choice of missing out on 1-4 sessions at a time, or not attending the workshop.

Clearly the conference couldn’t be any longer, neither the speakers or the delegates would survive! Maybe grouping the sessions so that all the beginner/introductory sessions ran concurrently, then the intermediate then the expert ones. Given everyone will be at different levels on different tracks, they could have the choice of going from beginner to expert in one track, or cut between them depending on their existing expertise level. Also grouping the workshops together might work better.

Finally, I met a lot of very talented, very passionate and very friendly people at this conference, delegates and speakers alike. I cannot recommend it highly enough.

Older Posts

This work is licensed under a Creative Commons Attribution 3.0 Unported License.

Copyright ©Craig Aspinall 2011