Monday, May 07, 2012

Server-Side Technologies: An Overview


While previous posts have focussed on client-side technologies of web development, this post will focus on the other half: server-side technologies. In this post, I'll outline a few of the most popular web application frameworks available today.


ASP.NET (Active Server Pages dot NET) is a web application framework designed by Microsoft. It allows for rapid application development using the .NET framework. ASP.NET can be written in any compatible .NET language. It is the successor to ASP Classic. In terms of performance, it compiles its code into DLL files for use by the server software. Anecdotally, it's safe to say it's not the fastest.


ColdFusion is a web development platform produced by Adobe. Its original purpose was to connected simple HTML pages to databases. It now bundles an IDE and is a full-fledged web application framework. In practice, its tag syntax resembles HTML, and its scripting syntax resembles JavaScript. It's essentially a Java EE application, and even supports being mixed with Java classes. However, Adobe are intent on keeping it platform independent, and has introduced features such as native .NET support.

Being an Adobe tool, the language integrates well with other Adobe technologies. As an example, ColdFusion supports server-side conversion to PDF from HTML, so a client can receive a PDF version easily.


Java Server Pages is a web application framework. It's similar to PHP, but it uses Java as its programming language. This is potentially very empowering, as millions of people already know how to program in Java. Just like ASP.NET and PHP, JSP almost requires the inclusion of server-side code inside HTML pages.


PHP is the most popular web application framework today. It's completely free and provides a very powerful programming platform for web developers to use. Like some other web application frameworks, PHP code is embedded inside HTML files using special tags. PHP code is compiled on-demand to an intermediary format, for quicker execution by the server. However, it can also be compiled ahead of time and placed on the server in its compiled form, for even quicker execution.

As of version 3 (and much improved in version 5), PHP also supports object-oriented programming, using classes, access modifiers, and more. PHP has support for hundreds of functions built-in and provides methods to access MySQL, FTP, and other helper-technologies extremely easily.


Perl is a general-purpose programming language that can be used for almost any function from graphics programming, to text editing, to web development. Perhaps due to the fact that Perl provides excellent text parsing and manipulation abilities, it is often used in CGI scripting. Because of its flexible nature, but inelegant code, Perl was once referred to as "the duct tape that holds the internet together". Perl is interpreted line-by-line, which means it's not the fastest possible language available for web use.

Ruby on Rails

Ruby is another general-purpose programming language, and it borrows many features from languages like Perl and C. Ruby on Rails is a full implementation of a web application framework for the Ruby language. It's platform independent, and relatively popular.


As you'll notice, in general, because the web favours (almost requires) rapid application development, all the most popular web application frameworks are easy-to-learn scripting languages, allowing for simple, powerful, coding.

Despite client-side scripting being very popular (thanks to the surprising power and flexibility of JavaScript), server-side scripting is even more popular.

Despite not being seen by the end user, server-side scripting forms the backbone of modern internet browsing. Having access to a server's resources is extremely empowering. Whereas JavaScript and other client-side scripts (excluding plug-ins) have to live inside the web browser, sever-side scripts have access to technologies like MySQL, execution of components in other programming languages (e.g. Perl makes it easy to execute program modules written in C), and other 'native' features on a computer.

No comments:

Post a Comment