Nov 25, 2008

Cloud Computing with Dave Thomas

Tonight was the night for the normal ALT.NET user group meeting and since Dave Thomas was in town and wanting to speak to the Sydney user groups we combined with the Sydney Java User Group, SyXPAC and the Scrum user groups to have a listen to what Dave had to say about cloud computing in return for a small plug about the JAOO conference (pronounced something like yao) being organised for next year.

It turned out that having 4 groups combined meant there were probably well over 100 people there and Dave gave an entertaining and opinionated view of what's happening in the cloud space and his thoughts on where things are going from here on in.

Here's a few things/thoughts I noted from the presentation:

  • Development as it exists today is getting more and more complex. The client/server computing model sucks and the industry is moving back toward a centralised computing model.  Why? Because it's just sooo much simpler.  Distributed computing is just too hard.
  • Cloud computing simplifies the equation because all that plumbing stuff is abstracted into a simple service based API.  And it has to be otherwise you can't scale it.
  • Relational databases are going to die off (eventually).  OR/M and other such approaches that effectively are wrappers for CRUD development are going to disappear as well.  SQL databases just can't handle the size and distribution needed for cloud computing - dynamic data storage mechanisms are required.
  • Javascript is going to be the lingua-franca for most development. Javascript isn't great but it's "just (only just) good enough" for the job and it has an incredibly massive installed user base - the run anywhere promise of java is a reality with javascript.  A lot of work is being done to make the javascript VM's incredibly fast as well.
  • Functional programming is the only way to deal with massively parallel computation.  The functional programming additions to C# are good, but shoehorning functional concepts into a language complicates it.  Better to use a specific language for a specific task (I couldn't help but thinking of F# here).
  • The need for people who can solve complex problems and do so efficiently is going to increase.  The graduate developer pool is decreasing and the educational institutions have dumbed down their curriculums so new developers are going to be ill equipped for what's ahead.
  • He made an interesting comment that he thought Java was pretty much dead (though he didn't outright say it, but the comparisons to cobol throughout the presentation were amusing) as Sun are not pushing the language forward. Microsoft, on the other hand, are doing a credible job in modernising their application development platform.
  • Microsoft Azure & Live Mesh both got a plug.  In fact he singled out Mesh as a great synchronisation platform for dealing with occasionally connected clients.

There were a number of other things he mentioned during the talk as well which are great food for thought and I'll need to let some if it settle in my head before forming my own opinion on it.  Overall, I thought it was an excellent evening and enjoyed getting outside the Microsoft bubble, meeting some people from the "other" development communities and to hear some opinions on application development from a completely different view point.

Oh and best of all, I think it confirmed to me that the Microsoft platform is a great bet going forward for application development - even in the cloud, although I think I'll have to spend some time and learn some serious F# & Javascript skills :-)

1 comment:

  1. Thanks for the write up Richard, you saved me from doing one, your observations are pretty close to mine.

    I do have a slight bit of uneasiness about this cloud initiative. The first is that if we "dumb down" our dev practices to the point where we are just throwing javascript around and calling someone elses REST service the only guys with decent skills will all end up working for the service vendors like Microsoft. I can see something like this bringing on a skills shortage rather than being a help to it.

    I recall someone writing about a conversation with Don Box that was along the lines of the guy saying to Don "your job is to make software development so easy that I have to come work for Microsoft to work on anything interesting" and Don says "Exactly".

    My other problem is what happens the day that Microsoft get bored with Azure in whatever form it releases as and decides to turn it off ? It's fun to bash COBOL and mainframes, but if you own the box there's nothing stopping the things from running forever, can you see Microsft keeping Azure v1 running for 30 years ? I don't. Perhaps what Dave means by Agility is that you can just port your app to a new service if the old one goes out of fashion because the development is simpler.