Find the right web application language

Dusty Candland | Tue Jan 25 2011 | applications and frameworks, web applications

There are many programming languages, and each has pluses and minuses. The frameworks, platforms and communities of an online enterprise are also important to consider when determining what language you want to use to support them. Make sure that whatever you choose is testable, supported in multiple environments, easily managed and easily used to build web applications.

So, here's a quick overview of languages used to create the server side of web applications:

Dynamic Languages

PHP might be the most used server-side programming language. A lot of platforms are built on PHP, including Drupal, WordPress, Joomala and Magento. With its recent version, PHP becoming much more object-oriented, which improves the ease with with the applications built on it can be maintained. Another plus for using PHP is that there are a lot of programmers who are proficient at using it. The language is fairly simple, dynamic and easy to understand. Among the negatives of using PHP that we have encountered is the high cost of maintenance due to a lack of automated tests and to recent inclusion of object-oriented constructs of the language. However, if you want to get feedback quickly from target markets, build a prototype or construct an application on an existing platforms, PHP might be a good choice.

Python is another popular language and is one of the supported languages on the Google App Engine platform. Django is a popular Python programming framework for building web applications. It’s a dynamic, object-oriented language and has a pretty strong community of users supporting it. Building on Django wouldn’t be a bad choice for getting an application built quickly. However, because of the highly dynamic nature of Python, the learning curve is higher than with PHP.

Along the same lines as Python, there is Ruby. Ruby is mostly known for its framework, Ruby on Rails. There are other Ruby frameworks gaining popularity, such as Sinatra. Ruby is similar to Python because it is highly dynamic and object-oriented. Ruby is very good for creating Domain Specific Languages, which means that Ruby is a very extensible language that can be "extended" to do all kinds of things. It is also very powerful. Red27 uses Ruby on Rails to build both Web applications and functional mockups. Ruby on Rails has much prebuilt functionality for web applications -- as well as built-in testing, data management and environment management. All of those things make it much easier to get an idea off the ground quickly. One chief downside to Ruby is that its highly dynamic, object-oriented nature adds to the learning curve required to use it proficiently.

Compiled Languages

The previous languages are all dynamic, which means that they are not compiled before running. The following are all compiled languages. Compiled languages have a bit of safety in the compilation, and also they generally perform much better.

Java, not to be confused with JavaScript, is a compiled object-oriented, c++ derivative language. Though its use has stagnated lately, Java has some widely used and supported frameworks. One of the newer and more innovative is the Play! Framework. It provides a lot of functionality for building Web applications, including testing, environments and data management. If you’re going to use Java, we highly recommend using the Play Framework. There are many Java developers, and the code is fairly easy to maintain. Java also generally scales better than dynamic languages.

C# and VB.Net are part of the Microsoft .Net Framework, which is a general programming framework that also has support for web application in the ASP.NET part of the framework. We recommend using the Microsoft MVC framework or the Castle Project. While these don’t yet have the level of support that Rails and Play Framework have, they are getting closer. .Net is a compiled language. However, it is becoming increasingly dynamic and makes for a compelling programming environment. There are many .Net developers and a growing community around open-source and innovative Web development. On the learning curve, we think these languages fall somewhere between PHP and Ruby.

All of these languages are free or open-source and will run on either the Linux or Windows operating systems. Some things in .Net might not work on Linux, but most of the Web application features should work fine thanks to the Mono project.

What should you use?

As with just about everything, it depends. If you’re learning from scratch, PHP will get you results the fastest. If you have programming experience in one of the languages profiled here, just use that or the one that is most similar to what you know. If you’re going to hire a developer, we recommend that he or she be familiar with Rails, Microsoft MVC, Play Framework, Django or a similar Web application-building framework. This will help you see results quickly and, assuming that your developer writes tests, have applications that are reliable and easy to maintain. Another advantage to these frameworks is the growing number of cloud-based hosting options that support them.

There are, of course, other languages and frameworks that are equally qualified or better to serve your needs. Contact Red27 to determine which programming language is best for your project.