
Is Go better than Node.js? - betadreamer
I have backend experience in Python (Django &#x2F; Flask) and willing to try a new language and framework for my next project. I know its a stupid question to ask between 2 completely different language but I am lost.<p>It seems like the more I google there are more people who supports Go more than Node for mainly these reasons: simplicity and no callback mess.<p>Just to let you know I read these links:
http:&#x2F;&#x2F;www.quora.com&#x2F;Node-js&#x2F;Why-did-Koding-switch-from-Node-js-to-Go
http:&#x2F;&#x2F;jordanorelli.com&#x2F;post&#x2F;31533769172&#x2F;why-i-went-from-python-to-go-and-not-node-js<p>I understand that every language have their own usage so here are my condition.
1) I&#x27;m willing to use async to solve the callback nightmare in node.
2) Frontend is iOS so no advantage of having a same language in JS.<p>What&#x27;s your 2 cents?
======
carterschonwald
If you have experience with python, Go or Haskell will be a much better "new
tool to learn". Of the two, Go will be a more comfortable jump, but either
tool will help you engineer in fun new ways that have no callbacks :)

Both have great optimizing compilers, vibrant friendly communities, and can
build static linked binaries that are easy to deploy in whatever your target
environment is.

If you want something you can get comfy hacking in next week, I'd say go with
Go, but if you are looking for "what can I build amazing things with a year
from now after getting comfy with", I'd push for Haskell.

NB: I'm a very active member of the Haskell community at this point, so I'm a
bit biased. I will be the first to say Haskell and its tools aren't perfect,
but I and others work hard every week to make them ever more awesomer. (I also
spend a lot of time helping get people started contributing to core haskell
tools). Also I've a wee business i'm building using Haskell as my stack :)

~~~
betadreamer
thanks! I will try out haskell too. Although I usually stay away from
functional programming. It somehow look intense to me :P

~~~
carterschonwald
if by intense you mean "strange because it uses ideas I've yet to learn, but
will really enjoy once i've mastered", sure :)

------
api
The Go language certainly is, but with Node I can do things like "npm install
passport-google" and have OAuth in 5 minutes. The Node ecosystem is full of
incredibly useful components for getting up and running quickly.

Unfortunately computer language quality seems slightly inversely correlated
with the vitality of its ecosystem.

~~~
betadreamer
thanks api! I did some googling and it seems like Go have goauth. Although npm
is nice, I don't mind searching for 3rd party frameworks. I read that node can
be a headache if the project becomes big. Is this true?

~~~
mattkrea
In my experience if you start off properly you'll be fine.

i.e. serve static assets with CSS, properly organize and modularize your
components (especially your own that you wrote just for the project!) and
you'll be fine.

I do love Go but I always go back to Node just because of the rapid
development.

------
dopplesoldner
I have learned Node.js from scratch over the last 6 months or so (I was
introduced to it by the Startup Engineering MOOC on coursera). Before that my
experience was with backend languages - C++, C#, python.

Initially it was a steep learning curve and coming from a "synchronous" way of
writing code, I managed to get myself in all sorts of mess. But with time as I
have become more comfortable, discovered new patterns (async, promises) I can
say I am liking node.js more and more.

Also, the ability to code in a single language for your entire stack (Angular,
node, mongo) is not to be overlooked for productivity gains.

So far I haven't really gotten the change to try Go but if your fears are just
regarding the async patterns in node.js, I can assure that its NOT that bad
and in return it makes you a better programmer.

------
CyberFonic
With Python experience, you might find Go a bit closer to what you are used
to. However, if you do any appreciable amount of browser-side JS, then Node.js
might also be comfortable.

Personally, I would evaluate what frameworks, etc you need for a new project
and then choose the language that better supports the project. Keeping in
mind, that Google don't use Go for all their systems, only where it provides
advantages over the alternatives.

~~~
betadreamer
Thanks! That's a good tip. I will evaluate what framework i need. When does Go
advantages?

------
filipedeschamps
I suggest you to read all comments on the link you pointed at Quora.

~~~
betadreamer
hmm its funny how you site the link that I posted...lol I will assume you
recommend Go over Node.

~~~
filipedeschamps
Sorry, I don't understand what you said. But I recommend Node, specially after
reading Devrim (the CEO) reply.

If you want a mature answer, read Sandro Pasquali reply.

