程序员观点 – 谁是大英雄?
IPad和IPhone真是太热了,以至于Steve Jobs走了,也成了一件大事件,如果在联合国表决一下给Jobs下个半旗什么的,估计八成是一致通过,即便是卡扎菲/金正日这类牛人多半也不会投反对票吧。看着媒体上那些怀念Jobs的人们,就不由自主地想,那里面会有几个人是或曾经是程序员呢?个人感觉不会有多少程序员会觉得IPad/IPhone,甚至Jobs有多么伟大。因为我相信,程序员多有“打破砂锅问到底”的习惯,人云亦云的情况少。
IPad/IPhone的过人之处,按流行的说法大致概括为时尚+商业模式,这二个词涉及的话题太玄,太多困惑,还是谈点实实在在的东西比较靠谱。在程序员眼里,IPad/IPhone属于IT产品,和PC相比并无特别了不起的技术突破。IT产品无非是软件+硬件。软件离不开硬件,本质上二者可以相互转换而并非绝对互斥的关系,但是,很大程度上应该说,是程序改变了世界,IPad也好,IPhone也好,PC也好,Router也好,Server也好,刨根问底一下,终究不过是一个个“臭皮囊”加上一堆程序而已。这里绝无贬低电子工程及相关制造领域的意思,只是想强调一下软件所扮演的灵魂角色。作为程序员,我个人更想向那些编程领域的先驱和大师们致敬!
如果让我个人准备一个名单用以致敬,我想推荐以下人选:
- 世界上第一个程序员Ada Lovelace女士;
- 发明第一个Compiler的Grace Hopper女士;
- 发明C和Unix的Dennis Ritchie和Ken Thompson;
- 发明第一个OO语言的那二个Norway大师;
- 发明SmallTalk的Alan Kay;
- 发明Java的James Gosling;
- C#首席架构师Anders Hejlsberg;
我猜想在行家眼里,这个小名单一定问题不少,这纯属于个人偏好,以后对软件历史了解多了,也许偏好会不一样吧。我印象中的其他侯选人有:Fortran之父,C++之父,VB之父,JavaScript之父,Python之父,Perl之父,Lisp之父,基于同样的原因,没有入选这个小名单。感谢发明SmallTalk/Java/C#这类语言的人,是因为他们太体贴我们程序员了,而不是一味迁就计算机。更重要的是,通过体贴我们程序员,软件行业生产能力获得了惊人的进步,由此创造的巨大价值就不在这里啰嗦了。下面简单补充一下另外几个入选/不入选的细节:
- Ada Lovelace是诗人拜伦的女儿,曾为计算机先驱Charles Babbage工作-写程序,而且是在19世纪。作为程序员第一人,入选是必须的。
- Grace Hopper发明了第一个Compiler,简单说就是为了体贴程序员,没有Compiler,就只能把自己假想成计算机,直接用机器语言来和计算机对话了。
- Dennis Ritchie和Ken Thompson的入选,相信是不会有人反对的。特别是Unix提供的三大抽象(即Process/VM/IO),太酷了,从而让计算机这个只晓得“加加减减移来移去”的笨牛显得有点高级智商了。
- 二个Norway大师的入选,不是因为他们整的Simula67有多棒,而是因为他们的思想之自然,之清新,历久弥新,简单说OO就是人的套路。
- Alan Kay属于Da Vinci级别的超级传奇,其思想极富原创性,影响之深远罕有匹敌。OOP一词就是Alan Kay所炮制。
- Java/C#的话题这里就不多说了,也许10年后再回顾会更有意思。
- 很多高人用C++整出了不少杰出的软件,但是我猜想现在还喜欢C++的人应该不多了吧。就好像,MS Windows是改变了历史的伟大软件,但是现在还会有多少人喜欢用Win32 API来编程呢?
- 让我犹豫不决的是VB,VB太体贴程序员了,但是太过头了,以至于很多活它坚持罢工,我猜想VB之父八成心里在嘀咕:“这些哪里是人干的活嘛!”。
说起来这个小名单里面,Dennis Ritchie和Alan Kay二位都同Jobs颇有渊源,特别是Alan Kay。 Dennis Ritchie是C语言和Unix之父, Alan Kay是SmallTalk语言之父, SmallTalk衍生自C,而Apple的主要开发语言是C/C++和Objective C,后者衍生自SmallTalk,Apple的操作系统则衍生自Unix。 Dennis Ritchie和Jobs一样也是在这个月去世的,有多少人注意到Dennis Ritchie走了呢? 另外,是Alan Kay在施乐实验室整出来了第一个GUI界面的OS,而Jobs去参观后,借了几台样机,然后的故事就众所周知了。
最后,真诚地向所有有创意并造福人类的人致敬!你们都是大英雄!这个大名单当然得包含Jobs了!必须的!
(按:发明一个杰出的编程语言,既需要精通机器语言,又需要精通人类语言。所以我一直都怀疑那些编程语言大师们都是Neo转世。Neo指的是《The Matrix》中那个被机器代码附体的男主角。据传Bill Gates自比Morpheus,很想知道Jobs喜欢哪一个角色?Jobs擅长打造时尚,颠倒众生,以至于有人卖身卖肾来换一部IPhone/IPad,而Matrix用那个华丽的程序整得人类如醉如痴,以至于Cypher出卖Neo要求回去,总让人觉得这里有点相似的东西......)