Ruby on Rails Code in Netbeans IDEThis is the second post in the “OSS Web Dev Methodologies” series. The first post covered pre-production with Dia. This post takes on a more generalized approach to the topic of server side programming. Web serving is, perhaps, the place were open source software shines the brightest. Yet, to my surprise, I still meet developers who have only worked in commercial environments. This post is a general introduction to some of the most popular server side programming languages available today.

There are slews of powerful open source programming languages to choose from. Once upon a time, the powerful yet cryptic Perl was the language of choice. While many web applications are still developed in Perl today, and who knows why, the popularity of Perl as a web application development language has steeply declined. These days, three of the most popular server side programming languages are PHP, Ruby, and Python.

PHP LogoPHP: Without a doubt, PHP is one of the most widely used and supported server side scripting languages in the world. In fact, it is quick and easy to install a complete web server environment with PHP support using a couple of apt-get commands on Debian and Ubuntu work stations. PHP is an easy language to learn and is excellent for quickly providing solutions to simple tasks. While very complex applications including forums and blogging software have been developed in PHP, many will advocate inherent weakness in PHP as a serious programming language. Most of these complaints deal more with style rather than capability. For those larger projects, there are a wide variety of PHP frameworks available.

Ruby LogoRuby: With the popularity of the Rails framework, Ruby is seeing amazingly fast adoption. The language itself is often described as “fun” to work in. Ruby is a well designed object oriented language. Rails takes full advantage of Ruby and automates many menial development tasks. Ruby on Rails is often called a “rapid development” framework because it allows the creation and deployment of fully functional applications with relative ease and speed. The cost for all of this can be efficiency. Even with a keen eye on writing optimized code, Ruby on Rails applications generally require a bit more server horse power than equivalent PHP applications. Still, the gains seem to far outweigh the drawbacks for a quickly growing base of enterprise level developers.

Python LogoPython: Typically, Python has not seen the same level of attention as Ruby and PHP. Python itself has a loyal following and for good reason. It is a well designed and powerful language. Where Ruby has one overwhelmingly popular framework (Rails) and php has a seemingly endless stream of framework options, Python falls somewhere in the middle with several powerful options such as TurboGears and DJango.

So what language should you choose to learn? That depends on your goals. If you are wanting to add basic dynamic functionality to your websites, PHP will likely be the quickest solution. It is widely supported by web hosts and is generally easy to learn. You will also find endless slews of pre-written PHP scripts available online. If you goal is the development of a more complex web application, then Python or Ruby will probably prove to be better long term solutions. While Python is the language of choice for many top tier websites, such as Google, it does seem that the Ruby on Rails scene is carrying considerably more growth momentum.

Within the scope of web application development, subsequent posts will cover open source databases to power your web applications, open source web servers to deliver your applications, and open source programming IDEs. This series will also cover other tools for powering an open source development studios ranging from art and design to book keeping and documentation. Thanks for reading.

Leave a Reply