The State of the Scripting Universe - ' The Downsides' (
Page 4 of 5 )
DevSource: What are their drawbacks? How are you addressing these issues?
Conway: Execution speed is still a major issue. In Perl we're addressing that by building a new blazingly fast virtual machine called Parrot (www.parrotcode.org) on which the next major version of Perl will run.
ADVERTISEMENT
Pall: The drawbacks of scripting languages primarily lie in the perception that they are not "serious" programming languages. When a network engineer belittles high-level programming, it's a net loss for the state of computing. Individual scripting languages have faults, but very high-level programming is an advance whose time has come.
Van Rossum: There's a lot of cultural resistance to dynamic languages, due to the "static typing is always better" meme. (In practice, the kinds of errors that I find
in Java code aren't all that different from the errors I find in Python code.) This is weathering away due to the many successes scored by dynamic languages.
There are, of course, areas where raw machine speed is too important to program directly in Python. This is typically addressed by coding a carefully chosen small portion of an application (say, 10-30%) in a lower-level language (like C or C++); Python has well-developed mechanisms for wrapping such code (as do most other dynamic languages). In most cases, one can in fact find the necessary low-level code already available as an open source library, and all that needs to be done is write a thin wrapping layer for Python. (This is how Python has acquired fast XML parsing, gzip compression, MD5 checksumming, and many other capabilities.)
Thomas: Some older scripting languages are not that well suited to writing large or frequently maintained applications. It can be hard to read the source. More modern
scripting languages, such as Python and Ruby, are very easy to read: I'd say even easier than more conventional languages such as C# and Java.
One problem shared by all scripting languages is the lack of a good IDE environment. There are some IDEs, but they lack the power of something like Visual Studio. At the same time, it's interesting that despite this, people are creating interesting and large applications using languages such as Ruby. Perhaps that means that we don't need large IDEs if the language is powerful enough?
Hobbs: The main drawback would be the counter to the above — many tasks done with a dynamic language will be slower than a well-coded equivalent in a systems language. However, if I can code it in one-tenth the time, and the result is "fast enough," this drawback is often just a statistical point, and not a negative. The dynamic languages are always addressing performance in some way or another.
Another drawback is again rooted in a key feature of dynamic languages: the dynamic typing.
A key drawback that is not a technical one, but equally important, is the lack of marketing budget. Tcl and other dynamic languages are ideally suited for many projects, but it is tough to compete against the marketing engines of Sun (Java) and Microsoft (C#), which continue to push their technologies as The Only Way. History has shown that technical superiority can be squashed by superior marketing.
DevSource: Is scripting adoption by businesses growing?
Conway: I really only get to observe this issue through the tiny window of my own training business, but everything I see indicates that scripting continues to be at the core of most business's on-line activities... even if no-one except their system administrators, DBAs, and core developers knows it.
Languages like Perl and Python and PHP are what hold their IT infrastructure together. They're the tools that allow organizations to move data between databases, between formats, between applications, between platforms. As the need to do that continues to grow (and it will), scripting languages will continue to grow with it.
Pall: In my experience, scripting is growing because programmer cost is very low. It takes many more years of experience to be an intermediate C++ programmer than it does to be an intermediate PHP programmer.
Business logic scripters don't have to know the intricacies of the machine they are programming on to format data from Excel, perform basic transformations on database records, or to connect to Web services and thereby leverage a vast amount of programmer effort. Business owners and managers appreciate this because it directly maps to the profitability of the business.
Van Rossum: A recent article in Infoworld with a survey showed Python adoption up to 14% (from 6% last year). Pretty much everything else points in the same direction (e.g. the upcoming PyCon conference in Washington, DC has already got more people pre-registered than last year's total registration).
Thomas: Yes, because I see more and more businesses going live using applications written in scripting languages. A large number of sales of our book, Programming Ruby, are to companies. I think the more astute and agile organizations have realized that a one-size-fits-all approach to development leaves them less competitive. They're experimenting with hybrid approaches (often glued together using Web service-style interfaces). And they're being successful.
Hobbs: This one is hard to answer, because there is no central organization that can provide any accurate statistics on the matter. This is similar to the marketing problem. While most of the languages have a core group, they are most often for technical guidance, not market management. It is hard to gauge especially as the dynamic languages we refer to are all open source. Anybody can make a distribution, and several exist
of each for each major platform. I am confident that overall scripting adoption is growing in businesses, as seen anecdotally through tech reports, news items, conference papers, release
announcements, etc.