The New Age of Languages
In the present computer world, long gone are the days when so-called bona fide software programmers disassociated themselves from the likes of programmers using scripting language. The evolution of Web 2.0 brought about the increased popularity of dynamic languages, or scripting languages, which have become an essential tool for every programmer to stay at par within the programming community. We are at an era when PHP, Perl and other interpreted languages are no longer termed “toy” languages.
With the increasing broadband penetration worldwide there has been a possibility for more users to have a more responsive browsing experience. It has come to a point that some traditional software applications are finding their way into the internet (notably Google spreadsheets and Google Docs). Corporate portals, or intranets need not be located in the office building. It could be hosted somewhere on the internet and can be accessed by anyone with the right log-in credentials. Data that represents the business of the enterprise can then be accessed anywhere using software running on the internet. The evolution of the web into web 2.0 and the increasing popularity of blogs and social networking, plus the eventual migration of the workplace into the internet highlights why such scripting languages deserve a place in each programmer’s toolbox.
But like all systems and tools, scripting languages are not all compatible with each other. However, knowing each one is a desirable talent to add to every programmer’s resume. In a discussion with some scripting language gurus and their views of the scripting world, they share with us how the dynamic language landscape has evolves since 2005 and what may be expected beyond this year.
The Role of Scripting Language in Today’s Computer Milieu
President of the Perl Foundation, Richard Dice, expressed that since 2005 there haven’t really been any extraordinary events that have marked scripting language history. So far, the scripting languages and their capability are used the same way as in the past. It is more the perception of such languages (rather than functionality) that have changed. They have changed in such a way that they are used in a more general sense now as compared to the past when they were only utilized for uncomplicated tasks or for creating systems prototypes. There is an upward trend now for CIOs to give credence to the scripting language boom and develop a certain awareness in programming communities about these dynamic languages. CIOs should take their cue from research firms like Forrester Research which surveyed and made a publication titled The Forrester Dynamic Language Wave.
ActiveState Software’s very own tech lead and director of languages, Jeff Hobbs, reflected that Web applications are required more dynamic languages, but still maintain their regular important tasks. Such tasks, he avers, are machine and test computerization with Tcl, and with Perl, data handling. Even the dynamic language called Python is becoming a more relevant tool in scientific communities.
Steve Holden, the author of Python Web Programming and who is also holding the chairmanship in Python Software Foundation says that dynamic languages are beginning to pop up the radars of all fields of application. For instance, Python is now often used in the fields of engineering and science, and more specifically in bioinformatics. Web frameworks such as Pylons, Django, and TurboGears have developed into full-fledged applications. In fact, he says that wherever there is a place without a systems programming language (or operating system), is a place where dynamic languages should be utilized. Like the language Python, they actually fit anywhere from a server to a desktop PC.
The leader of Microsoft’s IronRuby team, John Lam, states that code developed on scripting language is much easier to manipulate and write. Since the Web has always used scripting languages to function, more attention has been drawn to these scripting languages in this dawning era. For instance, Ruby (due to Ruby on Rails) is a Web 2.0 favored platform to assemble startups on.
A consultant, Rohan Pall, with almost a decade of Web applications programming (especially in PHP) reflected that that need for speed is the key to the increased demand in scripting language. For instance, the Intel Core 2 caused the embracing of faster microprocessors and now we look at crossing the 3 GHz processing speed and advancing towards 4Ghz. Dynamic languages have thrived with increased processing speed and perceived unresponsiveness of scripted code that used to be true for slow microprocessors have been lessened. It turns out that PHP was a sufficient and solid code to work with when Pall helped developed software to do text analysis in the auto-classification of documents. Ultimately, dynamic languages are flourishing in both Web applications and internal processing-intensive applications.
Evolving Attitudes in Reference to Dynamic Languages
Dice agrees that such attitudes are changing. Upon reading Forrester Researcher’s research, he was elated to discover that more clients were utilizing scripting languages and that there was greater demand to learn more about them to stay in par technology development. ActiveState and Eclipse now offer more improved products for working with scripting languages. New scripting languages are evolving as well, such as Groovy that incorporates Ruby and Java through the Java Virtual Machine. In terms of ISVs or independent Software vendors, support for this is increasing. For instance, the release of LSB 3.2 specifications by Linux Foundation included support for Perl and Python, which can be targeted by ISVs.
According to Hobbs the dynamic languages are more accepted through the increased acceptance of open-source software. This is also true for good frameworks which are developed with new scripting languages. Bigger organizations are beginning to embrace the trend by supporting them. This can be seen in Google’s development of Google App Engines, which used Python as its primary language.
Holden also states that the attitudes toward dynamic languages is more positive since the performance of the scripting languages have proven that more heavy steps in compilation of traditional code may sometimes hinder development processes, especially considering time frames. Dynamic languages are being given more appreciation by developers. Since 2005, the acceptance and use of scripting languages has rocketed in different fields of application. For instance Jython, or Iron Python which is now an open-source project of Microsoft.
Lam says that “compilation is orthogonal to static/dynamic.” Although IronRudy is a compiled language, it is also a dynamic one. Therefore it is more correct to state that positive changes in outlook have happened to dynamic language versus static language. It is possible that using scripting language, future systems will be development on a ‘statically typed library foundation’ which plays both roles for static and dynamic types. This can also be used to implement high level app logic by defining a DSL or domain-specific language.
For Pall, there no longer exists an argument of whether one would use compiled languages or scripting languages. Since dynamic language programming is now considered an inherent part of “real” programming, if you are not using one, you should definitely think twice about it before you continue your programming career.
According to Hobbs, back-end scripting language such as PHP, Ruby, or Python are being more widely used in common Web frameworks. Productivity in development using scripting languages can reach 10 times higher than when developed in Java or .Net. Time is a big factor when developing using dynamic languages and gives the developer an advantage in creating quality code.
Ultimately, the development of Ajax introduced a much-desired functionality to Webpages and is compatible across different operating systems (OS). Licensing costs have also gone down for some school boards as Ajax implementation when using Firefox to run Web applications on a GNU/Linux OS.
Advice to CIOs Regarding Scripting Languages
Dice suggests for CIOs to grab the opportunity of learning now, before it’s too late. Dynamic languages are the future to the productivity of programmers and when IT niches crop up in the tomorrow, dynamic languages will definitely be the primary language to expand into. Perl has the lowest rate of defects amongst all software applications, plus it has the largest library of tested and working code. It runs on virtually all platforms for Linux to Windows. For a company searching to improve its future in IT, Perl is the way to go.
Hobbs advises that dynamic languages should be learned by programmers now, for they will remain here in the future. The cutting-edge of software development supports iterative methods of which dynamic languages are highly suited. At ActiveState we publish whitepapers that debunk the perceived deficiencies of dynamic languages over compiled (or systems) languages.
Holden says that one should not prevent himself from trying out scripting language based on perceptions of dynamic language being second-class to compiled (or system) languages. Python is surprising performance-wise. Features exclusive to compiled languages do not prevent bugs from entering your code, and the best way to program is to program defensively and to make good use of unit testing. If you are not satisfied with the performance of Python, invoking C or C++ often results in better performing code. Python, or any good dynamic language, can offer great advantages by increasing productivity.
Lam’s advice is to go with scripting languages because it increases productivity. In the future, programs may contain both dynamic and static typed languages. It is advisable to use the language where you want the most leverage. Therefore, to define domain specific language, use scripting languages; and for static verification of programs and better performance, use a strong type system.
Pall says that scripting languages reduce the effort of programming and often the resulting code is shorter and more concise. Shorter code is easier to read and debug. Simpler code is almost always quality code which translates to better performance. By using PHP, you expect less surprises and more support from a cooperative and intelligent community of users and programmers.