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 …|
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.
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?