Does Cloud Require Change in Programming Mindset


Cloud computing is at the very peak of Gartner Hype-Cycle – literally!

All big players (Google, Microsoft, Amazon, IBM …) have jumped into it.

Lot has been written about the obvious Pros and Cons and I have listed the main arguments below:

The story is about … However, doubts persists …
  • Saving money through economy of scale
  • Cap-ex vs. Op-ex
  • Computing power on demand
  • IT as utility services
  • Security
  • Reliability
  • Integration with on premise application
  • Vendor lock in

But, a question which I do not think have received sufficient attention is – to move to cloud, do we need a paradigm shift in programming? Do we need to make a shift like we did when we adopted OO? In my mind there are 2 critical aspects that need to be considered.

Parallel Programming

It is clear that to be able to take advantage of computing power on demand we need parallel programming. The questions that we have to ask ourselves are:

  • Can the process of parallelization be completely shielded from the programmer?
  • Are all programming problems parallelizable?
  • Will we see new breed of programming languages coming up?
  • Is it necessary to learn algorithm like Map-Reduce algorithm to do programming for the cloud?

Move away from Relational Storage

In RDBMS data can only be represented as two dimensional tables. On the other hand most real world objects are better represented in hierarchical structure. With the advent of OO many people believed that over a period of time OODBMS will become popular – but that was not to be. Instead we saw the emergence O-R mapping tool which managed the impedance mismatch between object view and relational view.

Storing hierarchical object as XML inside a RDBMS has gained some popularity. The support for XML data type including xPath query and indexing on elements & attributes inside XML have started emerging. These features have many possibilities – but the awareness is low.

Coming back to cloud, I suspect that, to effectively harness the economy of scale of the cloud, we may have to move away from RDBMS. We have to start thinking in terms of:

  • Storing and retrieving objects rather than rows
  • Transforming collection of objects into multi-dimensional cube query and reporting

On the whole – it will be a transition at least as significant as moving to OO.

You should read this post – Is the Relational Database Doomed?

Udayan Banerjee on Google+
About these ads
Comments
2 Responses to “Does Cloud Require Change in Programming Mindset”
Trackbacks
Check out what others are saying...
  1. [...] is about change in programming mindset. Share this:LinkedInTwitterFacebookStumbleUponPinterestEmailLike this:LikeBe the first to like this [...]

  2. [...] You will need to rewrite your application to work on Google App Engine – see this [...]



Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Google+ photo

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

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 985 other followers

%d bloggers like this: