Nodejs是一个运行时或者说是一个Javascript代码运行时的环境,而Golang是一门编程语言但不只仅用于后端开发。Golang是由Google于2007年发明的。Nodejs能让Javascript代码运行在服务端上,而Golang适用于服务器端编写代码。Nodejs代码也就是Javascript的代码,因此继承了大量的Javascript特性。Javascript在当下是如此的流行,以致于ECMAScript标准主要是改进性地前行而不是颠覆性地进行。Golang能够被认为是从c/c++这些更保守的语言上的进化。Golang核心结构的创建是在C和Python的基本准则之上的。node
咱们接下来会对比一下Golang与Nodejs的优缺点,从而让你更好地选择在接下来的工做里面该选谁。linux
Golang:与c/c++差很少的性能特性,能够说是很是出色了。c++
Nodejs:若是从原始性能上来讲,Golang和Nodejs比较是相对公平的。 原始性能即CPU没有额外的负荷,Golang和Nodejs在这方面都相对展现相对使人满意的效果,可是Golang在实际运行性能可能会更好,由于服务端运行时候的性能都各类因素的影响。golang
Golang:Golang使用一种并发模型叫“Goruntinues”。Goruntinues容许多个协程同时运行,轻松靠谱地完成并发任务。web
Nodejs:Nodejs是单线程的,意味着执行任务是顺序执行的。在大规模扩展的同时须要处理多个并行任务在同一时间可能会出现一些致命的弱点。Javascript容许利用事件回调的方式来处理并发,但这种方式并非足够的高效。编程
Golang: go version go1.10 linux/amd64后端
Node js :- v9.4.0安全
在比较了Golang与Nodejs各个方面之后,其实咱们很难去说谁比谁更加出色,他们都有各自的闪光点以及缺点。在性能方面来讲,Golang彷佛比Nodejs更加可靠,但同时你也应该从项目大小,项目结构,以及业务类型等各类方面去比较做出考量。服务器
这部份内容并非原文全部,本文翻译的内容并不表明我本身的观点,只是这篇原文在Medium上比较热门因此我翻译了过来能够供你们讨论。我自己是一个Nodejs以及前端的开发者超过3年了,最近在用Golang练习一些后端的项目也断断续续有几个月了。我很是喜欢Nodejs/Javascript的灵活性,虽然这也是被许多人诟病的地方。另外是这篇里面说到的并发比较只是简单说了Js的回调而没有提到事件循环,虽然Nodejs是单线程但正是有了事件循环,因此其在处理并发上也是足够高效的。但另外一方面,Golang的Go rutines设计配合channel在并发状况性能确实很是高效,而正由于其不是单线程的特性,因此还会引伸出共享资源竞争以及并发安全的问题,迫使我本身要去关注和处理以及考虑更多的状况在实际使用中,也能够所以接触到更多操做系统或者是更加底层的知识和概念,而不是简单的CRUD。我以为Nodejs和Golang都有其各自的闪光点。个人建议是,若是你是一位Nodejs的后端工程师,但愿另外再接触学习一门静态语言,但愿更加底层地处理和熟悉高并发场景的话,我认为Golang是一个很是不错的选择。