Is now the time to learn Rails?
With all the hype of Node, and other up and coming languages, do you think it is worth it to spend time on Rails? Is it going to be around for another 10 years? Is it going to look as good on a resume as Node might, in 10 years?
19 comments
[ 4.4 ms ] story [ 32.6 ms ] threadRuby is already not a super-popular language. Rails is often used by startups, but I wouldn't call its adoption widespread. I also (personally) disagree with lots of the philosophy behind Rails.
More generally, you're probably thinking too much about "should I learn _____". Good programmers can make use of whatever tools are available. Figure out what you want to do, and then ask "what is the best tool available for this?"
Getting into a position where you only work with and learn the same language/framework is a problem, but 10 years is enough time to learn whatever new technology you'll need by that time.
is this opinion or fact?
> I also (personally) disagree with lots of the philosophy behind Rails.
You present this as reasoning but, doesn't make it wrong.
My shorthand statement meant that I've never seen Ruby in the top 5 (rarely even in the top 10) languages.
http://langpop.com/
http://www.tiobe.com/index.php/content/paperinfo/tpci/index....
Those rankings aren't perfect obviously. My personal experience backs it up: Ruby/Rails is often the framework startups use to build MVPs, but I know a lot of companies that then switched languages (or sometimes switched to other Ruby frameworks).
By and large, most organizations that start out on rails have little reason to switch to something else, because rails can get you very very far. Can you scale it to twitter level without making changes? probably not. But most don't ever come close to twitter scale, and those that do couldn't have gotten there without rails in the first place.
I don't like working with Java personally, but it's much easier to staff a Java project than a Ruby one.
A good measure of how useful a framework is for business is this: how long does it take a programmer with no familiarity with the framework to pick it up? Meaning someone with programming experience, but nothing specific to this code?
That has nothing to do with how the code performs and everything to do with how well the code is organized and whether it does "surprising" things.
Also, rails is easy to pick up. It's continuously groomed and improved. Ruby itself is lends itself to expression. It's also a very well organized codebase.
It's been around for 10 years. People have been saying it won't last, that it'll never gain traction, but that's nonsense. It's a tool out there that you can use, and I as well as many other people enjoy it. Nothing wrong with that. It's a choice, an opinion. And you can get a job working with it if you want. you don't HAVE to use it, if you don't want to. if you want to use java, go right ahead. I could never, and will never.
But at the end of the day, i love the web, and I love ruby, and I'm grateful I get to do both at the same time, and if the OP wants to as well, they can. There is no reason to not learn rails if it's something your interested in and are considering it as a career possibility.
In essence you are trying to say Rails philosophy is right and the other one is wrong ? This is exactly what's wrong with Rails too much opinionated that it makes me want to puke for it is promoting pseudo-science. Give us fact about any of the philosophy Rails uses, I remember, making too many SQL queries is "just fine".
Doesn't mean there aren't Rails jobs out there, doesn't mean there aren't good reasons to use Rails, it just doesn't have the mindshare anymore.
If you're looking to learn a new language, try to look at what is popular now and what will be big in the next few years.
I personally think Javascript will continue to grow in popularity. There is nothing else on the horizon for front-end programming (ignoring languages with compilers to Javascript).
Other things to consider would be Functional Programming languages. Though Scala is popular, I believe (and don't have experience here, so take my thoughts with a grain of salt) that Haskell is probably more popular at the moment. I'm not sure what other languages will be coming up and gaining steam in that area.
I'd think about what you'd like to make or be making, then do some research to find what would be the best language for that.
Clojure is what I would recommend for getting started with functional programming though. Unlike most other functional languages, Clojure has a vibrant ecosystem for both the backend and the frontend (ClojureScript).
http://elixir-lang.org/ http://www.phoenixframework.org/
I have been specializing in node for the last few years, but still do a lot of C/C++ work too, so can't knock any of those.
I'd say node is a safe bet, as JavaScript is here to stay, although I am sure it will have changes and new incarnations in the future. Not that Rails won't be around, but JS allows you a bit more flexibility in the job market IMO.
As for new stuff to learn, there are a ton of things you could learn. Golang and Scala come to mind each solving a different problem. If you are already an experienced developer and just looking to learn the next thing, then pick something that will round out your skill set more, otherwise pick up node in my opinion.
Also, if you don't already have experience and you want to be marketable, I'd also suggest really learning 1-2 data technologies, maybe ElasticSearch, Solr (really lucene period), hadoop, or cassandra etc. To me those are all technologies that have specific uses and can solve real world problems for companies and make candidates more valuable.
First, I love ruby & rails. It jives with me. will it be around for another 10 years? there is no doubt in my mind. It has kept up with times and the contributors just keeping growing. I still love it 4 years in. There's a lot of snark at ruby & rails, but it is out of mostly jealousy & false ideologies. There's a lot of rhetoric about scaling and such that for the most part isn't true.
certainly not everyone uses rails, but i still see enough out there using it that i'm not concerned for it's future. If, given the choice of frameworks to use, people keep picking rails - it will live out quite a long life.
But you should really be the one to decide, in the end. As a language and framework, both are enjoyable and fairly straightforward. Few WTF moments (unlike my former PHP days)
is it worth learning? yes. Even a little can get you far. Node is good for things too - but not quite the same things.
but what matters more is building things. That will look awesome on your resume no matter what you build it with.