Joel Spolsky yet again seems to divine whats in my head and articulate it ten times better than I could, when talking about what programming language you should use for your development project.
- Ruby on Rails
We had a few constraints and some previous knowledge that allowed us to make some rapid eliminations.
- We wanted tight integration with the local file system (Windows, OS-X and Linux, and mobile phones to follow)
- We wanted to produce a downloadable component that ran on the users local system
- We wanted a good set of infrastructure libraries so we weren’t constantly reinventing the wheel
- We wanted to make sure to choose a technology that wouldn’t have investment partners spitting the dummy
Tight integration ruled out Java due to its execreable I/O libraries. .NET fell at the OS-X hurdle. PHP is really only suitable for webside applications and even then its dire for writing daemons. Ruby on Rails was a contender, but its just a little to immature and still reeks of its UNIX/Linux heritage. Perl I like personally, but the OO support is pretty awful and the risk to a project while they have the engine out on blocks building the next version of the language was too great.
That left Python, Python! I hear you say? Well the language is nearly 15 years old, its got the sweetest syntax, great platform support (including Nokia phones), wonderful infrastructure libraries and a Rails like environment in Django.
We’ve been using it for 6 months now and are very happy with it. I expect to incur some recruitment costs in converting existing Java/.NET programmers to the language, but this is a small price to pay for the flexibility and portability that Python buys.