Hacker News new | past | comments | ask | show | jobs | submit login
Is Go better than Node.js?
15 points by betadreamer on Mar 31, 2014 | hide | past | web | favorite | 12 comments
I have backend experience in Python (Django / 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.

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.

Just to let you know I read these links: http://www.quora.com/Node-js/Why-did-Koding-switch-from-Node-js-to-Go http://jordanorelli.com/post/31533769172/why-i-went-from-python-to-go-and-not-node-js

I understand that every language have their own usage so here are my condition. 1) I'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.

What's your 2 cents?

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 :)

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

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

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.

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?

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.

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.

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.

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

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

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

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.

Registration is open for Startup School 2019. Classes start July 22nd.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact