

Ask HN: RoR or Node.js or Go - xoail

I come from .net background and been wanting to learn one of these hot techs for building my side project. The project itself doesn't have a need for anything more specific and could be built using either of them (I played around with all 3). 
I am interested in learning a technology that is more promising and could eventually help me make a smooth shift from .net and survive even if my side project is a complete failure. Any suggestions?
======
jfaucett
Well, if you want a promising technology everyone's hyped about the future of
js, js is becoming everything and so there you'd have node to play a role.
Personally though, I just haven't found node to be that useful compared to Go,
also for me the nested callbacks within callbacks are annoying. So I'd say to
pick Go, although its a little early in the game to see how well it will be
adopted and how many useful libs will be created for it, nonetheless the
language itself is beautiful mix that gives you low level (c-like) control and
speed, with nice abstractions that make your job less tedious than c and more
like python/ruby programming.

Last a note about Ruby, I think the VM is amazing the API is great and
programming in ruby you can throw things together blazingly fast and clean, so
its also a good choice. Overall though I'd say Go, I think its the best
language to come around in a long time and people will adopt it

~~~
xoail
Thanks. Go is definitely interesting but my biggest concern with it is, it is
so new that it might take few years for the adoption.

------
impostervt
I've used RoR and Node. RoR has a bigger community, so you're likely to find
answers faster, and probably provides better job security. You may want to try
Ruby/Sinatra, which I prefer over Rails. When you're learning, Sinatra forces
you to develop more yourself, so you're more likely to understand what's going
on. It's less "magical" than Rails.

Node is better for streaming/real-time applications. You can build any type of
web app with it, but it's best known for chat/real-time stuff.

That said, I actually love Node and plan to use it as much as possible, over
Ruby/Rails/Sinatra.

~~~
xoail
Thanks! Do you see node being widely used as much as RoR these days in few
years?

~~~
proksoup
Not a fair comparison I've linked here, but if you're looking for popularity,
I find google insights insightful some:
[http://www.google.com/trends/explore#q=node.js%2C%20ruby%20o...](http://www.google.com/trends/explore#q=node.js%2C%20ruby%20on%20rails&cmpt=q)

~~~
xoail
Thats very interesting to see node getting more popular than RoR so quickly.
Thanks for sharing.

------
iamwil
When I'm looking for a new programming language to learn, I ask the question,
"Will I learn something new about the fundamental concepts of programming?"

It's my 10x better test. In general, I think all three are good to know, and
each are good at what it does. Ruby is in the 'everything is an object' world,
and does it well. It optimizes for programmer speed, rather than execution
speed.

Node.js is like being dragged halfway to lisp and functional programming.
Learned a lot here, but having callbacks is almost like having to program with
continuations all the time.

Go is for systems programming, and it's got its own take at concurrent
programming. It's worth looking into.

Either way, just start at one, and eventually do side projects in the others.
Can't hurt to know them all.

~~~
xoail
Basically I was hoping to do a deep dive into one tech. Like I said, I've been
already playing with the mentioned 3 tech but neither an expert nor know
enough about them. By working on my side project I would like to see myself
move into a promising tech that will help me stay in the job market. So if you
were me, what would you do?

~~~
iamwil
I think if you lean towards system programming at Google, go with Go. If you
want to do web dev, either Rails or Node.js would suffice. If you want to do
both backend and frontend, familiarity in javascript, go with Node.js. Rails
libraries are more mature, but most new interesting libraries seem to be in
javascript.

------
charlesjshort
Node.js is the middle road between RoR and Go. RoR is the establishment, Go
the frontier. The Node middle road provides the best trade off between
community infrastructure and advanced design. Thinking in async is an acquired
habit which will be frustrating at first, but fine after a while.

