更多左耳朵耗子的独家干货,请订阅极客时间出品的陈皓全年专栏《左耳听风》,一次订阅、永久阅读。即日起,戳此订阅立享以下两大福利:

\\

福利一:原价 ¥199/年,极客时间新用户注册立减 ¥30

\\

福利二:每邀请一位好友购买,你可获得36元现金返现,多邀多得,上不封顶,立即提现(提现流程:极客时间服务号-我的-现金奖励提现)

\\

上个月,作为Go语言的三位创始人之一,Unix老牌黑客罗勃·派克(Rob Pike)在新文章“Go: Ten years and climbing”中,回顾了一下Go语言的发展过程。其中提到,Go语言这十年的迅猛发展大到连他们自己都没有想到,并且还成为了云计算领域中新一代的开发语言。还提到了,中国程序员对Go语言的热爱完全超出了他们的想象,甚至他们都不敢相信是真的。

\\

这让我想起,我在2015年5月份拜访Docker公司在湾区的总部时,Docker负责人也和我表达了相似的感叹:他们完全没有想到居然中国有那么多人喜欢Docker,而且还有这么多人在为Docker做贡献,这让他们感到非常意外。此外,还跟我说,中国是除了美国本土之外的另外一个如此喜欢Docker技术的国家,在其它国家都没有看到。

\\

的确如他们所说,Go语言和Docker这两种技术已经成为新一代的云计算技术,而且可以看到其发展态势非常迅猛。而中国也成为了像美国一样在强力推动这两种技术的国家。这的确是一件让人感到非常高兴的事,因为中国在跟随时代潮流这件事上已经做得非常不错了。

\\

然而,从2014-2015年我在阿里推动Docker和Go语言的痛苦和失败过程中,以及这许多年来,有很多很多人问我是否要学Go语言,是否要学Docker,Go和Docker是否能用在生产线上,这些问题看来,对于Go语言和Docker这两种技术,在国内的技术圈中有相当大的一部分人和群体还在执观望或是不信任的态度。

\\

所以,我想写这篇文章,从两个方面来论述一下我的观点和看法。

\\

  • \\t

    一个方面,为什么Go语言和Docker会是新一代的云计算技术。

    \\t\\t

  • \\t

    另一个方面,作为技术人员,我们如何识别什么样的新技术会是未来的趋势。

    \\t\

这两个问题是相辅相成的,所以我会把这两个问题揉在一起谈。

\\

虽然Go语言是在2009年底开源的,但我是从2012年才开始接触和学习Go语言的。我只花了一个周末两天的时间就学完了,而且在这两天,我还很快地写出了一个能工作很好的网页爬虫程序,以及一个简单的高并发文件处理服务,用于提取前面抓取的网页的关键内容。这两个程序都很简单,总共才写了不到500行代码。

\\

我当时对Go语言有几点体会。

\\

第一,语言简单,上手快。Go语言的语法特性简直是太简单了,简单到你几乎玩不出什么花招,直来直去的,学习曲线很低,上手非常快。

\\

第二,并行和异步编程几乎无痛点。Go语言的Goroutine和Channel这两个神器简直就是并发和异步编程的巨大福音。像C、C++、Java、Python和JavaScript这些语言的并发和异步方式太控制就比较复杂了,而且容易出错,而Go解决这个问题非常地优雅和流畅。这对于编程多年受尽并发和异步折磨的我来说,完全就是让我眼前一亮的感觉。

\\


\(图片来自Medium:Why should you learn Go?)

\\

第三,Go语言的lib库麻雀虽小五脏俱全。Go语言的lib库中基本上有绝大多数常用的库,虽然有些库还不是很好,但我觉得不是问题,因为我相信在未来的发展中会把这些问题解决掉。

\\

第四,C语言的理念和Python的姿态。C语言的理念是信任程序员,保持语言的小巧,不屏蔽底层且底层友好,关注语言的执行效率和性能。而Python的姿态是用尽量少的代码完成尽量多的事。于是我能够感觉到,Go语言想要把C和Python统一起来,这是多棒的一件事啊。

\\


\(图片来自Medium:Why should you learn Go?)

\\

