I'm planning to get into web development. I want invest my time in learning a web application framework that will help me for long time.

I want to learn a framework that is commonly used, really easy to get a website up and running quickly, and has lot of resources and good documentation to learn.

All the research I have done so far narrows down to PHP and Ruby on Rails as choices that fit these criteria. Which one should I chose, what would you recommend ?

  • 1
    You make no mention of your background or experience. More details would be helpful. – rrirower Jan 27 '15 at 0:11
  • 1
    This question isn't really on-topic for Software Recommendations as outlined in the help center. If you have specific requirements you have we can recommend a framework, but we don't do comparisons nor opinions. Thanks! – Seth Jan 27 '15 at 2:29

One thing to note is that Ruby on Rails is a framework (Ruby is the language and Rails is the framework), while PHP in itself is an entire language and is not actually a framework. Several frameworks do exist for PHP, such as:

  • Laraval
  • CakePHP
  • CodeIgniter
  • Yii

In turns of decent MVC frameworks for Ruby, you're basically locked to only two (with smaller frameworks taking up only a minor portion of the Ruby ecosystem)

  • Rails
  • Lotus

This isn't necessarily a bad thing, as the majority of Web-based Ruby projects will be using Rails, which makes it easier to quickly understand others' code once you understand both the core language and framework. For PHP, since there is no "standard" for web frameworks, you might have to read the documentation of several frameworks to get the gist of several different projects. On the bright side, this allows for a broader selection of framework choices. In terms of package management, I find gem to be a bit more mature than composer, but I personally think composer's a bit easier to use.

However, it usually comes down to this in "language X" choices:

Try both languages and see which one you like using best. Don't not learn one language because you find that another provides more features for what you "currently" need, but instead start by learning them side-by-side, and slowly migrate to the language you believe suits you best. Then come back and learn the other language for sport.

It should also be noted that once you have a decent MVC framework for PHP (Like Laravel), functionality compared to Rails is nearly identical, with Ruby winning on speed (usually), and PHP winning on maturity and portability.

Not the answer you're looking for? Browse other questions tagged or ask your own question.