What is it that Cloud Computing offers that previous eras of computing didn’t offer?
Over the last 70 years, the discipline of Software Engineering has been searching for a holy grail to mass manufacture software like Henry Ford’s assembly line. That is, to quickly build software using Reusable Components. However, the software being highly context sensitive with large number of variables has not been amenable to mass production. The software development is still a very labor intensive industry.
In the quest to build reusable components, first came the sub-routines and functions in languages, such as FORTRAN and C, to package instructions that can be used again and again. Initially, they were used to improve the productivity of individual programmers, then of entire departments and enterprises using the libraries of standard functions. In the 1980s emerged objects whose data structures and algorithms could be inherited by other objects to build reusable software. The advent of Internet in mid-1990s, lead to proliferation of frameworks in every domain to build software using reusable components spread across Internet and often maintained by different entities.
In the above 3 instances, the reusable components are static instructions that have to be linked with the target program at compilation and then run separately. The static instructions are copy-able and suffer from the lack of monetization.
The cloud computing offers a higher level capability for reusability. Instead of static instructions, one can reuse running services on the cloud. A programmer developing a new service can seamlessly use other services or offer its own to others. The services enable monetization of both the programs and data.
Often the traditional benefits of cloud computing are listed as – lower capital and operating costs, efficient equipment utilization, and world-wide scalability and availability. In addition, the clouds offer:
1. Access to best-in-class running services
2. Organization of software development as reusable services
3. Monetization of both programs and data