Fri, August 29, 2008
CIO — The former second-class citizens of the programming world have leaped to the fore, changing the face of enterprise software development. With the rise of Web 2.0, scripting languages (also called dynamic languages) are now often considered important tools in a developer's arsenal. That's a far cry from than their old reputation as lesser tools for those who can't handle "real" programming.
However, like any other tool, dynamic languages are not necessarily interchangeable. Each has its place in a programmer's toolkit. We asked a group of luminaries in the scripting world for their perspectives on the current state of the scripting universe, and how it has changed since we last looked at the scripting language scene in 2005.
Richard Dice is the president of the Perl Foundation, the organization which has responsibility for Perl's legal, organizational, technical and administrative infrastructure.
Jeff Hobbs is director of languages and Tcl tech lead at ActiveState Software and a member of the Tcl core team.
Steve Holden is chairman of the Python Software Foundation, and author of Python Web Programming.
Rohan Pall, representing PHP, is a consultant who has been programming Web applications for almost a decade.
CIO.com: What place do scripting languages have in today's computing environment?
There's also been a lot of interest in Ruby, another dynamic language, spurred by the release and growth of Ruby on Rails. As a result of these changes, many developers are becoming more comfortable with dynamic languages.
Dice: Since 2005, there haven't been any singular events that changed the way scripting languages are used or their capabilities. They have evolved (more in perception than in real capability) from a place where they were used only for simple tasks or prototyping of new systems into much more general use. The general upward slope in their acceptance and capabilities in that time, though, means that CIOs definitely need to put them on their radar and develop "scripting language awareness." In late 2007, Forrester Research published its Forrester Dynamic Language Wave survey, so research on the topic is out there to work with.
Hobbs: Scripting languages are increasingly prevalent in Web applications, with PHP's growing popularity and the rise of Ruby on Rails, while maintaining their dominance in important daily tasks such as machine and test automation with Tcl and data manipulation with Perl. Python is finding increasing use in the scientific communities.
Holden: Scripting languages are being used in a wide range of application areas. Python has recently achieved increased visibility in many areas of science and engineering, particularly in bioinformatics. Three significant Web frameworks (Django, TurboGears and Pylons) have reached maturity in the last three years.
Scripting languages have a place anywhere that a systems programming language (e.g., implementing an operating system) is not required. Otherwise they fit basically anywhere, whether it be on the server or the desktop. Python excels in all these areas!
Lam: In general, it's easier to create and change code written in a dynamic language. Much of the Web has traditionally been created using dynamic languages, from Ajax on the client to server code written in PHP, Perl, Python and Ruby. Ruby on Rails in particular has driven a lot of interest towards Ruby, and is one of the preferred platforms to build Web 2.0 startups on.
Pall: In the last three years, we've seen the adoption of very fast CPUs, namely the Intel Core 2 line. Breaking the 3GHz barrier on this architecture—and now pushing 4GHz—has sped up dynamic language code to the point where many algorithms that simply weren't feasible to implement in PHP are now possible on commodity hardware.
In the last year, I've participated in writing text analysis software for auto-classifying documents. Our initial plan was to use C to do the heavy processing and PHP for the rest. As it turned out, on midrange commodity hardware, we were able to use PHP throughout and maintain solid performance. Web applications are commonly scripted, but in my experience, even internal processing-intensive applications are now commonly being implemented in modern, dynamic, scripting programming languages. The bulwarks have been breached and progress is now ushered in.
Next: How have attitudes changed towards dynamic languages?