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 :-)