许式伟:Go+ Together丨Go+ 1.0 发布会干货分享
10 月 15 日,七牛云主办的「Go+ Together!Go+ 1.0 发布会暨 Go+ 开发者基金会启动仪式」在上海隆重召开。
本次大会中,七牛云 CEO、Go+ 语言发明人许式伟与 Go+ 语言贡献者共同发布了 Go+ 1.0 版本,公布了 Go+ 发展路线图。许式伟以《Go+ Together》为题,分享了为什么需要 Go+、Go+ 的目标,以及 Go+ 未来发展的思路与方向。
以下为许式伟主题演讲的内容整理。
感谢大家来到 Go+ 1.0 发布的现场,对我来说,今天注定是一个非常难忘的日子。
去年我们首发了 Go+,今天我可以很自豪地说:Go+ 可以商用了,已经可以进入我们的生产环节!站在未来十年的角度来说,这是一件非常重要的事情。
为了今天,我其实也想了很久,最初准备分享的东西比今天的分享内容要多很多,但考虑到时间关系,还是忍痛删了很多。
今天我最想讲的东西,包括三个方面:
- 你和 Go+
- Go+ 想成为什么
- Go+ 怎么发展
我知道今天有非常多的非技术朋友,不是我们所谓的编程语言的常规受众,但还是非常感谢大家来参加这一历史性的时刻。我想分享的第一部分内容,便是 Go+ 和我们在场的每一位哪怕非技术人员的朋友也是息息相关的。
分享的第二点,便是 Go+ 到底想成为什么,我们的目标是什么?这个世界上编程语言已经有很多了,为什么这个世界还需要 Go+?这是一个许多人会问我们的问题,这也是在这样一个场合我希望能够解释清楚的话题。
第三点,我们明确目标以后,到底应该如何发展。Go+ 怎么样才能成为真正意义上的流行语言,我在朋友圈昨天给自己立了一个 flag —— 希望有一天 Go+ 能够超过 Go。这个理想我认为不会特别遥远,为什么我会有这样的看法,Go+ 到底靠什么样的魅力去发展,才能够超过 Go,这是我想分享的第三个话题。
一、你和 Go+
首先,我们来聊聊大家和 Go+ 的关系,为什么你会关心 Go+,以及编程语言和大家的关系。
在聊编程语言之前,我想先聊聊自动化的进程。人类的历程到现在已经有两千多年的历史,最早的是手动劳作阶段,没有任何自动化可以帮助我们提高效率。机械自动化是我们认知的第一个自动化进程,它的代表性事件是 1776 年蒸汽机的出现。
机械自动化背后的逻辑是「硬件即程序」。其实程序的概念就是自动化,而机械自动化时期最大的问题就是「出厂即巅峰」,一个机器从出厂的时候就明确了是什么功能,不能再进行后续的迭代改变。
编程语言的出现是我们可以改变自动化的程序,软件定义程序的一个重要标志性事件,是 1941 年电脑或者计算机概念的出现。
回顾历史,更重要的是为了展望未来。我们从今天看向未来的 10 年 50 年,自动化的进程还会如何演进?
我和很多朋友分享过我的判断和观点。
首先是未来的十年会发生什么?我认为大概率就是我们经常听到的一个词 —— 软件自动化吞噬一切。在今天之前我认为这还只是一个口号或者说方向,毕竟这个词其实出现得蛮久了,但软件真的吞噬一切了么?其实并没有,因为有太多的东西仍是机械自动化和手工劳作的方式。
此前软件自动化主要的范围是消费互联网,现在转头到产业互联网,所有的产业都将互联网化,而这个互联网化的过程本身就是软件自动化的进程。我觉得未来十年会完成软件自动化进程的全部,所有行业都会全面进入软件自动化的阶段。
第二步,我认为我们应该站在更远的维度来观察,来看 50 年后。我认为到时软件自动化会实现一次重要的进化。大家都在提大数据、人工智能,其实这就代表着软件自动化的下一个阶段,从代码驱动进化到数据驱动,从 IT 全面进化到 DT。
有了对未来的判断,其实对我们如何判断、理解编程语言这样一个基础领域的趋势发展,是非常有帮助的。而十年、五十年的发展趋势,跟我们到底有什么关系呢?
首先,既然所有的行业都会被软件自动化所吞噬,那么在座各位无论是医疗、教育或者其他领域的朋友,都和软件自动化会产生最直接的关联。尤其,我们的下一代更是如此。
现在人工智能很火,引起了一批小孩子学习 AI 的热潮,但从我今天的视角来看,学 AI 对他们有点儿早。如果他们在八岁到十岁这个年龄段的话,其实是他们开始学编程最好的时间。
为什么我会这么认为?我们先来看一下编程语言到底是什么。编程语言从最直接的逻辑来说,其实是一个表达工具,是驱使电脑按你的想法做事情的工具,也就是是表达你思想的东西,在这个维度里它和自然语言是非常相似的。
但它和自然语言不同的是,它是让电脑帮你干事情,实际上也就是实现软件自动化的手段。很多人对编程语言有恐惧,实际上它一点都不高深,如果你理解它背后的逻辑的话。
刚才的话题其实比较直白,相信很多人都可以理解。下面想和大家讨论一个非常核心的问题 —— 未来人类文明对代码的依赖到底有多大?对于这个话题我有着一些自己的看法。
首先,我会把知识看成两类:
- 第一类:科学理论以及人文
- 第二类:工程技术
我认为:工程技术的知识密度远高于科学理论:一项科学理论,可能对应成千上万的工程技术应用。
科学理论是抽象的,比如说牛顿三定律,它可以用自然语言表达得很清楚。用文字表达基本上可以满足科学理论表达的需求。
但当我们去看工程技术,比如说我们要造原子弹,如果我们仍然用文字来记录工程技术,有一个问题就是它是不精确的。不同的人看到同一句话,含义的理解完全不一样。不精确的表达,产生的一个巨大问题——便是存在技术失传的可能性。但我们如果用编程语言来记录,是可以实现精确传承的,不会出现过了若干年后的人类看不懂这个技术。这是编程语言带来的很巨大的变化。
理解了这一点,那么接下来是我最想分享的一个观点 —— 编程语言是更高阶的文明密码。编程语言会成为人类文明的底层基础设施,因为它改变了人类记录工程技术的方式。这是一个很重要的理论。
如果不懂编程,你可能只能理解部分科学理论,但可以获取的知识范围可能只是所有知识的千分之一。因为占这个世界上绝大部分的、更大密度的知识来自于工程技术,也就是需要我们用编程语言去精确传承的东西。如果不懂编程,就意味着有可能是看不懂未来绝大部分的知识,某种意义上来说就是另外一种“文盲”。
从这个意义上来看,编程语言虽然在人类发展两千多年以后才出现,但却代表了更高阶的文明密码,它是传承人类知识体系的一个工具,这是我个人对编程语言的看法。站在这个维度来看,编程语言和我们所有人都有非常密切的关系。
下一个话题是,编程语言是不是很难掌握?
我前面其实回答了这个问题,但我还是想和大家分享,编程语言其实比自然语言好掌握得多。
编程语言会学习自然语言的一些表达方式,以便让大家更容易看懂,但同时编程语言不会完全抄袭自然语言,因为它不需要传承自然语言的复杂性。好的编程语言的语法规范都遵循更少、更精炼、更精确,比如像Go和Go+,基本上一两周便可以学会。
大家可能觉得一两周学会一门语言好像挺夸张,但这实际上是我教育自己孩子的教学经验。专业知识是另一个话题,而一门编程语言的基础语法以及核心的表达能力,基本上两周便可以教会。编程语言其实比大部分人想象的要简单得多,因为它本质上只是一个表达思想的工具。
二、Go+ 想成为什么?
第二个大家可能感兴趣的话题,是 Go+ 想成为什么。
2020 年 7 月份发布 Go+ 的时候,大家都知道 Go+ 的 slogan 是「为数据科学而生」。但是前阵子我们把它换成了「for engineering, STEM education, and data science」,它是三位一体的。
这么看好像它的目标太大了。七牛内部的同事也会说,「三位一体」是否意味着 Go+ 失去了焦点、Go+ 不知道要成为什么。Go+ 的重点到底在哪里?这是很多人看到 slogan 以后第一个冒出来的问题。
在谈 Go+ 的「三位一体」之前,我想聊聊乔布斯 iPhone 的「三位一体」。这些截图都是从 2007 年乔布斯的演讲里面截出来的。iPhone 的「三位一体」,分别是宽屏的 iPod、革命性的电话,还有绝佳的互联网访问体验。
这三个东西让 iPhone 失去焦点了吗?
我认为其实很多时候,今天的科技革命本身就是跨界融合的,跨界融合是接下来科技进化的一个非常重要的主题。
为什么编程语言需要跨界融合?首先,我想讲讲 Go+ 的三位一体代表了什么,解释一下三位一体的意思。
这三个解释的语言特意用英文,原因是我想在这个发布会结束以后放到 Go+ 的网站上。
第一点 for engineering,我们认为对工程师来讲,我们的变革意义在于你可以使用一个最简洁的,连儿童也能掌握的语言去工作。这在工程领域我们认为是非常重要的一个进化。大家都知道低代码这个概念现在非常火,但真正降低表达门槛最内核的东西,其实是在语言层面的变革。
第二点 for STEM education 这个领域,我们希望小朋友从小学学习的便是一门工程语言,以便于他在未来的工作中可以使用。好像我是在兜圈子?是的,跟刚才的观点一样,我们只是换了一个角度来看这个问题。但我认为这个事情是非常重要的。我们可以看到今天的教学不是这样子的:小朋友刚开始接触的第一门编程语言大概率是 Scratch。但 Scratch 是不会在工程里面使用的,所以一定还需要去学习其他的语言。我们希望初学者可以从头就学一个工程语言,而这一点显然是可以做到的。
最后一点 for data science,我们希望让工程师和数据科学家可以用相同的语言去对话。我认为这一点是对数据科学,或者 Data technology 时期的人才培养是至关重要的。
我们一一展开来谈。
首先我认为,工程与 STEM 教育一体化是一个大的趋势。
第一个逻辑是我们刚才提到的,未来十年大概率软件自动化会吞噬一切,一切行业。在这样一个背景和过程中,我们必然面临的一个最重要的挑战,就是工程师从何而来,今天工程师的数量是远远不够的。目前工程师的体系培养并不是那么完善,这个趋势会反向倒逼工程师培养体系的革新。我认为 Go+ 其实是第一个直面工程师培养体系变革的语言。
今天 STEM 教育与工程界是割裂的,学校教的往往是工程界不会去用的,或者已经不怎么去用的东西。企业招聘大学生非常痛苦的一点,就是学校教的和我们要的是两码事,相信开公司的人都非常理解,在公司里面做管理、需要去校招的人也都非常理解这一点。
如果我们让一门工程语言简单到可以让七八岁的小孩可以掌握,那么自然会使得教学语言就等于工程语言。这件事情我认为是非常巨大的变革,因为我们让产学研真正地走向了一体化的道路上,而产学研一体化正是我认为工程师培养体系革新的一个非常关键的、最内核的事情。
如何让学校和产业用相同的语言去对话,而不是各搞各的,这是一个非常重要的事情,我们希望 Go+ 能够承载这样一个使命。所以关于 Go+ 第一个我能看到的趋势,便是工程与 STEM 教育的一体化。
刚才说的所有趋势与未来有一个前提,需要有一门工程语言可以被七八岁的小孩所掌握。Go+ 可以被中小学生所掌握吗?
其实,Go+ 目前的案例中有一半是小孩子贡献的,这里我们和大家分享两个案例:
第一个案例非常简单,实现了几个角色的对话。这个在是 Scratch 教学里往往是第一堂课或者第二堂课去教的东西。
第二个例子就非常复杂了,比较接近工程级的飞机大战。今天我从一个过来人的角度来说,很高兴的一点是 Go+ 完全可以被七八岁的小孩学习、使用。当然七岁可能太早,我个人的看法是 8-10 岁左右是开始学习编程的最佳年龄段。
那么 Go+ 到底变革了什么,或者说做到了什么 Go 没做到的事情?
我认为最重要的有两件事:
第一,对于初学者,Go+ 隐蔽了工程的复杂性。他们不用一开始就去理解什么是函数、模块等工程上的概念,这个事情对小孩来说太难了,我们一上来就把这件事情干掉了。
第二,使用了更加接近自然语言的表达。我这里也贴了一个例子,是一个猴子吃香蕉的例子。当猴子运动的时候,检测香蕉是不是和猴子碰撞,如果是就代表猴子吃掉了香蕉,游戏结束。被吃掉的香蕉数量加一。这个代码超级简单,基本上不会编码也能看懂,这就是 Go+。
这也是我们认为 Go+ 做到了 Go 没有做到的东西,可以让一个非常小的小孩,基本上会写文章就会写编程。我一直在试图解除大家对编程的恐惧时都会说,会写文章的人都能够学会编程。编程语言的语法比自然语言少太多了,大家一点都不用害怕。这个是很有趣的一件事情。
第二个我认为的趋势,工程与数据科学的一体化。这也是很重大的趋势。
在我之前 Go+ 的分享中,大部分的主题都是「Go+ 与数据科学」,所以今天这个话题我会简略讲。对这个话题内容感兴趣的朋友可以搜一搜我以前演讲的内容,这里我只是把主要的逻辑和大家做个分享。
第一,未来五十年软件自动化将全面从代码驱动进化到数据驱动,这个进程非常依赖一个新的大家相对比较陌生的新角色:数据科学家,或者叫数据工程师。数据科学家在未来将继续迎来人才需求的爆发式增长。
AlphaGo 火了之后,AI 热潮一度让数据科学家的工资比程序员的高多了。这其实是因为相关的人才太少,不好找。这个岗位从能力来说,他需要有开发工程师的背景、有数学统计的能力,还有对于商业有一定的感觉。所以这个角色的能力要求是比较综合的。
培养一个合格的数据科学家的一个最有可能的方式,便是从工程师中来,这是一个非常自然的人才培养路径。
这个世界上有非常多专业的领域,也有数据科学家专用的语言,最典型的就是 R 和 Julia。但为什么最后是 Python 胜出了?刚巧,这个月 Python 进了语言排行榜的第一位,把 C 和 Java 给踩了下去,我认为这是一个非常标志性的事件。
这背后的逻辑其实很简单,就一点:因为 Python 的工程师人多。Python 工程师多,那么数据科学家便从 Python 工程师中来,这是最自然的一个人才培养路径。所以 Python 成为语言排行榜的第一本身就代表了一个重大的趋势——工程与数据科学家的一体化。
我们总结一下这些趋势:
- 工程与 STEM 教育的融合,解决工程师培养的体系;
- 工程师与数据科学的融合,解决的是数据科学家的培养体系。
这也是 Go+ 为什么要做「三位一体」。我们认为这两大融合解决了当今对信息科技人才的核心诉求。
我们让工程师与学校的学生用相同的语言来对话,从而实现产学研一体化,完成工程师培养体系的构建。我们让工程师和数据科学家用相同的语言来对话,从而完成数据科学家培养体系的构建。
这就是 Go+ 的三位一体。
三、Go+ 怎么发展
第三个大家非常关心的问题是 —— 你能发展起来吗?Go+ 凭什么能够发展壮大,又凭什么实现超越 Go?
第一个我想谈的话题是编程语言的流行密码到底是什么,一门语言凭什么去判断是否会流行,背后到底靠的是什么。
大家都知道 Go 语言是 2009 年发布的,等到 2011 年七牛云成立时才推出了两年的时间,还没有发布 1.0 版本,直到 2012 年 4 月份 Go 语言才发布了 1.0。Go+ 1.0 的发布节奏比 Go 要快得多,我们一年多就发布了1.0版本。
为什么 2011 年 Go 还是婴儿的时候,我们就会认为这个语言未来会非常厉害呢?
我认为判断编程语言的流行密码有几个要点:
第一,价值尺度:从语言价值本身来看这个语言有没有流行起来的潜质;
第二,开源与社区生态:从这个维度来看语言有没有足够大的 “靠山”;
第三,杀手级应用:这门语言能被用在哪里,又可以先从哪个地方突破。
这三个维度,我认为是语言流行密码中最重要的逻辑。
我们先看价值尺度。从价值维度来说我认为这几个点非常重要:
第一点,少就是指数级的多。我超级喜欢这句话,这句话对我的架构或者工程思想的影响是无比巨大的。语言的强大之处不在于有很多的功能,而是在于用足够少的功能去表达足够强大的能力。
就像很多人试图写超级长的 PPT,但我一般评判一个人牛不牛逼,在于你是不是用了足够少的页数把你想表达的事情给讲完了,这个才是最强大的。
Go 语言最核心的价值观就是语言的特性最小化原则,功能少而精。其次就是自然(避免惊讶)。不要有一个语言的特性会让你一楞为什么是这样的,而应该是你看到的时候觉得这个东西就应该是这样的。首先语法要少,其次是要自然,所见即所得,不应该额外通过文档去进行解释。
第二点,学习成本。
学习成本包括两块,第一是入门的门槛有多难,第二是后续的学习成本有多高。Go 和 Go+ 都会坚持一个原则,就是语言要一两周就能学会。这背后受益的其实就是「少就是指数级的多」这一价值尺度,受益于「语言特性最小化」的原则,所以入门的门槛超级低。
语言后续的学习成本,要看未来预期。这句话的意思是,能否使得语言特性保持长期稳定不变,从而降低未来的学习成本。Go 语言未来 20 年大概率不会怎么发生变化,出厂的时候基本就是大家未来预期的样子。这是一个无比重要但也非常难的事情,因为大部分语言是做不到的。
对于 Go+ ,我们希望 Go+ 1.0 的样子就是未来的基本模型,当然数据科学部分我们还会增加一些「料」,但大体上是不会变的,因为我认为从技术视角来说是需要克制的。
在 Go+ 之前,我们看到有两门语言做到了,Go 语言和 C 语言。C 是 60 年前出现的语言,但今天来看和它刚出来的时候的样子是一致的,几乎没什么变化。为什么一门发明于五六十年前的语言在今天仍能排名第一,刚刚才被 Python 拉下来,其实就是因为语言的特性保持了长期的稳定不变。
第三点是性能。一门语言就应该是具备高性能,这一点来说重点是做到润物细无声。它不是需要用户去理解所谓的特性,而是需要自然具备的属性,而不是一个功能。很多语言优化的时候,是需要用户去做额外优化的,而「润物细无声」的意思,就是用最自然的表达方式,天然具备高性能,在不需要额外增加使用负担的情况下,性能越高越好。
这三个特性其实就是一件事:功能越多越强大越好,我花的学习成本越低越好。两者一除,显然所谓的价值尺度其实就是性价比。所有的东西都讲究性价比,语言也是一样,用最小的东西表达最强大的能力。
第二个流行密码,我认为是开源与社区生态。
语言是非常内核的东西,程序员学会一门语言后,让他再去换是非常困难的,所以要有一个让他们换语言的逻辑。Go+ 要发展起来不能没有强大的「爸爸」,我们能不能给自己找个「靠山」?社区生态背后的逻辑其实是这个。
Go+ 采取的是兼容并蓄,继承多重社区生态。我们想在每个领域都找到强大的「靠山」。那么有哪些社区生态需要去兼容、去继承?
首先,工程第一的 Go。在工程领域,我们选择的是兼容 Go,我们的语法特性是兼容的,Go+ 是 Go 的超集。当然我们也坚持刚才说的「语言特性最小化」原则,在 Go 语法特性的基础上,加最小的功能。我们认为 Go 是未来增速最快的语言之一,而 Go+ 会比它发展得更快,并最终超过 Go。
其次,教学第一的 Scratch。我在自己教小孩的时候,真的是非常佩服 Scratch。这个语言出现得非常早,但是厉害在什么地方呢?这个语言功能上来说真的很弱,我相信所有的工程师都瞧不上这门语言,但是有人拿它写《我的世界》。
这很有意思。《我的世界》是超级复杂的游戏,比我们大部分看到的游戏复杂得多。为什么会有人拿 Scratch 写《我的世界》?我当时看到的时候觉得很诧异,但后来理解了。教育这个问题上为什么大家这么内卷,其实就一点大家都非常关心的下一代的教育问题。
为此我们做了什么事情呢?引擎能力和设计兼容 Scratch,并在此基础上实现自动化代码转换。Go+ 的引擎是完全兼容 Scratch 的。这个有什么好处呢?工程师的培养体系里面,最难的一件事情其实是教师人才,老师是比较匮乏的。Scratch 培养了那么多的教学资源,是 Go+ 非常 “觊觎” 的,所以我们选择了兼容 Scratch,来打下进入教学领域的扎实基础。
最后,数据科学第一的 Python。我们做了一个很大胆的决策,这个决策背后的技术实现难度是超级高的,当然今天还没实现,还只是一个牛逼,但是先吹出去再说。
我们计划在 Go+ 做到可以直接 import Python 的包,这用来解决 Go 和 Go+ 在数据科学领域的一个大问题,也就是社区生态的薄弱。Python 数据科学领域的包遍地都是,如果能实现这一功能便能解决了兼容 Python 的问题。目前我们还在构想如何才能实现,我已经琢磨过怎么做,而且是大概率可以实现的。
编程语言的第三个流行密码,就是「杀手级的应用」。
任何一门语言都需要杀手级的应用,Go 的杀手级应用大家都知道了。Go 主打的领域是后端编程领域,今天云计算的基础设施基本都是用 Go 写的,像 Docker,像 Kubernetes。今天云公司没有一个不用 Go 的。云计算的基础设施就是 Go 的杀手级应用。
那么 Go+ 应该从何开始?从哪里开始?我们的杀手级应用是什么?
这个问题我自己思考了很久,我今天的答案其实很简单,我们从工程与 STEM 教育的一体化开始,我们从工程师的培养体系的构建开始。
所以我们的竞争对手是谁呢?是 Scratch。
我们的竞争策略超级简单,第一生态资源兼容,Scratch 的东西我都可以用,能力兼容,我的功能要比它强大得太多了。
第二,我认为是很核心的逻辑,是产学研融合的路——产学研一体化。这个是 Scratch 做不到的,因为在工程界没有人能瞧得上 Scratch。但是这门语言进了语言榜前 20 名,还是很厉害的。
Go+ 要赢 Scratch,至少要进前 20。Go 上个月是第 12 名,我们要赢过 Go,就要进前 10。差不多是这样的逻辑。
和 Scratch 竞争上,我们的竞争口号就是:你不用从一门玩具语言开始学,可以一上来就学一门以后工作需要的一个工程语言。这点我认为 Go+ 是能做到的,高维打低维。从能力上,Go+ 比 Scratch 强很多,性能上更不用说了,剩下来缺的就是师资力量以及整个生态。
对此我自己还是很兴奋的。在今天的发布会前,有非常多的五花八门、不同行业的人找我聊 Go+ 的合作,但我的想法是收敛,有选择性地想先选择和教育相关的人群。我们从工程师的培养体系开始,希望通过这个变革让中国的工程师远远超过其他国家。
大家都知道华为有一个很核心的逻辑,叫做「饱和攻击」。毛主席当年也讲过这个逻辑,军事上最简单的逻辑就是用一倍的兵力打必胜的战斗。《孙子兵法》也有类似的观点,叫「先胜而后战」,要有足够的兵力和足够胜算条件去打必胜的仗。
所有的逻辑都是讲资源的倍数级的关系是胜负的关系。中国要想科技兴国,首先要有比人家多的多的工程师人才,最好是人家的一倍以上。这非常依赖工程师培养体系。Go+ 希望能够承担这个职责。
大家都知道,Go 领域最好玩的一件事情是曾经在网上流传了一个问题:为什么 Go 在中国最火?这个搜索指数远远高于其他国家,这是因为中国工程师的需求量大。如果 Go+ 可以为国家培养有足够多的工程师人才,那么 Go+ 也就必定会进入编程语言榜的前十。
那么,为什么 Go+ 在 STEM 教育里面会有独特的价值?
昨天我和一个朋友吃饭,他给我提起了教育 2.0 的概念。在欧洲比如芬兰和丹麦有一个基于 PPL 的教育 2.0 的教学模式,我听完这个逻辑以后发现跟我提的教育理念超级像。
所以我这里把教育 2.0 沿用过来,它其实也就是我之前一直提倡的编程是新时代的「劳技课」。这个背后的逻辑是什么呢?是让学生学以致用,而不是一直不停地学。
其实学习是非常反人类的,大家都不爱学习。什么样的状况会让一个人会不停地学习?最核心的逻辑就是让他去创造,让他学以致用,让他获得成就感。所以找到学习的乐趣就是让他创造。
我提的新时代的「劳技课」的概念,就是让学生去劳作、去创造,而不是只是不停去学习。从创造中找到自己知识的薄弱点,反过头来饥渴地去学习,去补足自己不了解的知识,这是教育 2.0 最内核的逻辑。
这就解决了教育反馈环太长的问题。为什么家长小孩现在非常焦虑,原因就是教学是非常反人类的事情,家长投资了 20 年,20 年后才能看到结果,才能知道这个孩子到底行不行;小孩学了 20 年,20年后才知道自己行不行。如果你是投资人,你投资会投 20 年吗?不会,早就中途卖出了。
我跟我儿子学校的老师也交流过,我认为编程最重要的不是增加一门课程,他们的压力已经够大了,增加一门课程没有任何意义。核心我们要解决的是教学闭环的问题,这个才是真正实质性解决问题的方法,这就是教育 2.0,我认为是很重要的。
第二个是产学研一体化。产学研一体化最内核的逻辑是把真正的生产力工具推到教育领域,这样就能解决我刚才吐槽的问题——学校教的和公司要的是两码事。
我们只有把工程师用的东西推广到教学领域,让教学真正用起来,才能真正解决学校教的就是企业需要的,企业和学校联动会更紧密,实现在学校阶段的联动。
在今天和学校的联动其实仍然是巨头的专利,大部分公司是没有这样的能力的,如果我们把产学研联动一体化做好,使得所有的公司都能和学校联动,这是我认为解决工程师培育体系、实现产学研一体化很内核的一件事情。如果我们能够把这一点做好,就能把工程师培育体系实现真正革命性的变化。
这张图我想讲内容里面,和 Go+ 有关的最后一页。
「学习的目的,是为了解决现实生活中的问题」,这是我在 2017 年去美国游学的时候,斯坦福校长给我们的演讲,开宗明义谈什么是学习。他们从教育机构角度来看什么是学习,这句话对我的触动非常大。我们学习,到底为什么而学?其实就是要去学以致用,创造,要去解决我们现实中的问题。
四、开源是对知识产权的最大保护
最后,再次感谢大家能够过来捧场,在座大部分人都是技术人员,所以在结束之前,我想和所有的技术创业者聊一个话题 —— 开源对 PaaS 来说是最好的商业模式。
你不能把自己的竞争壁垒放在巨头不会模仿你的基础上。今天我想和大家分享的,是怎么样才能让巨头不会抄?这是很重要的。
首先,「开源是对知识产权最大保护」。关于这一点,我想举一个例子。MySQL 和 SQL Server 是大家都知道的战役,MySQL 比微软的 SQL Server 技术牛吗?其实不是的,MySQL 比微软 SQL Server 技术上还是要「差一点点」的。
但 MySQL 为什么赢了呢?我认为这不是技术的胜利,这是机制的胜利。开源是创造、构建你的竞争壁垒,并且是维持这个竞争壁垒非常重要的手段。
这里其实还有有一个逻辑。开源能够让巨头想抄也抄不了的。
这里首先是心智负担问题。署名抄袭和匿名抄袭的心理压力完全不同,署名抄袭,首先提交代码的开发者会有心智负担,他不愿意被骂。其次巨头大概率也会爱惜自己的羽毛,也会克制一点。相信大家都会有类似的感受,在 BBS 上一实名大家就都不说话了,这就是署名的威力。
其次,巨头它抄了也没用。开源有巨大的虹吸效应,所以开源界很难有第二名,巨头就算抄了以后也是赢不了你的。
我最后分享的内容,可能跟 Go+ 无关,当然它是 Go+ 为什么选择开源的原因。但更重要的一点是,今天是技术创业的好时候,我想从自己作为一个老牌创业者,国内最早的技术创业者的角度,来给大家的一个建议。今天去思考 PaaS 创业,最合理的创业模式就是开源。
谢谢大家!