【老万】后 C++ 演义(第一回、第二回)
第一回
比雅尼喜降生奥胡斯港
老修士神预言救世秃头
奥胡斯港东逝水,
浪花淘尽英雄。
是非成败转头空。
代码依旧在,
几度夕阳红。
秃发异人比雅尼,
惯看秋月春风。
一壶浊酒喜加加。
业界多少事,
都付笑谈中。
-- 调寄《临江仙》
话说天下大势,分久必合,合久必分。万事万物,皆循此理。譬如计算机行业,编程语言层出不穷,各领风骚数年,鲜有能一统天下永立潮头者。而 C++ 语言自呱呱坠地,便矢志演进,时时偷师其它一众语言,自强不息与时俱进,任四十回春去秋来,仍屹立排行榜前列,堪称一绝。如各位看官不弃,小可便将 C++ 之历史未来梳理一番。
溯源 C++,须从二战后之欧洲讲起。
单表西洋有一王国曰丹麦,位处北欧,乃美人鱼之故乡。其三面环海,气候宜人,北望瑞典挪威,南接德意志。那丹麦国定都哥本哈根达斯。提起哥本哈根学派,一众先贤玻恩、海森堡、泡利、狄拉克无不令识文断字之人肃然起敬。丹国人收入颇丰,生活闲适,有丝竹之悦耳,无案牍之劳形。这端的是个修身养性含饴弄孙之好所在。
却说丹麦国都西北有一港城,唤做奥胡斯。此城东临沧海,百草丰茂,集日月之精华,聚天地之灵气,更有往来通商船只络绎不绝,将那万国奇珍汇聚一隅,奥城人得以见多识广,宠辱不惊,亦不乏博学之士。
七十二年之前,那奥胡斯有一夫妇,祖传姓氏斯特劳斯特鲁普,比那斯特劳斯竟然还多出一特鲁普。旧年将逝之时,斯特劳斯特鲁普太太诞下一足月男婴。夫妇二人好不欢喜,给男婴取名比雅尼,比那雅尼竟多了一比。
比雅尼满月之时,天降瑞雪。老斯特劳斯特鲁普夫妇大宴宾客,一时斯府高朋满座,人声鼎沸,热闹非凡。酒过三巡菜过五味,来客依次献词,祝福小比雅尼前程无量。这个曰:公子天庭饱满,必为大福之人。那个道:令郎地阁方圆,势将威震四海。一时间,斯特劳斯特鲁普老俩喜不自胜,连声称谢。
忽有一人上前,朗声道:此子日后必秃!众皆惊诧,何方狂徒如此不识好歹,口出妄言?那老斯特劳斯特鲁普更是一口老血涌上喉头。定睛一看,却是隔壁基督礼拜堂之一老修士。老斯怒曰:
众人正待上前,那修士却微微一笑,道声且慢,于怀中掏出一物,徐徐展开,却是一副绣像,图中七名男子,发量由密渐稀。
修士道:斯老息怒,出家人不打诳语,容我细细道来。列位可知图灵君?众人闻言,面面相觑。修士又言:
图灵君及破壁机
老斯闻此言,怒气顿消,喜极欲泣,将那修士一把拉过,曰:
众人闻之,击节点赞。
那小比雅尼,果然冰雪聪明,自小便博闻强记,举一反三,四乡八里无人不服。却说寒暑更替,斗转星移,不觉比雅尼已及弱冠之年。其人不负众望,折桂于奥胡斯大学。也是上天眷顾,奥大教授克利斯登·奈加特正是面向对象编程技术发明者。他见比雅尼面相清奇,便生了爱才之意,耳提面命,悉心栽培。未几,小比便获数学与计算机科学之硕士。
奈加特日后因其为程序员找对象之卓越贡献喜获图灵奖,暂且按下不表
丹国虽好,难容比雅尼万丈雄心。小比既得硕士,便毅然辞别父母恩师,负笈英伦,追随祖师爷图灵入剑桥去也。凡四年,比雅尼喜提计算机博士学位,意气风发。时西元一九七九年,距图灵君因性向不为社会所容含冤弃世二十又五岁矣。
第二回
离英伦情切切欲成霸业
入贝尔喜加加初出江湖
经二战洗牌,大英帝国渐已式微,美利坚合众国后来居上,赫然新世界之老大矣。却说比雅尼习得屠龙技,便欲卖与帝王家。列位看官,物以稀为贵,是以北京大白菜运往浙江,便用红头绳系住菜根倒挂起来。其时计算机博士之稀缺,远胜于江浙之白菜。这边美国贝尔实验室正欲网罗天下英才,将稀缺资源尽入彀中,那边比雅尼有奇货可居,价高者得,双方一拍即合。比雅尼旋即易洋迁徙,落脚于美利坚合众国之新泽西州。
贝尔实验室放任麾下科学家自由探索,其之于比雅尼,有如海阔任鱼跃。比雅尼亦不负良机,潜心发力,誓将昔年恩师奈加特之面向对象技术推行天下,泽被苍生。
小比深谙曲高者和寡之理。奈师对象虽好,其载体 Simula 语言却是小众,是以世人难亲芳泽。恰似一艳绝天下之女子,招婿以精通埃塞俄比亚语为前提,知难而退者必百之九九。幸喜贝尔实验室卧虎藏龙,数年之前,德尼斯·里奇君于此发明一新编程语言曰 C,问世之初便广受追捧,渐成星火燎原之势。那 C 语言,语法简洁,不似汇编语言之佶屈聱牙,又接地气,善于发掘硬件潜力,未几便编译器遍天下。美中不足,C 语言尚无对象也。
里奇君日后亦获图灵奖,可喜可贺
小比合计:若将奈师对象引入 C 语言,强强联姻,天下英雄谁敌手!便有了借鸡下蛋借壳上市之意。是以着手开发新版带对象之 C,名曰“新C”(new C)。后又更名“带类的C”(C with classes)。研发之初,小比无力从头开发编译器,便使了一计四两拨千斤,造出一工具曰 cfront,能将那带类的 C 源码转换为 C,再借力 C 编译器转为机器语言,妙哉妙哉。
西元一九八三年,带类的C 羽翼渐丰,比雅尼便有了自立门户之意,遂改名 C++,以示其青出于蓝胜于蓝。C++ 号令江湖之大幕,自此徐徐拉开。
各位,科技之创新仰仗高级人才之交流。资讯愈发达,交流愈自由,则创新愈频繁。闭关锁国固步自封终将贻笑大方。若小比恪守父母在不远游之古训,寸步不离奥胡斯,不知世上有 C,纵其为万古一见之天才,亦难获 C++ 之成功。
世上有那食古不化之原教旨主义者,奉祖宗遗训为圭臬,以为一字不可易。殊不知祖宗亦摸石渡河也。河已改道,仍恪守旧制,河水进脑乎!比雅尼是何等睿智人物,超脱于名利之外,不拘于窠臼之中。他尝曰过:吾发明 C++,乃是要解决真实之问题。不管黑猫白猫,但凡符合 C++ 之原则,能为我所用,皆可奉为上宾。如此霸业方可成就。
比雅尼尝将其设计理念分享于世人,曰:
汝当支持多种程序设计风格(过程化程序设计、数据抽象、面向对象、函数式、泛型)。
汝当给程序员多重选择,即使可能引发选择困难症。
汝当兼容 C,以利和平演变。
汝当避免无普遍用途之鸡肋特性。
若某特性需额外开销,汝当确保不用此特性时不需为其买单。
每有改动,比雅尼必以此数原则验之,不符者弃之如敝屣。此诚为老同志治国安邦之定海神针也。
诸位,软件设计如政治之理,极右极左皆致万劫不复。试想比雅尼若一味保守,止步于将奈师对象引入 C 中,C++ 必已被一众后起之秀弯道超车矣。若其放任兼收,则又物极必反,必沦为杂乱无章之一盘散沙。若论 C++ 之具体设计,见仁见智,然其开放又不失规矩之哲学,放之四海而皆准之真理是也。
便有人要问:C++ 果如此牛叉,其他人莫不该洗洗睡去了事?此言差矣。人无千日好,花无百日红。万物皆有其兴衰之理数。四十年来,无数语言前赴后继,以武林至尊为己任,成名者亦不乏其人。C++ 虽借 C 之东风得先发优势,亦负 C 之包袱具先天不足,所谓成也里奇败也里奇。沧海横流,系统编程语言扛把子之争远未落幕。欲知后事如何,且听下回分解。
~~~~~~~~~~
猜你会喜欢:
谷歌新语言 Carbon 能干翻 C++ 吗?- 深入浅出分析 Carbon
程序员护发秘籍 - 掌握这些工作技巧,包你不脱发
程序员的核心技能 - 以脱口秀的方式讲解程序员最重要的技能
如何做出保鲜十年的软件 - 老码农冒死披露行业内幕系列
dongbei 语言满月记事 - 一种基于东北方言的娱乐式程序设计语言
我在谷歌弄啥咧之十四 - 拿奖到手软
~~~~~~~~~~
关注老万故事会公众号:
本公众号不开赞赏不放广告。如果喜欢这篇文章,欢迎点赞、在看、转发。谢谢大家🙏