Comparison of Internet scripting languages

Programming languages have undergone a lot of revolutions especially with the introduction of the Internet. The Internet has grown because of the complexity that has been added to the tools that are used to build. The presence of scripting languages has been so useful in advancing the features of the Internet. It is now possible to have secure data being transmitted over the Internet, thanks to scripting languages which are increasing in complexity every day. The sections that follow give brief description of three Internet programming languages which are PHP, ColdFusion and ASP.

PHP
This is an Internet programming language which was developed first in 1994 by Rasmus Lerdorf. The PHP that is in use today is very much different with the initial version that was released then. The initial development included a series of activities which include a posting to Usenet newsgroup, comp.infosystems.www.authoring.cgi. This posting was made in June 1995 by Rasmus himself. The posting was all about the introduction of Personal Home Page Tools (PHP Tools). This was the name that was given to PHP initially. The tools were supposed to be of a tight cgi binaries that were coded in the C programming language. The functions of these binaries included the following
Being able to log into homepages by use of private log files
Being able to view real-time log information.
Providing a good interface for the log information.
Being able to access daily access counters so that could get the log files regularly.
Eradicating the access of users by basing on their domain.
Enabling people to protect their pages by use of passwords on users domains.
Being able to track the access of a user basing on that users e-mail addresses.
Being able to perform server-side includes without the need of having the server supporting it.
Disabling the ability of someone logging in to certain domains.
Enabling one to easily create and display forms.

From the list that is shown above, it is an indication of the concern that people had at first which included being able to protect pages by us of passwords, ease of creating forms which were to be used in pooling information from a data store like a database, and being able to access data in a form in subsequent pages. This list also illustrates to us clearly that PHP was used as framework for many useful tools.

The list only talks about the tools that come along with PHP but behind the scenes, the main goal of developing PHP was to develop a framework which could make it easy to extend PHP and addition of adding more tools. The coding of all these tools was in C language. The development was developed in such a way that a simple parser could pick the tags from HTML (Hypertext Markup Language), a web programming language, and called the various functions in C. The initial plan was never to create a scripting language. But to this day, PHP has been the moist important scripting language and it has changed the face of the Internet.

What happened afterwards is that Rasmus started working on a large project at the University of Toronto that was meant to pull large amount of data from various places and in the end be able to present an administration interface which was web-based in nature. PHP was the ideal language that could be able to perform this task but small other functionalities were added so that performance could be added. The tools had to be brought together and integrated into the web server.

Rasmus made some hacks to the NCSA web server, so that he could invoke them to use the core PHP functionality. The challenge with this was that someone had to replace their web server software with the hacked version of the NCSA software. The advantage that Rasmus had is that at this time Apache had started picking up and it made it pretty easier to add functionalities like PHP to the server.

In April 1996, some other features were added to PHP which included the following
PHP was developed to be a server-side scripting language that was embedded to HTML language. It had features for limiting access to logs which were in-built to PHP. It also had some features that could support mSQL queries and Postgress95 backend databases. This resulted in getting the fastest and the most effective tool for developing database-driven web sites.

It was also developed so that it could be able to work with any UNIX-based web server on UNIX platform. It was to be free of charge to all users even including commercial users it still is free to this day.
It enables access logging where one could be able to record and log every visit to your pages either a database management or in mSQL database. Having this log information makes analysis to be easier.
It also enabled access restrictions where passwords were used to protect access to protect pages. Restrictions were also based on the URLs being referred and many other parameters that were could be deemed necessary.

It could also embed mSQL queries to HTML source files. Writing conditional and while loops was also made possible with the improvements that were added to PHP. The looping support with the use of PHPFI that was added to it made writing of loops to PHP much easier.  The addition of the advanced programming features like array, variables, and associative arrays. There was also the addition of user-defined functions with variables that were static. Recursion was also added to it. There was also the introduction of the extended regular expressions which led to the emergence of powerful string manipulation support through full regexp support.

There was also the addition of HTTP Header control which enables one to send headers which are customized to the browser which can be used for advanced features like cookies. Cookies are the information that is stored by the browser that contains the history of the browsing. The cookies have been the source of computer attacks and phishing that is currently invading the cyberspace.

With this new version of PHP, there was also the ability to create GIF images with the support of tags which are easy to use.

