I know I’ll get a thousand ‘Depends on what you’re trying to do’ answers, but seriously, there really is no solid information about this online yet. Here are my assumptions – I think they’re similar for alot of people right now:
- It is now October 2008. I want to start writing an application for January 2009. I am willing to use beta code and such but by January, I’d like a site that doesn’t have ‘strange’ problems. With that said, if a language is simply 10% slower than another, I don’t care about those things as long as the issue is linear. My main concern is developer productivity.
- I’ll be using Linux, Apache, MySQL for the application.
- I want the power to do things like run scp and ftp client functions with stable libraries (I only picked those two because they’re not web-related but at the same time represent pretty common network protocols that any larger app might use). Technologies like OpenID and Oauth will be used as well.
- Experienced web developers are readily available (i.e. I don’t have to find people from financial companies and such).
- Whatever the choice is is common and will be around for a while.
- Here’s a kicker. I’d like to be able to use advanced presentation layer tools/languages similar to HAML, SASS. I definitively want to use JQuery.
- I will be creating a Facebook app and at some point doing things like dealing with SMS messages, iPhone apps, etc…
At this point, the choices for language are PHP (Cake,Symfony,Zend), Python (Django), Ruby (Merb). I’m really between Django and Merb at this point mostly because everybody else seems to be going that way.
Please don’t put any technologies in here that aren’t made for mainstream. I know Merb is untested mostly, but their stated goal is a solid platform and it has alot of momentum behind it so I’m confident that it’s workable. Please don’t answer with how great Perl is or .Net.
For Future References – these choices were already made:
- Debian (Lenny) – For converting CPU cycles into something useful. Trac
- 0.11 – For Project Management Gliffy – For wireframes and such
- Google Docs/Apps – For documentation, hosted email, etc…
- Amazon ec2/S3 – For hosting, storage.
Cheers, Adam
it depends.
php – symfony is a great framework. downsides: php, wordy and directory heavy. propel gets annoying to use. upsides: php is everywhere and labor is cheap. well done framework, and good support. lots of plugins to make your life easier
python – django is also a great framework. downsides: python programmers can be harder to find, django even harder. changing your db schema can be somewhat difficult since there are no official migrations. doesn’t quite do mvc like you’d expect. upsides: does everything you need and has the great python std library and community behind it.
ruby – i’ve never used merb, so I’ll address rails. upsides: there is a plugin, gem, or recipe for almost anything you could want to do. easy to use. downsides: those plugins, gems, and recipes sometimes fail to work in mysterious ways. monkey patching is often evil. the community is.. vocal. opinionated software, and sometimes those opinions are wrong (lack of foreign keys). rails itself seems like a tower of cards waiting to explode and take hours of your life away.
with all of that said, I’m a freelance php/symfony and ruby/rails developer. I’ve worked on several projects in both languages and frameworks. My latest project is in Rails solely because of ActiveMerchant. I’ve been looking for a reason to develop a django app for a while. If there were an ActiveMerchant like library for django, I probably would have used it.