[译]-Go-FAQ
[TOC]
FQA
起源
开启这个项目的目的是什么?
10年前Golang项目开启之时,当时的编程世界和现在是截然不同的。软件的制作通常都使用C++或者java来进行开发,那时还没有github,大多数电脑还不是多核处理器,和Visual Studio和Eclipse相比没有更高级的IDE(集成开发环境),在互联网上免费开发使用的就更不用说了.
与此同时,让我们非常懊恼的是我们需要使用我们常用的开发语言进行非常复杂的服务器软件的开发.计算机的速度已经变得非常快了,但是我们最初使用的诸如C/C++、java之类的编程语言本身并没有很大的进步. 因此,显而易见的的是计算机的多处理器会逐渐变成常态,但是编程语言在如何高效、安全的运用多处理器方面只提供了很少的支持.
我们决定退一步思考随着科技的发展在未来若干年哪些问题才是主导软件工程关键因素,并且一门新的语言该怎样帮助解决这些问题.例如,随着多核CPU的崛起争论最多的是编程语言首要应该提供并发或者并行的执行顺序方面的支持.让高并发的程序的资源管理变得更加优良,提供垃圾回收机制,至少提供一些安全的自动管理内存的机制.
这些方面的思考引出了一系列的讨论,这也直接导致了Golang的诞生,第一步是一组想法和期望,最后衍生出了一门编程语言. Go的总体目标是可以通过启用工具完成自动格式化代码的任务以及消除在大型代码库上工作的困难方面给程序员提供更多的帮助.
关于如何实现这些目标或者至少实现这些目标更多的描述在这篇文章中有更详细的描述. Go at Google: Language Design...