It was in this new release of PHP that the term scripting was first used. The first release of the PHP, PHP 1, had a vague tag replacement code. This simplicity was eradicated with the release of PHP 2 which employed the use of a parser that could handle a more sophisticated embedded tag language. When this compared to todays standards, it was not sophisticated as such but compared to PHP 1 it was.

The main reason for developing PHP 2 was because many people were more interested in embedding logic direct to their web pages for creating conditional HTML, custom tags, and other features. Most of the people who used PHP 1 actually continued using C-based frameworks for creating add-ons. Most of the users of the first PHP were asking for the ability to be able to add the footer that could track hits or be allowed to send different HTML codes conditionally. This desire led the developers of PHP to come up with the PHP if tag. The introduction of the if tag led to the desire to have else tag likewise. From here, it was now the point of writing entire scripting language.

In June 1997 the growth of PHP had been so enormous that it attracted a lot of users. Despite this popularity, there were still some problems with the parsing engine. It was still manned by one person with a few contributions from here and there. It was not until Zeev Suraski and Andi Gutmans in Tel Aviv volunteered to rewrite the whole parsing engine that PHP version 3 was released. The parsing engine was rewritten. There were also other contributors who volunteered to work on PHP it was now an open-source project and no longer a one-man effort.

The new version of PHP included the support for all major operating systems like Windows 95NT, most versions of UNIX, and Macintosh. Most web servers were also supported which included Apache, Netscape servers, website Pro, and Microsoft Internet Information server. It could also support a wide range of databases like MySQL, mSQL, and Postgress and ODBC data sources.

These new features also include the ability to have persistent database connections and support for SNMP and IMAp protocols.

From this point, PHP picked up quickly and people started contributing aggressively for the success of it. There was the development of features that enhanced security. The developers and enthusiasts developed an abstraction layer between language and the web server which added a security mechanism to the usage of the language.

The diagram shown below shows the growth of this language over the recent years.

The figure above shows the growth of IP addresses. The usage of unique IP addresses that uses PHP with Apache is shown in the diagram above.

The growth of PHP domains is also captured in the diagram below where it is clear that PHP is growing in leaps and bounds in the recent years.

The figure above shows the number of actual domains that report they are using the PHP module. 36,458,394 domains were found to be in use in November, 2001 and out of this 7,095,691 had PHP enabled. This indicates fewer than 20  PHP usage.

ColdFusion
This is a programming language that is used for commercial rapid development of applications. It is the initial invention of Jeremy and JJ Allaire in the year 1995.  The motivation behind the development of this software is to make it easier to connect simple HTML pages to a database. It was not until version 2.0 that ColdFusion became a full platform that had an integrated development environment (IDE) and became a full scripting language. This language is currently sold buy the Adobe Company and has the advanced features for enterprise integration and development of rich internet applications. ColdFusion competes with tow scripting languages which are PHP and ASP (Stopford, 2005).

ColdFusion is popular in the development of websites that are database-driven. It can also be used to generate remote services such as SOAP web servicers or flash remoting. This scripting language is well-suited as the server-side technology for the client-side Flex. It has also been developed so that it can handle SMS services and instant messaging through its gateway interface this feature is only available in ColdFusion MX 7 Enterprise Edition (Hall,  Brown, 2007).

Features of ColdFusion
One of the most abhorred features of ColdFusion is its scripting language that is associated with it, ColdFusion Markup Language (CFML). This scripting language compares so well with the scripting features of ASP, PHP, and JSP but the syntax resembles that of HTML. ColdFusion is often used with CFML but for it to work effectively there are additional CFML application servers apart from ColdFusion. It supports other programming languages apart from CFML such as server-side ActionScript and scripts which are embedded that can be written in language that resembles JavaScript known as CFScript.

Other features of ColdFusion include simplified access to databases, management of the server and client cache. It also generates codes for the client side especially for use with forms and validation. It also helps in conversion from HTML to PDF and FlashPaper (History of PHP, 2008).

ColdFusion is also used for retrieval of data from common enterprise systems which include Active Directory, LDAP, SMTP, POP, Microsoft Exchange Server and other data formats that are common like RSS and atom. Other features include file indexing and searching mechanisms, administration of the graphical user interface (GUI), server, application, clients, session, and request scopes. Parsing of XML, and XPath, and clustering of the server. It has enhanced functionality whereby it can be run in a .NET environment or image manipulation.

