Below is a great answer to my PHP vs. Ruby question from Geo. Just had to share!
Are PHP and Ruby developers ever the same animal?
Most of my clients are developing massive scale eCommerce or communication networks and only want PHP.
Where does Ruby come in – for lighter weight, rapid web development?
Does a PHP developer have deeper – or just different – coding ability?
There are actually 3 points here.
The issue that happens with rails is that most people introduced to Ruby have been introduced via Rails.
Rails is a framework that utilizes Ruby as language of implementation.
Now Ruby vs PHP. Not that one is better than the other, but PHP has a much more extensive library of extensions and modules, and it’s object oriented model has been implemented over time. Ruby on the other hand has been designed from the ground up as an object oriented language, and definitely has a very modern well thought out syntax. Ruby’s community and as well as libraries are growing, but it is no where near the number of PHP’s. As a language Ruby is slower than PHP, but this is a bottleneck that can be worked around. The real issue is with Rails and its tightly coupled architecture.
Rails, like I said is a framework – a contract on how an applications architecture’s base will be implemented. 9 times out of 10 Rubiest think framework first ( Rails ) vs Language first; THEY WERE INTRODUCED TO RUBY VIA RAILS. 9.9 times out of 10 perl,php, and python people think language first. The success of Rails has brought about an implementation of it MVC structure to perl, php, and python which has enabled perl,php, and python use to ADOPT BEST PRACTICES via Frameworks like symfony,zend,cakephp, django, joomla framework ( not the cms ). Now because Rails is such a “turn keyish” type of framework, issues start to occur when sites start to grow, and what happens is that because so much was done for you at the framework level, meaning “Oh, look in Rails you don’t have to worry about X, it is handled automatically”, that when issues start to occur you are not familiar thoroughly with the architecture ( internals of RAILS) that is becomes extra work to handle high loads. Some, bottle necks in Rails are, ( RAILS FANBOYS, notice how I said SOME):
- Application startup and bootstrapping
- Active record and database implementation layer
- Caching without having the application bootstrap
These issues are also in CakePHP which is the closest implementation of Rails in PHP, they even copied the mistakes! Symfony, Zend, and Joomla Framework are much more loosely coupled, with Zend coming out as the loosest. To deal with very high traffic, TWITTER had to start scrapping away RAILS in certain parts and start developing with scala and even c++. Many Rails fanboys started crying when this happened.
In all, there are very competent Ruby programmers out there that aren’t tied to Rails, but nowhere near the amount of PHP.