The New Age of Languages

web 2.0In 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.

In a recent survey (the Global Development Survey) by Evans Data, of a sample of 1,200 programmers and developers, close to 70 percent use the most popular scripting language Javascript. And of the remaining 30 percent, at least 15 percent expressed their plans to adopt Javascript. From the study, roughly 35 percent employ PHP and 25 percent use Perl.

Dynamic languages have evolved to offer features today that we never would have imagined when the internet was first popularized. Today, on the browser, client side scripting languages provide a richer user experience than what could be possible by just using plain HTML alone. The most dominant client side scripting language is JavaScript and it evolved further into AJAX when XML was added into the mix. Because of client side scripts, we have dynamic menus on our web pages. Google maps will not be possible if AJAX was not invented. Browser scripts make it possible to perform initial data validation when we are asked to submit data or when we log in to a page.

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

Scripting language has definitely evolved and is taking its place on the stage of this computer age. Norris Boyd, the creator of Mozilla Rhino (a Javascript implementation for Java) and Google’s engineering manager states with the escalation of more sophisticated Web applications have increased the demand for the same. Because many of these applications use Javascript for computations in browsers, it has also increased the demand for more developers to become skilled at and use Javascript more frequently. It is the same with the dynamic language called Ruby wherein more focus has been put in this language due to the development and premiere of Ruby on Rails. In fact, it is essential that more programmers reach a certain comfort level in developing through these languages.

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

As the years have passed, aside from scripting languages evolving, so have attitudes towards scripting languages. According to Boyd, Javascript is no longer used exclusively to develop browser-based applications, but more. Because he has worked so extensively with Mozilla Rhino he noticed that more Rhino users were adding script to their applications through Javascript. It was a positive thing to develop Javascript to run within another application.

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.

The Mounting Popularity of Ajax on Adopting Different Dynamic Languages Outside Javascript

Since Ajax is only applicable within the browser, Ajax has no explicit impacts on other languages besides the richer user experience it offers with scripting languages, Boyd avers. Standing for “Asynchronous JavaScript and XML”, Ajax combines different technologies that can be found in current Web browsers. Dice says that these technologies are javascript, XHTML, CSS, DHTML and even some DOMs or document object models. Ajax basically allows the user to have a richer and more appealing experience in the functionality of a Web application. Ruby benefitted from Ajax accidentally. Today, it is not uncommon to see a major Ajax library integrated in a major dynamic language. In most cases there is an interaction between the Web application’s side when developing Web applications with Ajax. While the back-end can be programmed by Ruby, Perl, or Python; the front-end (on the Web browser) is developed using Ajax, HTML, or Javascript – which is in most cases scripted, and which interact with each other.

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.

Holden states that the capability of Ajax has existed for a long time basically since it does not require anything beyond the use of Javascript for webpages. With the surfacing of Ajax came the fact that it can easily be used by developers within the ASP.Net environment, despite the fact that some Python-developed frameworks (like TurboGears) allows for support specifically for some recognized Ajax toolkits.

Lam explains that with the increasing popularity of browsers in the corresponding popularity in employing Ajax. Many browsers already use Javascript and it is virtually the most widely-deployed scripting language used today. Lam is currently developing an alternative language to Javascript which mainly employs Ruby code.

Pall says that user-interfaces have greatly improved with the use of Ajax which is a very specific tool for Javascript. Even before this Macromedia had developed Flash, which was a proprietary tool which allowed for development similar to Ajax; but now more lightweight solutions are available without the proprietary hindrance.

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

The advice that Boyd would give is to look at the problem that needs to be solved first before deciding on a dynamic language. Javascript is an obvious choice when making graphical user interfaces (GUIs) that will run on browsers.

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.