Dave Thomas on Cloud Computing
I went to see Object Mentor’s Dave Thomas give a talk about cloud computing on Tuesday evening in a combined meeting of the Sydney Alt.NET user group and several others.
I’d not seen him speak before but several colleagues had seen him at JAOO earlier this year so he came highly recommended.
We started off with a plug for the JAOO Australia 2009 conference which will again be in Brisbane and Sydney at the beginning of May. I’ve not been to a JAOO conference before but just looking through last year’s slides and looking at the quality of the speakers is enough to tell you it’s worth attending.
After that we moved onto his view on cloud computing, which I’m told was quite similar to one he gave at JAOO called ‘Next Generation IT - Life After Jurassic Middleware’.
I’ve heard about cloud computing but not much more beyond that so it was quite the learning experience for me. Some of the more interesting things he spoke about:
- The opening part of the presentation spoke of the pain that we have created for ourselves in the software world with over complex solutions to problems which the majority of the time are just moving data from A to B and doing CRUD operations. He was particularly damning of Java and ORM in this section of the talk.
- The main idea around cloud computing was that we should be able to develop and deploy applications quickly. We shouldn't have to rely on a production support team to deploy and take care of our application i.e. throw it over the fence, but should take responsibility for it. Deploying to the cloud gives us the ability to do this.
- Services should be all about having a simple API and hiding the complexity behind this so that the consumer doesn't have to worry about it. I guess this ties in quite tightly with encapsulation, but he spoke about the leaking of complexity that we see in many APIs which make them much more difficult to use.
- One idea I found interesting was that of exposing legacy systems as atom feeds. We often spend a lot of time trying to add tests around these systems to allow us to add new functionality, but this approach seemed to suggest just using them for their data and writing the code elsewhere.
- In response to a question about some of the new features being planned in Java 7, he spoke of the need to choose the right language for the job and his dislike of the current trend for object oriented languages to support functional programming concepts. The obvious thoughts here for me were that when it comes to parallel computing Erlang is best, for web development, Ruby, for client side development, C#. Of course we don't always have the choice when it comes to language as clients have to maintain what we have written but in an ideal world his ideas make sense.
Overall a humorous and interesting talk and one that has made me intrigued to learn more about cloud computing.