X

Will the cloud change programming?

New programming languages come and go but most of the successful approaches build off existing models rather than heading off in a completely new direction.

Gordon Haff
Gordon Haff is Red Hat's cloud evangelist although the opinions expressed here are strictly his own. He's focused on enterprise IT, especially cloud computing. However, Gordon writes about a wide range of topics whether they relate to the way too many hours he spends traveling or his longtime interest in photography.
Gordon Haff
2 min read

Theearly preview of Dart, a new alternative to JavaScript for Web programming unveiled by Google earlier this week, is the latest entrant into the pantheon of programming languages. As such, it's hardly a rarity. There are hundreds of programming languages--perhaps thousands if experimental and academic variants are included. That said, the number of widely used languages is much smaller, numbering perhaps in the dozens, with fewer still broadly relevant to general-purpose server operations and Web software.

Changes in programming languages are more about evolution than revolution. CC Flickr user Lindsey Bieda

In fact, what's so notable about the computer programming language landscape over time isn't so much its diversity and adaptability, but rather its inertia. COBOL and Fortran, the longtime standards for business and scientific programming respectively, remain in use albeit less widely so than at one time. Object-oriented programming, which encapsulates data together with the associated functions that operate on that data for more structured and maintainable code, came into initial widespread use largely through extending an existing language, C. C itself, originally designed as a language for programming systems at a very low level, was put into use for all sorts of application programming tasks for which it was arguably not very well-suited.

Does this change with cloud computing or, to be more precise, with an increased emphasis on browser-centric application access, big and unstructured data processing, and the development of a huge mobile ecosystem?

To some degree, it already has. Scripting languages, including JavaScript but also Perl, Python, PHP, Ruby, and others are children of the Web. Languages that lend themselves to writing code quickly with less of the stringent correctness checking common to traditional enterprise code-writing have become the norm in many Web environments. However, at the same time, more radical approaches to dealing with large-scale parallel operations on the server side haven't taken off in a big way. (Intel's James Reinders discussed the state of parallel programming with me two years ago in this interview; the picture hasn't changed in any big way.)

Public platform-as-a-service clouds introduce new possibilities to broaden the Web programming landscape. However, to the degree that an application programming interface (API) is limited to a single provider, moving an application elsewhere will require at least some porting. As a result, while we do see some providers offering APIs that are specific to a hosted environment, there's a strong argument for the flexibility of application portability across on-premise and a variety of hosted clouds.

The overall picture I see is one of change, but change that is mostly evolutionary and that doesn't involve a lot of radical overnight change from existing models.

As Al Gillen, program vice president for system software at market researcher IDC puts it in reference to a survey I helped put together for VMworld in San Francisco at the end of August: "thought it very revealing that "yesterday's'' frameworks were target for "tomorrow's" apps." He went on to write that "tools will evolve and utilize new programming frameworks, then use will evolve over time, not so revolutionary."