ColdFusions engine was written in the C language and featured a scripting language, modules acting as plug-ins that were written in Java, and has syntax that is very much similar to HTML. Compared to HTML, ColdFusion tags starts with CF and is followed by a name that indicates the tag that is interpreted to, in HTML example is cfoutput used to begin the output of variables or other content.

Apart from these features CFScript have a studio, CFStudio, which provides a design platform that gives a WYSIWYG.

ColdFusion development milestones
In January 1998, version 3.1 of ColdFusion was developed. The important thing about this release is that it brought forth a port to the Sun Solaris operating system. The studio module gained a live page preview and HTML syntax checker (Newton, 2006).

ColdFusion version 4.0 was released in November 1998 and had some features that enabled it to work with .NET frameworks. Version 4.5 was released in November 1999 which had the ability to have invoked Java objects, talk directly to a J2EE server and execute system commands. This was a very important milestone especially given the fact that Java was gaining her popularity as an Internet programming language for mostly programmers.

ColdFusion 5 was the first release from Macromedia after acquisition. This was the first version to be coded for legacy that was meant for a specific platform. ColdFusion version 6 was developed by purely using Java and it was codenamed Neo. This enhanced the portability of ColdFusion and made the security to be tighter this was necessary because it was developed inside the Java Runtime Environment (Wikipedia. ASP.NET tools, 2009). This move was initiated by Damon Cooper who was a senior engineer at Adobe. On January 2001, Allaire announced that there was discussion on the merger with Macromedia Company. From version 7, the naming convention was changed henceforth so that it was now Macromedia ColdFusion MX 7. CFMX 7 added flash-based, and XForm capabilities which enabled it to be used in advanced  web applications so that it could build reports and output Adobe PDF, as well as FlashPaper, RTF and Excel.

ASP
ASP id a framework for web applications that was developed and marketed by Microsoft so that programmers could now be able to build pages which are data-driven, and build web services with much ease. This technology was released in January 2002 with version 1.0 of the .NET framework ASP.NET is the successor of the Microsoft Active Server Pages (ASP) technology. This is built on the Common Language Runtime (CLR), which allow programmers to be in a position to develop ASP.NET code using any language which supports .NET. The ASP.NET SOAP component is an extension which allows ASP.NET to process SOAP messages (.NET comparison chart, 2009).

Milestones of ASP.NET
The release of Microsoft Internet Information Services 4.0 in 1997 led Microsoft to begin looking for alternatives of improving their scripting language, ASP. There had been various complaints about Asp which include the fact that there was a challenge in separation of presentation and content and the ability to write clean code. Anders Mark was tasked with looking into how the new model would look like. The initial design was developed over the course of two months and was to be developed over the Christmas holidays of 1997.

The initial model was called XSP because every technology that was being developed seemed to be having the name starting with X for example XML, XSLT everything good seemed to start with X. this is an explanation by Guthrie who is among the team who was tasked with the development of this technology. This platform was developed using Java language. It was later decided that the it be developed on new platform on top of Common Language Runtime (CLR) because it provided an environment that supports object-oriented programming, garbage collections and other features that were good features for Microsofts Component Object Model platform. They were not supported initially.

Since this new technology could now support CLR, I was now rewritten in C but only hidden from the public. It was renamed to ASP as by this point, the platform was seen as being the successor of ASP and the main reason behind this was to provide easier migration for developers using ASP (Samaru, 2009).

Comparison of the three technologies
FeatureLanguagePHPASPColdFusionSpeed Excellent it has the ability to pump in more pages than any scripting language. It can even go further with the Zend optimizerGoodExcellentFunction listHas several functions to make many Not well developedNot well developedDatabase connectivityWorks well with MySQL databaseIt integrates well with Microsoft databases like MsSQLHas an easy interface for database connectivityPlatform compatibilityVery poor. It was meant for UNIXLinux platforms. It loses some features when used in other platforms.Very poor. Only Only works with windows servers and LinuxError handling capabilityTrycatch errors are not as good as other languagesNot well developedHas a superb error handling capability

Conclusion
With the advancement in Internet applications, it is expected that the software applications that are used in the development of the internet is becoming more complicated.  The languages that are very common in development of the Internet are PHP, ASP, ad ColdFusion. These three languages have been competitor with one other in the usability and the features that they have. It is interesting to know the positioning that these languages will take with the increase in the Internet usage with the advancement of rich internet applications.

0 comments:

Post a Comment