Problems I have had in trying to advocate Rails based solutions:

Here is some problems I have had in trying to advocate why Rails should be used over PHP or hacking some other open source code:

1. I realized I didn't give a good argument for why Rails is much faster and I don't know exactly how to present that. I could have said something like "I built a website for my band in less than 2 weeks and it had advanced administrative capability". It seems hard to convince people who haven't been either convinced by others, articles and so on or who have not done anything with Rails.

2. I am not an expert on scalability and was able to say with certainty what can scale, how it would scale etc. I'll I know is that there are numerous scaleabilty solutuions and that I have only read about memcahced and have never done any of that. Most of my experience has been in C++ and I only started web development in the last year.

3. I feel apprehensive about advocating a technology to a team of developers that they are not at all familiar with, on a project where there are numerous uncertainties. In fact I had to advocate PHP symfony or cakePHP which are Rails based frameworks done in PHP because we had other open source PHP codebases and it seemed there was a push for a PHP codebase. Using PHP frameworks I am not familiar with introduces more uncertainties even though these frameworks should be very similar to Rails. I perhaps fear that if something goes wrong or something unexpected comes up, I could get blamed for it if I advocated using a framework and there was some issue surrounding that or associated with that. This particular underlying anxiety of mine perhaps translated into me not strongly pushing an MVC solution as much as I would otherwise.

Here is some problems I have had in trying to advocate why Rails should be used over PHP or hacking some other open source code:

1. I realized I didn't give a good argument for why Rails is much faster and I don't know exactly how to present that. I could have said something like "I built a website for my band in less than 2 weeks and it had advanced administrative capability". It seems hard to convince people who haven't been either convinced by others, articles and so on or who have not done anything with Rails.

This is a classic sales problem and really falls outside the technology to a large extent.

Of course, insofar as Rails is the new kid on the block, people with middling level technical knowledge will need external convincing as evidence.

I've found this article to be amazingly useful against this mindset:

2. I am not an expert on scalability and was able to say with certainty what can scale, how it would scale etc. I'll I know is that there are numerous scaleabilty solutuions and that I have only read about memcahced and have never done any of that. Most of my experience has been in C++ and I only started web development in the last year.

Fortunately, there are many Rails specific solutions to this problem that fall under technology 4 in the above article.

I'm entirely too biased to provide a list of those companies myself. :slight_smile:

3. I feel apprehensive about advocating a technology to a team of developers that they are not at all familiar with, on a project where there are numerous uncertainties. In fact I had to advocate PHP symfony or cakePHP which are Rails based frameworks done in PHP because we had other open source PHP codebases and it seemed there was a push for a PHP codebase. Using PHP frameworks I am not familiar with introduces more uncertainties even though these frameworks should be very similar to Rails. I perhaps fear that if something goes wrong or something unexpected comes up, I could get blamed for it if I advocated using a framework and there was some issue surrounding that or associated with that. This particular underlying anxiety of mine perhaps translated into me not strongly pushing an MVC solution as much as I would otherwise.

Cannot help you here. "Fortune Favors the Bold" may be true, but many bold folks have had their heads removed too. :slight_smile:

1. I don't think you will get too much more than compelling anecdotal evidence that Rails is a faster framework on which to create Web apps. Build a demo app one morning and see whether you agree.

2. Scaleability is a huge bugaboo and the implicit assertion is that because people *have* scaled solutions using other technologies, those technologies are inherently more scaleable. My observation is that because scaleability is on so many Rails people's radar, it is being taken more seriously than perhaps it is in some other framework communities. That said, Rails does, to-date- require that concurrency be handled in a multi-process rather than multi-thread manner. If you're getting enough traffic to warrant this, you're probably pocketing enough money to afford this kind of scaline.

3. This is a big question. If you have lots of dedicated PHP developers, some will want to continue with their level of comfort. Most top-notch developers are eager to learn new skills and will be happy to give Ruby and Rails a test drive. Part two of the question is more difficult. No matter what framework you recommend, you're making a choice. If you decide that PHP-works-just-fine-thank-you-very-much, then you are making one kind of decision. If you pick Cake or Symfony, be aware that they are frameworks too and you are building on top of someone else's work.

Without casting aspersions, I have watched Rails, Rails core, and the Rails community grow since before 1.0 and the level of commitment, best development practices, and testing is way better than I've seen from most. If you roll your own, casting aside frameworks because you are anxious about making a mistake, you're walking away from the combined expertise of everyone who has contributed to these frameworks, be they Rails, Cake, or whatever.

You say you are a C++er. Would you consider the C++ standard template library optional? In its own way, that is a framework. That what the whole deal about C++ and its ilk: Really smart people could create really useful class libraries, making lots of other programmers more productive. NeXT got this with NeXTStep (now OpenStep) and Microsoft got it with MFC. Both of these were written by corporations with (by definition) constrained development teams, which IMO was a weakness. However, both were adopted as pretty much the de-facto way to solve programming problems for their domains. I would suggest that a framework is something to be sought out, not avoided.

wbsurfver@yahoo.com wrote:

3. This is a big question. If you have lots of dedicated PHP developers, some will want to continue with their level of comfort. Most top-notch

Only those who refuse to give Ruby a chance :slight_smile: I worked with PHP on a daily basis for... dang... 10 years now. Just over a year ago I switched to Ruby/Rails as we decided to redo our site. I read everything I could find... pickaxe, agile, _why's guide, etc. The first oh, month was hard. After that it all came together and I can't stand PHP anymore.

Now, I was lucky. When we switched we switched 100%. Which means 8+ hours a day of Rails... which is a good way to really learn it :slight_smile:

-philip