I know this is a ruby forum but thought I would ask ehre since Ruby doesnt seem as popular as PHP.
From what I read one my of my favorite web apps Basecamp is developed with Ruby On Rails.. so I'm trying to decide if I want to learn this or PHP.. can anyone give me an idea on why someone would pick one over the other? I notice how fast and responsive Basecamp is.. not sure if thats because of how it was developed or something else.. but was just curious what some of you thought here
There is a general programming language called Ruby, and it's my understanding that Basecamp came first, which is a program written in ruby, and then ROR was created, which is another program written in Ruby.
In any case, Ruby is a general programming language, and php is not, so that may be one reason to choose Ruby. However, you can learn ROR, and not have a clue how to do any Ruby programmning outside of ROR, so you really need to learn some general Ruby programming to be able to do general things with it.
Now all the general programming languages (like ruby, perl, python) have developed many frameworks for making web development more structured, so you can really choose any language you want. How about python? There is the Django web framework, Pylons, and others.
Ruby also has other slimmed down web frameworks, like Capistrano.
The honest truth is that you need to use a language that you enjoy, whether it be Ruby, PHP, Python, Perl, etc. Find one that you are comfortable with and begin learning. Then find a web framework that you like and learn it and use it.
First, you have it backwards, Basecamp developed Ruby on Rails. The code inside Basecamp was backed out and generalized and became rails.
As to which, ruby devs have a harder time finding work, but in general get paid more than php devs (law of supply and demand -- in most cities you can't swing a dead cat without hitting a half-dozen php devs).
But let me pose a question back at you, why choose? Why not do both? Once you'v spent some time working with the languages, you can make a better informed choice if you want to specialize further.