内容简介:Go 是一门并非所有编程语言都需要编译才能运行,比如 Python 、 Ruby 和其他一些流行语言就选择了在程序运行的时候,通过不过换个角度来看,解释器不仅能够让开发过程变得迅速且具有交互性,还能够让语言本身变得灵活、轻松和令人愉快。 相反地,编译语言却常常因为像机器人一样顽固不化、墨守成规而广为人知,并且缓慢的编译速度也常常为人所诟病,然而实际上并非所有编译语言都是如此。
Note
本文摘录自《Go语言趣学指南》的第 1 章《各就各位,预备,Go!》, 请访问 gpwgcn.com 以获取更多相关信息。
Go 是一门 编译 语言。 在运行程序之前,Go 首先需要使用 编译器 将用户编写的代码转化为计算机能够理解的 0 和 1 。 为了便于执行和分发,编译器还会把所有代码整合并编译成一个单独的 可执行文件 。 在编译的过程中,Go 编译器能够捕捉到程序中包括拼写错误在内的一些人为失误。
并非所有编程语言都需要编译才能运行,比如 Python 、 Ruby 和其他一些流行语言就选择了在程序运行的时候,通过 解释器 一条接一条地转化代码中的声明,但这也意味着 bug 可能会隐藏在测试尚未尝触及到的代码当中。
不过换个角度来看,解释器不仅能够让开发过程变得迅速且具有交互性,还能够让语言本身变得灵活、轻松和令人愉快。 相反地,编译语言却常常因为像机器人一样顽固不化、墨守成规而广为人知,并且缓慢的编译速度也常常为人所诟病,然而实际上并非所有编译语言都是如此。
我们想要构造出这样一种语言, 它不仅可以像 C++ 和 Java 这类静态编译语言一样安全、高效, 并且还可以像 Python 这类动态类型解释语言一样身轻如燕并且充满乐趣。 —— Rob Pike,《极客周刊》(详情请见mng.bz/jr8y)
Go 在考虑软件开发的 体验 方面可谓煞费苦心。 首先,即使是大型程序的编译也可以在极短的时间内完成,并且只需要用到一条命令。 其次,语言排除了那些可能会导致歧义的特性,鼓励可预测和简明易懂的代码。 最后,Go 为 Java 等传统语言死板的数据结构提供了轻量级的替代品。
Java 避免了 C++ 当中许多不常见、难懂和令人迷惑的特性, 根据我们的经验, 这些特性带来的麻烦要比好处多得多。 —— James Gosling,《Java:概述》
每一种新编程语言都会对以往想法进行改良。 与早期语言相比,在 Go 里面高效地使用内存将变得更为容易,出错的可能性也更低,并且 Go 还能利用多核机器上的每个核心获得额外的性能优势。 很多成功案例都会把性能提升列举为转向 Go 的其中一个原因。 比如根据 mng.bz/Wevx 和 mng.bz/8yo2 的记载, Iron.io 只用了 2 台 Go 服务器就替换掉了他们原来使用的 30 台 Ruby 服务器; 而根据 mng.bz/EnYl 的记载, Bitly 在使用 Go 重写原有的 Python 应用之后也获得了持续、可测量的性能提升,这导致他们在之后把自己的 C 应用也“更新换代”成了相应的 Go 版本(详情请见 mng.bz/EnYl )。
Go 不仅像解释语言一样简单和有趣,它还拥有编译语言快如闪电的性能优势以及坚如磐石的可靠性,并且由于 Go 是一门只包含几种简单概念的小型语言,所以它学习起来也相对比较快。 终上所述,我们就得出了以下 Go 箴言:
Go 是一门开源编程语言, 它可以大规模地生产出 简单 、 高效 并且 可信赖 的软件。 —— 《Go 品牌手册》(Go Brand Book)
Tip
当你在互联网上搜索 Go 的相关话题时, 可以使用关键字 golang 来代表 Go 语言。 这种将 -lang 后缀添加到语言名字之后的做法也适用于其他编程语言, 比如 Ruby 、 Rust 等。
以上所述就是小编给大家介绍的《Go 语言简述》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
人类思维如何与互联网共同进化
[美] 约翰·布罗克曼 / 付晓光 / 浙江人民出版社 / 2017-3 / 79.90元
➢人类是否因互联网的诞生进入了公平竞争的场域? “黑天鹅事件”频频发生,我们的预测能力是否正在退化? 智人的第四阶段有哪些特征? 全球脑会使人类成为“超级英雄”吗? 虚拟现实技术会不会灭绝人类的真实体验? 还有更多不可预知答案的问题,你将在本书中找到属于自己的答案! ➢ 我们的心智正和互联网发生着永无止境的共振,人类思维会因此产生怎样的进化效应?本书编者约翰•布......一起来看看 《人类思维如何与互联网共同进化》 这本书的介绍吧!