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:
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.
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.
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.