为什么Go语言和Docker会是新一代的云计算技术?技术人员如何识别什么样的新技术会是未来的趋势?早一点地进入这些新技术有什么好处?

打卡Day60:今天学习了《08|Go语言,Docker和新技术》,我的收获如下:

Go语言是在2009年底开源的。

Go语言特点

  • 语言简单,上手快
  • 并行和异步编程几乎无痛点。Goroutine和Channel。
  • Go语言的lib库“麻雀虽小,五脏俱全”
  • C语言的理念和Python的姿态。C语言的理念是信任程序员,保持语言的小巧,不屏蔽底层且对底层友好,关注语言的执行效率和性能。Python的姿态是用尽量少的代码完成尽量多的事。

技术能发展起来的关键

  • 好的社区
  • 工业化标准
  • 杀手级应用

其它影响因素

  • 学习难度是否低,上手是否快
  • 不错的提高开发效率的开发框架
  • 巨型的技术公司作为后盾
  • 解决软件开发中的痛点

用标尺来衡量Go语言

  • Go语言容易上手。
  • Go语言解决了并发编程和底层应用开发效率的痛点。
  • Go语言有Google这个世界一流的技术公司在后面。
  • Go语言的杀手级应用是Docker容器。

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

被低估的PaaS

Docker是云计算中PaaS的关键技术。PaaS是一个被世界或是被产业界严重低估的平台。PaaS层是承上启下的关键技术,任何一个不重视PaaS的公司,其技术架构都不可能让这家公司成长为一个大型的公司

PaaS层的技术主要解决以下问题:

  • 软件生产线的问题。持续集成和持续发布,DevOps。
  • 分布式服务化的问题。高可用、服务编排、服务调度、服务发现、服务路由的支撑技术。
  • 提高服务的可用性SLA。分布式、高可用的技术架构和运维工具。
  • 软件能力的复用。软件工程中的核心就是软件能力的复用。

这些问题的关键程度已经到了能判断一家技术驱动公司的研发能力是否靠谱的程度

早一点进入新技术

为什么要早一点地进入这些新技术,而不是等待这些技术成熟了后再进入?

  • 技术的发展过程非常重要。非常具体的各种浪潮和思路,比起Go和Docker来说更有价值。
  • 这些关键新技术,可以让你提前抢占技术的先机。有更大的影响力,形成比较大的护城河,并可以快速地从中获取经济利益。

左耳朵耗子带你重学《左耳听风》

https://time.geekbang.org/column/article/294