Cloud does not require change in programming model – Microsoft

In two of my previous posts I have highlighted why I think cloud computing needs change in thinking. However, in a recent discussion Walid Abu-Hadba (of Microsoft) clearly stated that Microsoft’s cloud strategy assumes that they are going to retain the existing programming model for cloud. That is, programmers can develop their application without bothering about where it is going to be deployed.

This is how the logic goes:

  1. When mini computers came in, IBM did not / could not retain the mainframe programming model for mini and hence lost the mini race to DEC
  2. When PCs came DEC suffered in the same way
  3. The movement from character interface to GUI saw many companies (Ashton-Tate, Word Perfect) losing out
  4. When network based computing transitioned from file server to client server model, Novel lost out
  5. A programmer learns a programming platform in first few years of his/her carrier – very few make a transition to a different platform later on
  6. There are huge number of programmers who are familiar with the existing programming model – transitioning them is almost impossible

Do you see the fallacy in this logic?

Essentially what Microsoft is saying is that “we will be at a serious disadvantage if the programming model changes – so let us not change it”. But, is the current programming model right for the cloud?

In past Microsoft has changed the programming model twice – the change in each occasion has been triggered by competition. The GUI programming model was forced by Mac and the .Net programming model was forced by Java. They have retained the same programming model for mobile and the result is there for all to see.

So, let me restate why I think the programming model will change. I have based my thoughts on how Google App Engine is structured – after all Google has the largest cloud computing infrastructure.

  • You do not have to worry about object-relation (O-R) mapping. Big Table implementation of Google allows you to save the objects directly.
  • You will not need web server – app server – database server. All of them become redundant.
  • Designing for heavy transaction volume will not be necessary – it is in built. Instead …
    • …individual transaction performance will have to be optimized.
    • …designing for high data volume will be required.
    • …impact of data contention across transactions needs to be checked.
    • …compute intensive algorithm needs to be broken up.
  • Heterogeneity is the order of the day. Consuming services from different sources and providing services for others to use will be the starting point.
  • Approach to debugging will be totally different. I am not sure how it will be done.
  • In many situations, storing – searching – retrieving unstructured data may be advantageous compared to structured data.

I propose to elaborate each of these points in my future posts.

Is this Microsoft’s first major strategic decision in the post Bill Gates era? Let us see how it pans out.

7 Responses to “Cloud does not require change in programming model – Microsoft”
  1. Rebecca Dias says:

    I agree with you Sai. I think that Walid may have meant to say that the Syntax and Tools are not changing; however, MS has begun to support this new model with RESTful APIs and blob support in SQL.

  2. hoolipot says:

    Hi – you make some great points in this post, and I completely agree with you. Unless MSFT is trying to be sneaky about this (which they’re not historically very good at), the risk here is that they will miss the cloud “boat” in the same way that they came really close to missing the internet “boat” a few years ago. Actually, I thought that would have taught them a valuable lesson about dismissing new paradigms …

  3. Sai Sagar says:

    Good one. I too believe the programming model is different. In fact the programming model (the APIs, procedural vs declarative..) has changed over different versions of .NET with WPF, WF, WCF, LINQ..etc. Now with Azure again there are a different set of APIs and a different set of aspects to be thought by the designer and developer. What Microsoft has kept intact across the evolution of .NET framework and Azure is the programming languages (VB.NET, C#) and a consistent toolset (Visual Studio) so that developers do not need to learn a new language (syntax) or new tool. But, developers have been putting in lots of efforts on “learning” these new APIs and programming models though!

Check out what others are saying...
  1. […] Microsoft says – Cloud Does Not Require Change In Programming Model (Oct, 2009) […]

  2. […] Microsoft says – Cloud Does Not Require Change In Programming Model (Oct, 2009) […]

  3. […] bothering about where it is going to be deployed and still take full benefit of cloud computing? There are some who think so. However, consider the following […]

  4. […] Microsoft wants to keep the programming model as much unaltered as possible – see this […]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: