PHP, python, perl, ruby - which to use?

1 points by dmg123 ↗ HN
Hi All,

I know this is probably an age-old debate, but I need help deciding. Has a winner emerged as the clear definitive choice for quick ramp up time and scalability? I'm seeing a lot of buzz around Ruby on Rails. I need something can eventually handle huge volumes of traffic and DB intensive tasks.

disclaimer: I'm not a backend developer....I'll be outsourcing.

14 comments

[ 7.1 ms ] story [ 50.9 ms ] thread
Will you be bringing on a technical cofounder later after building the prototype? If so, it probably wouldn't matter much. There's a chance it'll get scrapped and be redone. And at that point, your technical cofounder will probably have a preference.

Also if you are planning on bringing on someone else, there are more php developers available to choose from and possibly you might get better pricing due to the number of developers out there (I could be wrong on this).

Aside from that, I have a strong personal preference for Python.

Excellent question. I do plan to bring on a technical cofounder, but would that technical cofounder who most likely will become the CTO...really be the right person to code the guts of the site or would the be better used for architecting out entire systems and not concerned with what the language will be? I'm not quite sure, but it would be nice to have that person build the site I guess.
Then outsource for cheap to get the MVP done. Ignore the language choice and all that. Because in all reality, there is a very high chance it'll be redone anyway and your future technical cofounder will probably be doing that. That said, they'll be doing both. You're wrong if you think language choice isn't going to matter. Different coders will have a preference, sometimes a very strong preference.

Ignore language choice for now and just get the MVP done.

What is considered cheap these days? I did some preliminary calling around for RoR firms and they're charging at least $50k. Most are around $100k-$150k for a v1.
You should be able to get an MVP for less than 50k (there was guy on hn recently who would do it for 5). As others have stated, the language doesn't matter that much and don't worry about scaling (you'll be lucky to have that problem). Your impression of a tech cofounder is off. That person would typically roll up his sleeves and code. Startups require doers, not thinkers.
Be realist to begin with. You're not getting millions in traffic in your first month, so don't worry about performance for now.

That said, Ruby seems to have the quickest turn around times. But it depends 100% on what you are gonna be building, you can't choose the tool if you don't know whether you'll build a house or a boat.

I just don't want to end up having to rewrite something 6 months down the line.
You are probably going to rewrite it all anyway, regardless of wether you stick with the same language. Unless you know precisely what you want and how you want it build and are lucky enough to get someone to do that for you there's probably going to be a quite a few rewrites, there always are. Rewrites aren't a bad thing. The point is by then you know the basics and you know what doesn't work.
Don't use PHP.

As much as I've loved it for many years, in 2011 I can now safely say "Don't use Perl."

Python and ruby are probably both acceptable, though I personally don't like ruby very much. You'd be hard pressed to go wrong using Python, considering the widespread adoption and flexibility inherent in the language.

Oh, and one more time just to be sure you got it: Don't use PHP.

in 2011 I can now safely say "Don't use Perl."

Really? In the past 18 months I've (very conservatively) doubled my productivity at least twice thanks to improvements in the Perl ecosystem. The only reason I'd tell someone "Don't use Perl" is if I didn't want competition.

Perl is fantastic and I love it.

For a lot of workloads, though, Python is better or equivalent, and probably easier to find devs for.

Careful with that assumption. In my experience on a recent project, finding Perl developers was a good bit easier than finding Python developers. Generally, though, I think both are pretty prevalent.

The only problem I've had with Perl programmers is that a lot of the more casual Perl programmers (those who aren't exclusively Perl) tend to not keep up with the (significant and important) advances in Perl from the last 2-3 years.

I hate PHP. Personally, I just don't like the language. However, it's still incredibly popular in the web world.

As for the rest? Ruby on Rails was super hot a year or so ago, because it was a new concept in simplicity for certain types of web apps. However, Perl and Python both have comparable frameworks that are just as good now, and in the minds of a lot of people, better. Rails does have a bit of a reputation for limited scalability, compared to Perl and Python solutions.

Realistically, the scalability of your application will be limited by your database design and application architecture to a far greater extent than the language you use. In all but a few special cases, Perl, Python, Ruby, and eve PHP will be fast enough, assuming you don't create bottlenecks with the application design.

Personally, I would go with Perl. I like the language, I love the rapid advances and direction it's taken in the past couple of years, and I think Moose and Catalyst are awesome. However, it sounds like this is for something of a startup, so the language you write the app in should be whichever one the developer writing it is most comfortable with. You want them to be at maximum productivity, and that'll happen with their preferred language. Find the right person, then pick the language.