On Sep 23, 2007, at 2:21 PM, jtaber wrote:
By now, unless you live in a cave, you've all probably read the new
Digg/Slashdot article ref CDBaby and their return to PHP from
Rails. But the author misses several things besides the effort
being a disaster in project planning and mgmt.
It's true you can easily set up model-type classes in PHP. In fact
I prefer these over Rail's model classes. But for most other
stuff, it's just a case of more effort, complexity, time, and thus,
money. The owner makes some good points about ease of PHP
deployment but really misses some of the key problems we had with
PHP :
1) Lack of Built In Testing - I guess there are some external tools
like UnitTest but nothing as easy as in Rails. And sites without
testing, well....
There are hordes of PHP unit test packages. PHPUnit, SimpleTest. I
don't believe Rails' testing is any better or worse than PHP-flavored
offerings.
2) Lack of Good Redirecting - Rails uses a great front-end
controller and it's simple to call redirects and linktos from
anywhere. PHP has some real restrictions with redirects (ie before
html output, etc).
You can buffer output if you need to. It's not a PHP-limitation: that
location *header* has to come before anything else. There's nothing
PHP or Ruby specific there. Code it up different if you want.
3) Lack of Good Data Protection/Integrity - simple things like
built-in protection against injection attacks
Who cares what language you code in to prevent SQL-based attacks? I
don't see how Ruby or PHP would really differ at all. You could
probably create a safe website in BASIC if you wanted to. I don't
think you can say that Ruby is "safer" than PHP or Java or whatever.
4) ORM - actually this is more questionable but ORM comes in really
handy in things like views where you don't need to do lookups/
retrieval to show something like invoice.customer.name
You can't have ORM with PHP? I've been using packages that do that
for a long time. Most frameworks come with something, and there are
stand-alone packages like Doctrine and Propel.
The lack of these things make us much more productive in Rails or
Django than in PHP.
Rails and Django are not languages. Please compare apples to apples.
It's like saying Scrum and XP are more productive than English.
I think the choice of PHP over Ruby is a deployment based issue. I
don't see how Ruby (or Python, or whatever) has a significant
advantage over PHP just by virtue of the language itself. I realize
Ruby has some really nice features, but the bells and whistles there
don't make much get-it-done difference in the long run. You can write
applications just as easy in either. I can get things done if
everything isn't an object, without lambda functions or whatever. Sorry.
That said, I think its great to keep up on things. I've developed
applications in Rails, and there were lots of things I liked (and
brought with me back to PHP).
For me, it's a matter of familiarity and preference, and a
realization that Rails (and Ruby) is still very new and is dealing
with some growing pains. Besides, if you pick a good PHP framework,
you get all the MVC goodness that comes from Rails methodology, and
the stability and ubiquity that comes with PHP. For me, I've been
enjoying the productivity the Rails methodology boasts of for
years... in PHP.
-- John
_______________________________________________
UPHPU mailing list
[email protected]
http://uphpu.org/mailman/listinfo/uphpu
IRC: #uphpu on irc.freenode.net