文章图片
文章图片
你日常用什么语言写代码?什么Python , 还在用Python 。 Python确实啥都干的语言 , 可以写个API、Web开发、系统脚本 , 科学计算 , 数据处理——以至于还有很多的开发人员都离不开Python 。 但是 , 现在是时候换Golang了 。
Golang源于谷歌的内部项目 , 由?三位名声赫赫的资深开发者创造:其中罗伯特·格瑞史莫(Robert Griesemer)是谷歌V8引擎的负责人 。 罗勃·派克(Rob Pike)和肯·汤普逊(Ken Thompson)共同开发了Unix 环境并共同创建了Limbo编程语言 , 汤普逊还是C语言之父 , 图灵奖获得者 。
谷歌曾经大力推广Python , 但是用Python有不可避免的一些问题:
缓慢构建:生成新代码需要很长时间 。
混乱的包依赖:用Python开发必须至少安装五个其他依赖项和无数
版本兼容:由于重复的代码到处都是 , 工程师可能只更新原始代码片段的一个版本而忘记其他版本 。 所以最终得到一个包含新旧代码的版本 。 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是正交的 , 因为它使事情变得更简单 。
极简性:在 Golang中 , 只有一种方法可以编写一段代码 。 将其与Python进行比较 , 在Python中 , 可以有无数种方法可以实现 。
实用性:重要的东西应该易于编码——即使这意味着其他事情在Golang中是不可能做到的 。 这样通过快速轻松地执行重复任务来提高开发人员的生产力 。 如果有更复杂的问题——无论如何这都是罕见
所有这些听起来可能很无聊且缺乏创意 。 从某种意义上说 , 这是真的——这不是一种可以用来给别人留下深刻印象的时髦功能的语言 , 没有多种解决问题的方法 , 没有限制的自由 。 Golang不是一种可以用来探索和研究的语言 。
- Python|OriginOS Ocean新特性:隐私保护、锁屏界面挂起应用都有了
- 中兴|为数字化转型夯实地基,中兴成为企业转型的最佳拍档
- Python|联想真的没有问题?中国院士公布数据,胡锡进改变立场
- GPU|python装饰器一篇看懂
- Python|截止12月份 最值得入手的三款手机 款款极致性价比随便买一款用几年
- Python|编程语言也环保?C 语言领跑,Python、Perl 和 Ruby 表现不佳
- Python|小米 CyberDog 机器人将运行 Ubuntu 操作系统
- Python|曾占中国30%市场,百年日企衰落,半年亏562亿,只怪智能机太畅销
- Python|想入手iPad mini 5,又觉得没什么用,iPad实用性在哪里?
- Python|骁龙8 Gen1发布了,现在还能买骁龙888手机吗?