Server-side programming involves writing code that connects Web pages with databases, XML pages, email servers, file systems and other systems and software accessible from the Web server. The most common server-side languages and programming frameworks are Perl, ColdFusion, Active Server Pages, Java (in many flavors), ASP.NET and PHP.
Perl was the first server-side language to become popular in Web development. Originally derived from C, its relative simplicity and strengths in file and text manipulation and the fact that it is open source made it a good choice for writing CGI scripts. Although Perl is still widely used, it is not as popular a choice for new Web projects as some of the other server-side languages discussed below.
ColdFusion, created by Allaire (now owned by Adobe), is arguably the simplest of all server-side languages. It is tag-based, which makes it look a lot like HTML and easier for client-side programmers to understand than some of the other choices. Because of the relative ease with which it is written, ColdFusion is sometimes assumed not to be so powerful. In fact, ColdFusion code is compiled to Java bytecode, which means the pages run quickly. Web developers can accomplish virtually any required task using the ColdFusion Markup Language (CFML). However, as ColdFusion can easily be integrated with Java applications, developers have the choice of using Java to extend ColdFusion applications.
Microsoft Active Server Pages (ASP) is a framework that allows developers to write server-side pages in many scripting languages; however, VBScript and JScript are the only commonly used choices. ASP became popular quickly and sites with pages ending in .asp are now all over the Web. It is not as simple as ColdFusion, but it has the huge advantage of being built in to Microsoft Internet Information Server (IIS). Although still commonly used, ASP has been replaced by Microsoft with ASP.NET, an architecture that is much more similar to Java's than to traditional ASP's.
Java EE is used in large web projects. With its power and robustness comes a steep learning curve. Java EE is defined by its specification and Application Programming Interface (API). A Java Application Server (Java AS) manages servlets, JavaServer Pages (JSP), Web Services, and Enterprise JavaBeans (EJB). Java EE also includes a number of other APIs commonly linked to enterprise application development. JDBC, JPA, e-mail, JMS, and XML are some examples. But that's only part of the picture. There are a number of frameworks built on some of these technologies that streamlines the development process further. Hibernate offers most of the object/relational mapping (ORM) without an EJB Container. For this reason it's called a lightweight ORM technology. JavaServer Faces, Struts, and Spring-MVC build on JSP to do away with scriptlets completely, relying on HTML style tags and associated JavaBeans.
Microsoft's ASP.NET is not a language, but a framework for writing Web sites and software. Like ColdFusion and JSP (and unlike traditional ASP) ASP.NET pages are precompiled, so they run faster than traditional ASP pages do. ASP.NET pages can be written in many languages, but the most popular are C# (pronounced C-sharp) and Visual Basic .NET (VB.NET).
Like Perl, PHP is open source. It has rapidly become a popular alternative to the proprietary languages such as ColdFusion and ASP.NET. PHP is lightweight, relatively simple to learn and runs on almost all commonly used Web servers. A nice feature is that it can be integrated with both Java and COM.
Wikipedia describes Ruby on Rails as "a web application framework that aims to increase the speed and ease with which database-driven web sites can be created and offers skeleton code frameworks (scaffolding) from the outset. Often shortened to Rails, or RoR, Ruby On Rails is an open source project written in the Ruby programming language and applications using the Rails framework are developed using the Model-View-Controller design pattern."