时隔二十年,C++又杀回来了!
大家好,我是轩辕。
今天看到一个IT圈儿的消息:TIOBE发布了2022年度编程语言——C++!
作为一个用了十年C++的老人,颇有一种剑外忽传收蓟北,初闻涕泪满衣裳的激动之情。
熟悉我的读者知道,我的出道语言就是C++,对这门语言可算是又爱又恨,爱的是既能面向对象还能掌控底层大杀四方的优越感,恨的是标准委员会那帮人一天天折腾语法不务实,哀其不幸怒其不争的挫败感。
为什么这么说呢?我曾经在知乎写过这么一段话,引起了激烈的争论:
一个Python程序员,需要一个基础功能时,百度一下+pip install,几分钟搞定。
一个Java程序员,需要一个基础功能时,百度一下+maven+import添加,几分钟搞定。
一个C++程序员,需要一个基础功能时,百度一下,在CXDN找到一个不知名网友分享的源代码,找有积分的朋友下载后导入到工程,一编译128个error,256个warning···
大家不要笑,这是很多C++程序员都曾有过的经历。
窃以为,一门语言除了基本特性之外,最重要的是生态,这跟操作系统是一个道理。国产操作系统不是开发不出来,而是建立一个生态太难太难。编程语言也是一样,提到Java、Python、C#、PHP这些语言,对于你能想到的99%的基础功能,官方都带有现成的,基本不用你去造轮子。
但C++呢,除了一个寒酸的STL和一个同样寒酸的Boost,还有什么?
江湖上,使用C++的各大门派,谷歌、腾讯、百度、阿里、华为,无一不是多年积累下了一套自己的开发生态,轻易不会公布,这也导致了没有官方的东西,民间自立门户,标准难以统一。
C++11的unordered_map没办法叫hash_map和hash_table就是一个很好的例子。
C++急需的是一个远比STL丰富百倍千倍的官方库和一个便捷的包管理工具,一统C++开发江湖。
反观标准委员会这些年做了啥?从C++11、C++14、C++17到如今的C++20,除了增添了少量的最基本的组件(比如智能指针、哈希表、线程等),其他全是TM在折腾语言特性!!!
我不是说新增的语言特性不好,像自动类型推导、新式的for循环、lambda表达式、右值引用等等这些东西都是非常不错的,我也是对其爱不释手。
但这些东西不是C++最紧急的问题,君不见,全世界还有一大票用着C++98的公司,不一样在过日子吗?
而这帮子大爷,不思民间疾苦,对语言特性不断推陈出新,语法屌出天际又有何用,到头来用的人越来越少,一切都是零。
上面这段话是我去年发布在知乎上的,现在看来还是有点偏激,但C++在语言特性上的折腾真是从未停止过。
前段时间看到了一些00后朋友写的C++,我已经差点快认不出来了。
2023年,又来到了C++发布新版本的年份,按照计划,今年将会发布C++23,又会有很多新的特性会被引入进来,但比起特性,我更关心C++有没有给开发者提供新的轮子。
然后我去搜了一下,还是比较失望的,就连之前一直盛传的C++23即将引入官方的网络编程库,又要被放鸽子了。
家人们,你敢想象一个现代编程语言,连自己的网络编程库都没有吗?难怪有网友吐槽道:
吐槽了这么多,不管怎么说,C++重回榜一大哥怎么都是一个好消息,希望C++越来越好吧!
最后附一张过去20年年度编程语言的表,大家从中也可以看到技术发展的历史脉络。
往期推荐