The State of the Scripting Universe - ' Scripting Languages Today ' (
Page 2 of 5 )
Scripting languages have long been regarded by the programming world as poor country cousins, somehow inferior to the "real" programming languages. Yet, according to Evans Data Corp.'s Fall 2004 North American Development Survey, a lot of "real" programmers are adding scripting to their arsenals of programming tools. The research firm reports that over 41 percent of the 666 developers surveyed use Perl, 32 percent use PHP, and 15.6 percent use Python, with considerable overlap (other scripting languages were not included in the questionnaire).
Of the three languages, PHP has enjoyed the most explosive growth, nearly doubling its share since the fall of 2003, while Perl added a respectable six percent and Python's use base was more or less static, increasing by less than two percent.
ADVERTISEMENT
Only about one third of developers reported either having tried and rejected, or having no intention of trying these scripting languages, and that percentage is declining each year.
Even with this relatively sketchy data on scripting, it's easy to see that the technology is growing. But why? We asked leaders in the development communities for Perl, PHP, Python, Ruby, and Tcl to help us paint a picture of the scripting universe. Each offered his ideas on the pros and cons of scripting languages (or, as several prefer to call them, dynamic languages), and his perspectives on the reasons for their growth. Their combined insights tell an encouraging story.
The cast of characters includes (in alphabetical order by language), from the Perl world, Damian Conway, author of many modules in the Perl standard library, who spends most of his spare time working with Larry Wall on the design, prototyping and explanation of Perl 6. A popular speaker and trainer, he is also the author of the book Object Oriented Perl (Manning). His latest book, Perl Best Practices,
will be released by O'Reilly in August.
Rohan Pall, who represents PHP, has been programming Web applications since 1999 and currently works with a top-ten portal.
Guido van Rossum is the author of Python, and is still actively involved in its development. He has written many articles on aspects of the language.
Ruby evangelist Dave Thomas is a principal in The Pragmatic Programmers, and the author of several books, including The Pragmatic Programmer and Programming Ruby. His latest book, Agile Web Development with Rails, is due out in
July.
Jeff Hobbs is the Core Release Manager for the Tcl language. He has maintained the TK Usage FAQ since 1996 and is a program committee member for the USENIX Tcl/Tk Conference. He is the co-author of Practical Programming in Tcl and Tk (Fourth Edition), published by Prentice Hall.
Here's what these experts had to say.
DevSource: What place do scripting languages have in today's computing environment?
Conway: Very simply, they're the glue that holds complex systems together. They allow developers to hook together commercial and open source software packages, and to
coordinate the resulting systems. But, increasingly, they're also fully-fledged development platforms in their own right. For example, many large commercial applications are now programmed predominantly in Perl or Python. And, of course, PHP is the bedrock on which a huge number of on-line businesses are built.
Pall: Scripting languages have a very important place in the hearts and minds of developers who pride themselves on rapid application development and delivery. Managing memory is seen as something that is best done by interpreters, and when specifications change at whim, software must evolve rapidly to fit new demands. Scripting languages, freeing the programmer from mundane tasks, and encapsulating code for networking, graphics, sound, make programming simpler. Scripting languages are growing with new hardware advances, displacing the traditional role of compiled languages in areas such as network servers and game libraries.
Van Rossum: They are quickly becoming general implementation languages for many application areas, shining where developer time is more important than run time (and even in places where run time is important. Because of the high-level built-in operations, Python programs can do many things as fast or faster than Java or C/C++ programs). The term "scripting language" is becoming more an more of a misnomer; many people nowadays prefer
"dynamic languages," referring to the lack of compile-time type checking.
Thomas: Scripting languages, like all languages, are tools. In the same way that a carpenter who only knows how to use a hammer is going to do a poor job, a programmer who has only one tool in their toolbox is going to be at a disadvantage. Scripting languages occupy a unique place in the set of tools. They are powerful, with a lot of built-in features and functions. You can develop rapidly in them. (I know one Java developer who spent five weeks implementing a Web application; he rewrote it in Ruby using a framework called Rails in four evenings. And, just to add salt to the wound, the Ruby version actually ran
faster than the Java version.)
What place do they occupy? That's up to the developer. When do you use a hand saw, compared to using a power saw? Different carpenters will have different answers. But having both at your command makes you a better craftsperson.
ActiveState works with Perl, Python, and Tcl (as well as dabbling in PHP and XSLT), so we have a wealth of experience in the dynamic languages. We've reflected on this above, and explained why we don't call them scripting languages anymore.
[The paper says: "There is a category of programming languages which share the properties of being high-level, dynamically typed and open source. These languages have been
referred to in the past by some as "scripting languages," and by others as "general-purpose programming languages". Neither moniker accurately represents the true strengths of these languages. We propose the term dynamic languages as a compact term which evokes both the technical strengths of the languages and the social strengths of their communities of contributors and users."]
As for Tcl specifically, it still has strong roots in the areas where it originated: as the Tool Command Language. This is the embedding of Tcl into larger applications (written in C/C++ or Java) to provide a scripting component. This will be done for anything from testability (to allow for test automation) to end-user scripting and control, depending on the app. In addition, tied with Tk (the cross-platform UI toolkit), it continues to be popular for UI development. Tk is also tied to the other dynamic languages, often via Tcl (just another type of embedding). The low barrier to learn Tcl scripting in general for even non-CS types has
made it popular for a wide variety of apps.