Python and Ruby: the Newer Alternatives

Thanks to the nature of open source, almost anyone can write a programming language and get a significant number of people to use it: and plenty of people have. Two of the newest and fastest-growing players when it comes to open source web languages are Python and Ruby. Neither of them were web languages originally - they were normal programming languages - but more and more people are starting to use them to power their websites. So what are they, and how do they work? Let's take a look. Python The Python philosophy demands that code should be simple, explicit, and readable. Where Perl wants there to be "more than one way to do it", Python wants there to be only one way of doing each thing - and it wants that way to be obvious. This makes Python code easy to work with, whether it was written by you or by someone else. The downside to Python, though, is that it can be slow - not as slow as Java, but still much slower than most languages. It is also very picky about indentation (the number of spaces or tabs at the start of each line of code), as part of its effort to make code more readable. So does anyone use Python? It might surprise you to learn that Google uses a lot of Python code, and the popular BitTorrent file-sharing system is written in Python. Unfortunately, when it comes to actual web programming, Python isn't quite up to scratch in many ways: it still shows its roots as a programming language for programs instead of one for the web. It's for this reason that Python on the web is still quite rare - but they're working on it. Ruby Ruby is a relatively new programming language from Japan, and it has a lot of evangelists who simply love it. Why? Well, it lets you do complicated things quickly, easily and readably with very little code: in some ways. It's powerful but simple. Here's some sample code, taken from one of the best Ruby books, Why's Poignant Guide to Ruby (www.poignantguide.net): ['toast', 'cheese', 'wine'].each { |food| print( food.capitalize ) } What does that do? Well, first, it creates an array with the words 'toast', 'cheese', and 'wine'. It then launches into a function, which prints out the name of each food - in capital letters. All that with one line of code. It might not seem like much, but just wait until it comes time to connect to a database, retrieve records, format them the way you want and put them on the screen, all in one easy-to-read line of code. Now, Ruby is becoming more popular on the web thanks to a web framework that makes developing websites quicker than it's ever been: Ruby on Rails. Rails is only one year old, but it's already got lots of support, thanks to its big feature it handles the database end of things automatically. Rails is growing at a crazy speed, because programmers love it - it stops you from having to write database code over and over again, leaving you free to worry about how your web page works instead of writing SQL. Rails works using the principle of "convention over configuration": you do things in a standard way instead of spending time setting it up for the way you've decided to do things. Using Rails' scaffolding function, you can be up and running with a simple database page within minutes - then all you have left to do is build the interface. Watch Out for Web Host Support One of the biggest disadvantages of using a minority programming language is that you might find trouble finding a web host that has it installed on their server. You'll pretty much be forced to go with a smaller host: searching for 'ruby host' or 'python host' will turn up plenty of offers, but they won't be from anyone you've heard of, and they're likely to be more expensive than you'd expect. That's the price you pay for using the latest and greatest languages.