Web development is at an interesting inflection point. Hosting applications in "the cloud" is gaining momentum, but the tools used to develop and customize these applications are still dependent on traditional Integrated Development Environments (IDE), like Visual Studio .NET, Eclipse, Adobe CS4, and Dreamweaver.
So what is cloud development? First, it's important to distinguish between developing "for" the cloud and developing "in" the cloud. When developing "for" the cloud, you are creating easily accessible applications with the intent of letting end users customize the "last mile". When developing "in" the cloud, you have the agility and mobility to modify an application from anywhere in the world, at anytime, using (almost) any device.
There is a "roaming" quality to cloud development. Cloud development tools become just another application, like Google mail/calendar, that are accessible from anywhere.
There is also a disruptive quality to cloud development. Everyone is now a "programmer" in the 21st century. Whether it's programming a DVR, iPhone, or building a MySpace page; everyone has a new found creative capacity and means to develop in the cloud. This is the natural progression of technology (it's important to note that Developers in the 90's opposed "Visual" development tools because they put distance between the programmer and the actual low-level code.)
Cloud programming languages must carry forward traditional traits; such as function, target, construction, and expressive power; but also be accessible by the masses.
Some common characteristics of cloud development include:
- Emphasis on declarative configuration over customization
- Inline browser editing
- Dynamically typed
- Interpretive
- Custom event declarations
- Stream management
- Mobile accessibility