Python|Python转型Golang可以做了

Python|Python转型Golang可以做了

文章图片

Python|Python转型Golang可以做了

文章图片

Python|Python转型Golang可以做了


你日常用什么语言写代码?什么Python , 还在用Python 。 Python确实啥都干的语言 , 可以写个API、Web开发、系统脚本 , 科学计算 , 数据处理——以至于还有很多的开发人员都离不开Python 。 但是 , 现在是时候换Golang了 。
Golang源于谷歌的内部项目 , 由?三位名声赫赫的资深开发者创造:其中罗伯特·格瑞史莫(Robert Griesemer)是谷歌V8引擎的负责人 。 罗勃·派克(Rob Pike)和肯·汤普逊(Ken Thompson)共同开发了Unix 环境并共同创建了Limbo编程语言 , 汤普逊还是C语言之父 , 图灵奖获得者 。

谷歌曾经大力推广Python , 但是用Python有不可避免的一些问题:
缓慢构建:生成新代码需要很长时间 。
混乱的包依赖:用Python开发必须至少安装五个其他依赖项和无数依赖项才能使其工作?鼓吹人士常说Python可以“三行代码实现一个程序” , 但是他没有告诉你的是这三行代码得依赖300个类库 。
版本兼容:由于重复的代码到处都是 , 工程师可能只更新原始代码片段的一个版本而忘记其他版本 。 所以最终得到一个包含新旧代码的版本 。 Python代码基本上不能版本兼容 , 即便是2.6和2.7之间也都无法兼容 , 更别说3.x和2.x了 。
工具栈:在Python中 , 一个开发人员可能使用NumPy包 , 另一个更喜欢SciPy , 依此类推 。 当想要将这些代码混合到一个包中时 , 事情就会变得一团糟 。
重复工作:开发人员都可能会用Dtrl+cCtrl+v进行“代码高可用性”编程(复制一段代码) , 这对大多数编程语言都可以轻松实现 , 但是Python除外 。
更新成本:在上述如此混乱的情况下 , 更新软件需要花费大量时间和脑力 。
编写自动工具的困难:编写自己编写代码的程序是可能的——事实上 , 大多数程序在某个阶段都会这样做 。 但是使用现代编程语言 , 这仍然很难实现 。
跨语言构建: Python适用于中小型脚本 , C++适用于复杂的程序 , Java适用于 Web开发 , Haskell适用于惰性但健壮的代码 。 这样单个程序通常包含来自多种不同语言的片段 。 但是为了编译、调试和整洁 , 最好用一种语言编写程序 。
为了解决Python这些问题 , 三人着手设计一种干净、简单且可读的语言 。 一种可以消除或至少缓解软件工程中这些太常见的问题的语言 。 这些常见问题的根源在于现代语言的复杂性 。
相比之下 , Golang最大的特点就是简单 。 这并不意味着你不能用它构建复杂的代码 。 但是Golang非常慎重 , 没有在不解决问题的情况下带来更多复杂性的功能 。Golang的其他主要特性是:
类型安全:在C中 , 可以使用指针做任何事情——包括使程序崩溃 。 Golang不支持像那样乱搞 。
可读性: Golang中代码可读是在首位 。 这使它比大多数语言更适合初学者 , 并使代码更易于维护 。
文档:尤其是初级开发人员发现编写一些关于代码的简介以便其他人可以使用它很乏味 。 使用Godoc , 这个过程比大多数语言更加自动化——开发人员不必浪费宝贵的时间来写下他们一直在做的事情 。
正交性:如果更改代码中的一个对象 , 则其他对象不会因此而更改 。 从这个意义上说 ,例如 , 这与C非常不同——如果你改变了一件事 , 那么其他人可以依赖它并且也会改变 。Golang是正交的 , 因为它使事情变得更简单 。