财新传媒
位置:博客 > 王川 > 从编程技术的变迁看程序员的不连续性

从编程技术的变迁看程序员的不连续性

 

1/ 在推特上看到一些资深程序员回顾过去三十多年编程技术的变迁,非常有借鉴意义。
 
2/ 有人说,在 1988年看,有三样技能对于程序员来说最重要。
    C 语言, 图形界面编程, 面向对象编程。
 
3/ 但没有人预测到 1993年浏览器的出现。 1995年之后, 市场上对于会用  HTML编程,会维护 apache server, 会写 CGI 程序的需求大增。 实践中 Perl 和 Python 也是最常用的工具。 Perl 实际上比 Python 更流行。 
 
4/ 到 1998年,微软在浏览器上的市场份额越来越大,一类主流观点是, 下面三样技能对于程序员最重要
ActiveX, OLE (object linking and embedding) ,ATL (Active Template Library)
 
5/ 实际操作上,微软的这套技术框架极为复杂繁琐难懂。打个比方,用 ActiveX/ OLE 写程序,好比放一个屁要脱三次裤子。  ActiveX 还有安全和兼容问题,慢慢很少有人用, 它原来想要实现的功能,都可以轻松被后来的 html5/javascript 解决。
 
6/ 还有人记得九十年代由十几家公司 (惠普, IBM, Sun Microsystem, Apple, 等等) 不遗余力联合推广的分布式编程标准
CORBA (Common Object Request Broker Architecture) 吗?
2002 年后就慢慢销声匿迹了。分布式计算,理论很丰满,实际很骨感。
 
7/ 2006年之后, 亚马逊悄悄地开始了云计算的建设和推广。
 
8/ 2008时,一类主流观点认为, 下面三样技能对于程序员最重要
SOAP (Simple Object Access Protocol) ,Enterprise Service Bus,AJAX with XML  
 
9/ 但实践上, AJAX 不适合后来出现的移动编程应用,还有各种安全和兼容问题。 而 JSON 也远比 SOAP 更灵活好用.
 
10/ 到了 2018年,又有人说,下面三样技能对于程序员最重要
  GraphQL, Web Assembly, Web Components.
 
11/ 如果以史为鉴,他很可能又大错特错。
 
12/ 为谋生而作程序员,和为赚大钱而作程序员,是完全不同的概念,二者有时有重叠,更多时候毫无交集。即使 C/Python/数据结构等学得非常好,并不意味着可以找到满意的工作;编程能力一般,遇上供不应求的强劲增长,也可能收入很高。极少数财务上成功的程序员,基本上是误打误撞,而非事先刻意计划为之。
 
13/ 程序员的财务成功,大多来自公司股票,取决于所供职公司的长期增长幅度。但如果真有预测增长的能力,那就更适合去直接做投资了。这里的悲剧之一是,少数靠运气财务成功的程序员,误以为自己有超常的投资能力,因此跑去大手笔做投资;悲剧之二,外面的观察者,以为他们真是因为编程能力强而发财,因此努力学习编程。大家都在拼命追逐自己误解的目标。
 
14/ 程序员相当于把自己的编程能力,置换成等值的投资者的本金。培养编程能力,就是相当于让自己投入的等值的本金数字高一些而已。
 
15/ 从编程技术的演变史看,形而下的工具之淘汰和不连续性的变迁是必然的,其根本原因往往来自于和工具本身毫无关系的,更高一层的计算平台模式的改变。比如从传统 client-server 计算模式变迁到浏览器为基础的计算模式,从内部软件管理到云计算模式; 从 PC 端计算到移动端应用开发。
 
16/ 但长期具体的预测是困难和徒劳的;掌握一两门技术就可以一劳永逸的想法是完全不现实的;不理解变迁背后的底层逻辑,潮流改变时无法跟上, 则可能是致命的。
 
17/ 至于那些鼓吹小孩从幼儿园就要开始学 Python, 机器学习编程,否则就会输在起跑线上的言论?帮帮忙。



推荐 4