所以,即便Go语言存在诸多的问题,比如垃圾回收、异常处理、泛型编程等,但相较于上面这几个优势,我认为这些问题都是些小问题。于是就毫不犹豫地入坑了。

\\

当然,一个技术能不能发展起来,关键还要看三点。

\\

  • \\t

    有没有一个比较好的社区。像C、C++、Java、Python和JavaScript的生态圈都是非常丰富和火爆的。尤其是有很多商业机构参与的社区那就更为人气爆棚了,比如Linux的社区。

    \\t\\t

  • \\t

    有没有一个工业化的标准。像C、C++、Java都是有标准化组织的。尤其是Java,其在架构上还搞出了像J2EE这样的企业级标准。

    \\t\\t

  • \\t

    有没有一个或多个杀手级应用。C、C++和Java的杀手级应用不用多说了,就算是对于PHP这样还不能算是一个好的编程语言来说,因为是Linux时代的第一个杀手级解决方案LAMP中的关键技术,所以,也发展起来了。

    \\t\

上述的这三点是非常关键的,新的技术只需要占到其中一到两点就已经很不错了,何况有的技术,比如Java,是三点全占到了,所以,Java的发展是如此好。当然,除了上面这三点重要的,还有一些其它的影响因素,比如:

\\

  • 学习曲线是否低,上手是否快。这点非常重要,C++在这点上越做越不好了。\\t
  • 有没有一个不错的提高开发效率的开发框架。如:Java的Spring框架,C++的STL等。\\t
  • 是否有一个或多个巨型的技术公司作为后盾。如:Java和Linux后面的IBM、Sun……\\t
  • 有没有解决软件开发中的痛点。如:Java解决了C和C++的内存管理问题。\

用这些标尺来量一下Go语言,我们可以清楚地看到:

\\

  • Go语言容易上手;\\t
  • Go语言解决了并发编程和写底层应用开发效率的痛点;\\t
  • Go语言有Google这个世界一流的技术公司在后面;\\t
  • Go语言的杀手级应用是Docker,而Docker的生态圈在这几年完全爆棚了。\

所以,Go语言的未来是不可限量的。当然,我个人觉得,Go可能会吞食很多C、C++、Java的项目。不过,Go语言所吞食主要的项目应该是中间层的项目,既不是非常底层也不会是业务层。

\\

也就是说,Go语言不会吞食底层到C和C++那个级别的,也不会吞食到高层如Java业务层的项目。Go语言能吞食的一定是PaaS上的项目,比如一些消息缓存中间件、服务发现、服务代理、控制系统、Agent、日志收集等等,没有复杂的业务场景,也到不了特别底层(如操作系统)的中间平台层的软件项目或工具。而C和C++会被打到更底层,Java会被打到更上层的业务层。这是我的一个判断。

\\

好了,我们再用上面的标尺来量一下Go语言的杀手级应用Docker,你会发现基本是一样的。

\\

注:以上仅为文章的一部分,欲阅读全文,还请点击链接下载InfoQ极客时间手机客户端。打开『左耳听风』专栏的试读文章模块,继续阅读。

