做技术需要探索精神
最近在看一篇文章,美国计算机学会通讯(Communications of the ACM)期刊 2022 年 5 月第 65 卷第 5 期将发表一篇有关 Go 语言的综述类 Paper:《The Go Programming Language and Environment》。这篇文章的作者是 Go 核心团队,复盘了 10 多年来 Go 的演化发展,深入分析了那些对 Go 的成功最 具决定性的设计哲学与决策。
这篇文章解答了我下面几个疑问:
- Go 的设计起源是什么?
- 在 Google 各种 C++、Java 大神存在的场景下,为什么还需要从语言层面去设计这么一个工具?
- Go 对大规模分布式系统究竟有什么好处,付出这么大努力获得的回报值得吗?
强烈推荐大家都看一遍,英文不好的可以看中文版。
一点感悟
当我第二遍看完这篇文章时,结合近一个月逛技术社区时遇到的一些事,心里突然有点想法,赶紧记录一下。
很多人学习一门新技术、新语言时,总是带着批判的眼光去看,去挑刺这玩意有多少缺点,比如 Go 连 class 都没有,继承也没有等等,殊不知 Go 提倡的是组合思想,根本不需要这东西。或者在某个地方遇到功能不好实现,卡住了不去钻研一下,立马舍弃新方案,用回熟悉的技术,接着吐槽一番还不如 XXX,连这个功能都没有。
他们不是用包容的态度面对它,看看它存在的价值,去了解设计者是为了解决什么问题才创造它。而且他们还会自己找借口,说做项目或产品就应该用成熟的方案,不要冒险,有太多不确定性。初看这个说法非常正确,毫无破绽。可是仔细想想,是不是太过于保守了?未来本来就充满着各种不确定性,无论你准备的多么充分,信心满满,计划还是赶不上变化。成熟的方案,大家都能用,你和别人的区别是什么?如果体验上没有拉开差距,都是同质化的东西,只有看谁更舍得降价了。
我认为,他们太缺乏探索精神了,不要去学。无论做什么事情,意外总是不可避免的。在自己熟悉的领域苦心经营没有错,但是还需要有一颗奋进、求知、好奇 的心。毕竟你都有成熟的方案保底了,为什么不勇敢的去探索一下更优化的方案呢?
这几年电动汽车发展很快,除了知名的大厂特斯拉,还有小规模的理想、小鹏、蔚来,核心卖点都在一个自动驾驶上,所有参与者都是自主研发,即便有百度无人驾驶汽车这样的方案,他们全都不用。这个领域都是新技术,每个厂商都在探索中,而且需要长时间砸大钱,收到的效果还不确定。我从心底里佩服这些厂商,都在上下求索,勇往直前,希望走出一条属于自己的路。
过于保守的人通常年龄偏大,以经验压人,油腻不好学,大厂里面裁员大部分都是这类人。大家一定要远离这类人,不要听他说什么,看他做了什么。浅尝辄止,连门都不入的人不会有什么进步的,只有年龄还在进步。
所谓十年开发,五年经验,不过如此。