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.
When I started Secantus (now PutPlace.com) at the start of this year we had several candidates for development,
- 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.
5 thoughts on “Which development language would you use?”
We’ve had a similar(ish) scenario to yourself Joe, but we opted for PHP… performance is everything to us and put simply it kicked the competions ass (although we didn’t consider python and a lot may be to do with the Linux platform)…
Unfortunately most developers are a bit narrow minded when it comes to switching the languages they grew up on, and many look at you as if you have two heads when you say what you are developing in…
Coming from a C++/J2EE background myself its a real pleasure to use PHP as its a lot more practical: often for a complex problem there is one step instead of an equivalent 5 steps in Java (or 10 in C++!!)… dev times are WAY faster… although on large projects it requires discipline to prevent the code becoming unwieldy… compilers are a pain but one would come in handy when you have 100 KLOC (and growing FAST)!
At the end of the day though its not what you write it in, but how you write it that counts!
Actually, Perl’s great! 😉
The OO support is only superficially gross — in reality, it’s very simple, but expressed in this horrible perl4-compatible boilerplate that should have been papered over with syntactic sugar a long time ago.
The engine, too, is rock-solid. I’ve been building SpamAssassin on it for 5 years now, making perl into the Official Language of Anti-Spam as a side-effect — and in some seriously high-powered enterprise deployments, it still works very well. In particular, the GC has never given me *any trouble whatsoever*, which compares very favourably to Java, which I hear still has occasional 5-minute GC “storms” under certain loads.
New features are still being added, too — Perl 5.9.3 adds a new regular expression subsystem to perform super-fast parallel regexp matches using tries, which I’m hoping to support into SA. At this stage, I think most people understand that there’s no need to wait for perl 6 — it’ll be a while off.
Having said that, I hear Python’s fantastic, I’ve had very good results collaborating with python people in the past, the VM and libs look nice, and I’m looking forward to working with it someday…
If we were doing a web-side only product, then it would be PHP, without a doubt. Flickr, WordPress and Drupal are hard to argue with.
Perl was my first love as a scripting language and I will always have a soft spot for it, but it is very easy to write Perl that looks like line noise and OO “by convention” has always been a pain in ass.
I also believe that the transition from Java to Python is easier for most programmers than the transition from Java to Perl, but thats just a bald opinion without much objective evidence to support it.
We all agreed in PutPlace.com that we are unlikely to return to Java.
‘We all agreed in PutPlace.com that we are unlikely to return to Java.’
well, pity me. I agree, but now I’m stuck working with java quite a bit in my current job 😦