Short Answer:
Learn JavaScript first because all web devs need JavaScript, but not
all web devs need Ruby on Rails. Once you know JavaScript, feel free to
test them both out and see what you like better.
What you choose is not as important as how you learn. Here are two articles that talk more about HOW to learn: What new programmers need to learn
Longer Answer: Both can be good options.
Reasons to learn JavaScript/Node.js:
And also "An overview of JavaScript" Why You Should Learn Javascript , which talks about the language and who's a good fit for it.
- Node.js IS JavaScript
Learning Node.js feels more natural because Node.js IS JavaScript.
Learning JS helps you learn Node, and learning Node.js helps you learn
JavaScript because they are the same thing, just being used differently.
It's not hard to learn Node if you know JS.
- Every Web Dev Needs JavaScript
Unless you work in a huge company where you strictly do backend only
then you will practically NEED to know JavaScript. Also if you change
from Ruby to Python, or any other backend language, JavaScript carries
over because all the backend languages use JavaScript. This is not the
case for Ruby/Rails. So even if you learn Node and then decide to use
something else, you still have that JavaScript knowledge that will be
extremely handy. With learning Rails the carryover isn't as high.
- Real Time Apps Are Cool. You'll build chat apps or anything "real-time" super easily with Node.js
- Tons of Job Openings
There's an insane amount of JavaScript Jobs. Look at the difference in
any city between JavaScript openings and Ruby openings. If you're
looking for a job, focusing on JavaScript is highly recommended. It may
not be Node, but Node.js and Front end are pretty similar and the
carryover is high. Strictly Node VS Rails, Rails currently has more
jobs, but Node.js is catching up. Unless you live in a Tech hub like
Dallas, LA, SF, Seattle, NYC etc... You might struggle to find a job in
either Node.js OR Rails.
- Be on The Bleeding Edge/Startups
As someone mentioned, Node.js is where Rails was 5 years ago. Node.js
is smoking hot right now. Many startups are using it because it's sexy
and new, and a few bigger more adventurous companies are giving Node.js a
try. It may not be that Node.js is "better" it's just that people are
trying new things, and Node.js is the bleeding edge new thing right now.
The benefit of using the "new thing" is that you won't feel like your
playing "catch up". It's just a different kind of risk. Do you want to
risk working with older technology when everyone is moving towards
something new, or risk working with something new and unproven?
Reasons NOT to learn JavaScript/Node.js
- NONE. Every Web Dev Needs JavaScript.
Node.js is optional, but JavaScript is (practically) mandatory.
- Node.js is a little harder to learn.
There are not nearly as many resources to learn Node.js as there are to
learn Ruby and Ruby on Rails. BUT, the important part is learning HOW
to learn. If you understand this you can learn any technology The main
point here is to break down everything into the smallest chunks you can.
Don't learn "Express.js" or "Rails". Learn how "GET requests" work in
Express/Rails, play with that all by itself, then learn "Jade" or "ERB"
all by itself.. ONE THING AT A TIME.
- Node itself doesn't have a lot of job openings, even though the number is increasing.
- Node.js is still new-ish
Node.js is still new and not as "proven" as Rails is. If you're looking
for something concrete that will be guaranteed to get you and your
startup running, then Ruby on Rails may be a safer bet. (JS is proven,
but Node isn't... as much)
Reasons to Learn Ruby on Rails:
- More mature
Ruby on Rails is safer because there are already lots of developers
using it, there are more resources for learning rails, Ruby has been out
since the 1990's, there are more jobs in Rails (compared to strictly
Node), and people have been using Ruby on Rails to build their companies
large and small for a while now. You know what you are getting when you
work with Ruby on Rails, both the good and the bad.
- Does a lot for you
This is both good and bad. Good if you just want to build the product
and get on with life. This makes developing a new product or features a
lot faster than if you were to use something that is not Rails. It's bad
if you want to learn how things work on a deeper level.
- Easier to learn, Opinionated, & Structured
already said this, but there are more resources to learn Ruby on Rails
because it's more mature. Rails is also very structured. There is ONE
way to do things, and everyone does them that way. Rails is much more
organized than Node and therefore easier to get the hang of.
- Ruby is Beautiful, and easy on the eyes
JavaScript
can be a nightmare to look at, and even worse when you get into
"callback hell" let alone trying to comprehend the heavy use of
anonymous/callback functions, and closures. JavaScript is built on
those, and its difficult to read that stuff.
Ruby
on the other hand is really easy to read, and that's part of the draw
of Ruby/Rails. Although I wouldn't say this is a strong reason to use
Ruby, it's more of a perk.
Reasons NOT to learn Ruby on Rails:
- Too Magical
This is my only real problem with Ruby on Rails. If you're still
LEARNING how to program in general, Ruby on Rails just does way too much
for you. It makes it so much easier to build apps that you almost don't
even need to know what you're doing to build apps. You have to force
yourself to dig deeper to really learn what's going on under the hood. I
built several full-scale working prototypes doing all the CRUD
operations, and I barely knew how HTML forms worked.
- Slow.
Ruby/Rails is slower than other languages, but this won't even be a
problem until your company/product is successful, and this is made up
for with the speed of development.
Conclusion:
Ruby
on Rails is a great language/framework if you just want to build that
product quickly. In almost all other cases I'd suggest starting with
JavaScript, easing your way into Node.js because it's less to learn, and
if you're not happy with that, give Ruby and Rails a try.
No comments:
Post a Comment