左耳朵耗子:谈谈Go语言、Docker和新技术相关推荐

  1. 左耳朵耗子:我做系统架构的一些原则

    作者:左耳朵耗子 原文地址:https://coolshell.cn/articles/21672.html 工作 20 多年了,这 20 来年看到了很多公司的很多的系统架构,也看到了很多问题,在跟这 ...

  2. 左耳朵耗子:我看ChatGPT,为啥谷歌掉了千亿美金

    本文经作者授权转载酷壳网,原文地址:https://coolshell.cn/articles/22398.html,可点击文末阅读原文直达! 作者 | 左耳朵耗子       责编 | 梦依丹 两个 ...

  3. 永远怀念左耳朵耗子陈皓——IT界的失去

    2023年,中国IT界遭遇了一次巨大的损失,左耳朵耗子陈皓先生的离世让人震惊和悲伤.作为一位杰出的技术专家和开源倡导者,他为IT界做出了卓越贡献.本文将回顾他的职业生涯和他对IT界的重要影响,以及他离 ...

  4. R.I.P,又一位程序员巨佬——左耳朵耗子陨落

    震惊!谣言吧!求辟谣!默哀! 左耳朵耗子,在程序员这个群体里应该属于 GOAT 的存在了,虽然每个人心目中都有自己的 GOAT,但耗子叔的影响力可以说是有目共睹. 我也是在技术群刷到这张图片的,相信大 ...

  5. 案例精选 | 左耳朵耗子:如何写出让同事无法维护的代码?

    对,你没看错,本文就是教你怎么写出让同事无法维护的代码.对于有下面这些编程习惯的朋友,请大家对号入座. 程序命名 容易输入的变量名.比如:Fred,asdf... 单字母的变量名.比如:a,b,c, ...

  6. 左耳朵耗子:程序员如何拿到年薪60万的岗位?

    本文摘自于陈皓在极客时间的年度专栏<左耳听风>中<程序员面试攻略>系列文章,更多面试必备技能,请扫码底部二维码了解. 学习了<程序员练级攻略 2018>系列文章,我 ...

  7. 悼念左耳朵耗子陈皓,他是互联网精神的代表

    关注.星标公众号,直达精彩内容 来源:技术让梦想更伟大 群里看到一个猝不及防的坏消息:陈皓走了!就是那个十多年前一直看他博客的左耳朵耗子. 今年才47岁,正当壮年.真是世事无常! 十多年前做产品经理和 ...

  8. 陈皓(@左耳朵耗子):我的精神家园(图灵访谈)

    原帖地址:http://www.ituring.com.cn/article/9174 图灵访谈之三十二:陈皓(@左耳朵耗子)专访 芝兰生于深谷,不以无人而不芳 .君子修身养德,不以穷困而改志. &q ...

  9. 左耳朵耗子:软件开发这些年,我学会的道理和教训

    作者 | 陈皓 编辑 | Yilia 陈皓,网名"左耳朵耗子",资深技术专家,骨灰级程序员.在他漫长的技术生涯里,有哪些故事可以供年轻程序员参考?又有哪些经验教训值得后辈深思?本次 ...

最新文章

  1. 避免让网站沦为摆设,从三个方面着手塑造!
  2. LeetCode10.正则表达式匹配 JavaScript
  3. Java 基础数据类型
  4. VS2005工程由Pocket PC 2003 SDK转为WINCE6.0 SDK的问题
  5. 课时 11:可观测性:你的应用健康吗?(莫源)
  6. docker安装mysql及相关配置、运行细节和常见报错解决方案
  7. 游戏角色口型老是对不上?这里有一个高效解决方案
  8. JavaScript的面向对象特性
  9. spring整合mongodb集群
  10. 正确加载 Javascript 和 CSS 到 WordPress
  11. Java应用基础微专业-设计篇
  12. 2022年度Top9的任务管理系统
  13. 扭曲丛林服务器未响应,LOL等级最高玩家已246级 狂刷扭曲丛林攒经验
  14. 微博白名单,微博外链白名单,微博白名单域名
  15. FPGA复位电路设计学习分析
  16. Alpha 冲刺(5/10)
  17. 网站漏洞测试分析查找问题攻防演练
  18. CDR各版本文件不兼容的原因
  19. 模型预测控制系列讲解(二):模型预测控制算法发展进程
  20. Mariadb数据库之主从复制同步配置实战

热门文章

  1. 软考-信息系统项目管理师-项目采购管理
  2. mysql bundle.tar_linux 下安装mysql-5.7.16-1.el6.x86_64.rpm-bundle.tar
  3. atlas安装需要kafka吗_Apache Atlas安装使用说明文档
  4. 计算机机房建设标准.doc,计算机机房建设标准(部分2)
  5. linux时间调整为dst,在Linux中禁用夏令时(DST)更改
  6. 透视大数据,未来市场谁主沉浮?这个4月,3W企服大数据OpenForm等你报名!
  7. 掌握这些PPT技巧,让你的工作效率提高10倍
  8. 几款xshell绝佳配色方案
  9. 0、elasticsearch前言
  10. Ajax(form表单文件上传、请求头之contentType、Ajax传递json数据、Ajax文件上传)