C语言春节相亲记

01

只有我没对象

C 语言是位 72 年出生的中年大叔,至今还没有对象。

春节临近,北上广各大写字楼的 Eric、Victor、Candy,纷纷挤上列车,回到了村里的老家,名字又变成了富贵、铁柱、翠花。但 C 语言还是C语言,保持着以往的低调和简单,一个人默默收拾简单的行李,开着那辆跟着他几十年走南闯北的桑塔纳,驶向了故乡的家。

还没到村口,C 语言就遇到了 C++,C++ 的凯美瑞已经升级为卡罗拉,新车一不小心开进了稻田,正发着中华烟,张罗着全村的人过来推一把。刚到村口,又看到了昔日的小伙伴 Java,Java 雅阁已经升级为 A8,此时也已经摇下车窗,把音乐开到最大,逢人就把香烟发,拉着自己新处的对象到处闲逛。经过村口的 CBD,Ada、Basic、Cobol 等一群大妈已经嗑着瓜子,东一句西一句地聊着八卦,等着吃瓜。

C 语言回到家中,见到自己的老母亲 Algol,老母亲又像往常一样,数落着村里的变化:村里的 C++ 对象又生了一个大胖小子,名字叫 Rust,和它的大兄弟 C#,构成了一个完整的家。Java 又新处了一个对象,把原来的对象贬成了接口(接口继承接口,实现多继承),赶回了娘家。就连你兄弟 Object-C 家的大侄子 Swift,今年都把对象领回了家,再看看你,马上快 50了,什么时候才能让我看到对象啊?

C语言不免感叹:不经意间,发现身边的人都有了对象,唯独自己还没有一个完整的家。虽然自己一直信奉着:简单就是美,坚守通用,坚守着宁缺毋滥的原则,但几十年来,周围都在变,唯独自己没有变化。

02

开启相亲之路

C 语言决定开始向现实妥协,在老母亲 Algol 的张罗下,开始了相亲之路。

第一个相亲的对象是 91 年的 Python,刚一见面就没了下文,后来经过多方打听,才知道:人家现在随着 AI 这一波浪潮身价暴涨,成了当红炸子鸡,选对象也开始挑啦,说自己最讨厌带大括号的编程语言啦。

第二个相亲的对象叫 PHP,未婚先育(增加了数据库访问功能),被数据库抛下,带着一个 6 岁大的拖油瓶,还自诩自己是世界上最美的姑娘,想给孩子找一个完整的家。“你可知道,现在生个孩子,养一个孩子有多难,开销有多大?现在白捡一个6岁的大胖小子,什么都省下啦!”在媒婆的再三劝说下,C 语言还是拒绝了她:患有精神洁癖的他,有些事情还是想亲力亲为,不想和数据库有太多的瓜葛和牵挂。

第三个相亲的对象叫 Go,惺惺相惜,简直和 C 语言是一个娘胎里走出来的兄妹俩,价值观类似,品性相差不大。可惜 Go 这个姑娘天生爱“并发”,脚踏 N 条船,更钟情于服务器端开发。C 语言想想还是算啦,毕竟是个 00 后( Go 语言 2009 年上线),代沟太大。

03

好兄弟支招

C语言有点郁闷,拎着二锅头和花生米,找来了昔日的小伙伴 C++、C# 和 Java,商量一下如何破解自己的找对象难题。

信奉超现实主义的 C++ 闷了一口二锅头,拍拍 C 语言的肩膀,满脸通红地说道:C 老兄,你那种理想主义也该改改啦,世界变化太快,发展中遇到的问题要学会用发展的眼光来解决,你看我,为了实现面向对象编程,新增了一个关键字:class,一切不就完美啦。

Java 也不甘示弱,信奉表现主义的他,也在滔滔不绝地向 C 语言兜售自己的人生哲学:在这个流量碎片化,酒香也怕巷子深的时代,要抓住需求,满足需求,学会包装自己,方有自己的一方之地,你看我,面对实际需求,眼花缭乱的设计模式,成熟的企业应用框架,为了解决多继承难题,我又大刀阔斧,不惜忍痛割爱,自我阉割,突破性地将对象弱化为接口,不断寻找新的对象,工作生活两不误,在 TIOBE 编程榜单上,当然是我年年第一啦!

信奉解构主义的 C# 喝了一口咖啡,拍拍 C 语言的肩,此时也慢悠悠地说:在编程语言这个大市场上,表面上看起来是百花齐放,实际上则是以对象为中心的娱乐至死的时代啦,娱乐至死之后,便是赛博朋克的时代,所有的编程语言都 TM 在凡尔赛,哎,只有你老兄最土包,是个例外…

04

智慧老人点化

C 语言很受打击,感觉自己像一只上古的鸭嘴兽,又像故宫里的一个老古董,跟昔日的兄弟们格格不入,自己信奉的生活哲学开始受到质疑和拷打。

C 语言越想越郁闷,来到了村里的老人 Fortran 的家。Fortran 是 C语言的启蒙老师,正在 Fortran 和 Algol 的敦敦教诲下,C 语言才有今天的变化。然而在这个飞速变化的时代,C 语言的心理难免也产生了落差:难道自己被这个时代抛弃啦?

Fortran 看出了 C 语言的疑虑,开始安慰他:还在为对象的事发愁吧,大丈夫何患无妻?只要心中有沙,到哪里都是马尔代夫。OOP 只不过是一种编程思想,唬人的玩意儿,C++、Java 能实现的,你 C 语言也能实现啊:

  • 通过结构体内嵌函数指针实现封装

  • 通过内嵌其他结构成员实现继承

  • 通过函数指针实现多态

Fortran 叹了一口气:在这个求快求变的时代,人心荡漾,保持着原来的初衷确实不容易啊,社会日趋复杂,递若补偿,不过反过来想想,正是你的坚守初衷,保持小而美,保持通用性,才会给其他人塑造无数的可能哈~

Fortran 继续说道:保持简单就是美,保持纯粹,保持自由和灵活,这个才是灵魂啊。你看看隔壁村的 Simula,67年的,50岁的老阿姨了,依然很 romantic,还有信奉唯美主义的 SmallTalk,只要你愿意,不嫌弃,我可以把你介绍给她…

05

初八返程

C语言沉默了,在这个多元化的世界里,在这个快速变化的世界里,是该坚守初心,还是做市场的弄潮儿,当个网红啊?

大年初八,村里的富贵、铁柱、翠花开始陆续返程,又回到了大城市的写字楼里,名字又变成了 Eric、Victor、Candy。

C++、Java、C# 们承载着一年的传统和希望,继往开来,又在张罗着新的对象。C 语言此时也开始重新踏上征程,耳中仍回荡着临行前老母亲 Algol 不断地唠叨:keep it simple, stupid…

以上皆为序,正文来啦:

农历正月初八,公历2021年2月19日,星期五

【宜】出行 入学 开工 领证 搬家 开业

新的一年,祝大家学业有成,工作顺利!

一线原厂驱动开发经验,专门为嵌入式精心打造的嵌入式进阶视频教程,详情请点击:王利涛老师个人店