Go是为什么devise的?

似乎Go是为了替代以前用C ++解决的问题而devise的。 这是一个准确的说法吗? Go是为什么devise的?

我认为MarkCC 总结得很好 :

Goroutines和渠道提供了我在Erlang之外看到的最好的支持,以利用并发性。 坦率地说,我认为Go比Erlang要less得多。 (对不起,Erlang的粉丝,但我真的不喜欢Erlang)。与Java相比,我认为Go是这个领域的主要竞争对手,Go的goroutines和渠道比Java线程和锁更容易工作,根本没有比较。 几乎破坏了这个领域的竞争。

从Google自己的主题常见问题解答: 项目的目的是什么? :

十多年来没有出现任何主要的系统语言,但是在那个时候,计算环境发生了巨大的变化。 有几个趋势:

  • 计算机速度非常快,但软件开发并不快。
  • 依赖pipe理是当今软件开发的重要组成部分,但C语言中的语言“头文件”与清除依赖关系分析和快速编译是对立的。
  • 对Java和C ++等繁琐的types系统的反叛越来越多,将人们推向dynamictypes的语言,如Python和JavaScript。
  • 垃圾收集和并行计算等一些基本概念不被stream行的系统语言所支持。
  • 多核计算机的出现引起了人们的担忧和困惑。

我们认为值得再用一种新语言,一种并发的,垃圾收集的语言,快速编译。 关于以上几点:

  • 可以在一台计算机上几秒钟内编译一个大型的Go程序。
  • Go为软件构build提供了一个模型,使得依赖分析变得简单,避免了C风格包含文件和库的大部分开销。
  • Go的types系统没有层次结构,所以没有时间来定义types之间的关系。 另外,尽pipeGo具有静态types,但是语言试图使types感觉比典型的OO语言更轻。
  • Go完全被垃圾收集,为并发执行和通信提供基础支持。
  • Go提出了一种在多核机器上构build系统软件的方法。

他们正在瞄准能够并且需要高水平并发的项目。 尽pipe他们的FAQ表示Google不会在内部使用,但您可以确定地看到它受到了他们自己的需求和愿望的影响。

除了Ben的Google常见问题解答之外,我相信Go是一种与Native Client集成的语言,可以使即将推出的Chrome操作系统更容易开发。

我认为你的陈述是部分准确的,但有人可能会争辩说,你以前会使用Erlang进行高度并发的应用,例如电话路由器等。这就是Erlang为爱立信开发的。 我不使用Erlang,也不知道它的缺点,但可能有一些,这可能解释了为什么Google决定创build自己的并发语言。

Erlang在Faq页面上没有提及的事实是有趣的,而且更快的计算机应该导致更快的软件开发。 这不是我的电脑,把我抱起来:-)。

Go项目的设想是为了更容易地编写Google在内部使用的服务器和其他软件,但是对于大规模生产,这种实现还不够成熟。 在我们继续发展的同时,我们也在用语言作为候选服务器环境进行实验。 到达那里。 例如, http ://golang.org后面的服务器是Go程序; 实际上它只是在生产configuration中运行的godoc文档服务器。

来源: Go的常见问题 – Google是否在内部使用Go?