赞
踩
转一个回答。
链接:https://www.zhihu.com/question/22853451/answer/2084675682
其实现在也越来越发现,C++老是在弄那些语言特性,当然有一些好用的,但是让C++这门语言也越来越臃肿。使得学习成本很高,而且普遍实现某个功能,可以有多个不同的方法,使得代码的统一性不好。
除此之外,C++的标准库和STL库功能太匮乏了,大家都调侃C++就是用来刷LeetCode的,现在C++就是缺一个好的包管理器,不管是标准库还是第三方库,这样可以让C++开发变得更高效率。
C语言:我是搞系统编程开发的,操作系统、数据库、编译器、网络协议栈全是我写的。
PHP:我是搞后端业务开发的,各种网站系统业务系统是我的拿手好戏
Java:我也是搞后端业务开发的,跟楼上抢饭碗的,而且我还能搞大数据分析处理,对了,我还有副业——Android开发。
C#:我跟楼上一样,我也有副业——搞Windows应用开发
Python:我也可以搞后端开发,我也有副业——爬虫,数据分析。
C++:你们说的主业副业我全都能搞!
-------------------------------------------分割线---------------------------------------------
写了10年C++了,对这门语言是又爱又恨。
你说搞上层业务层开发吧,没有Java SSM,C# .NET Framework这么核弹级的豪华配置。
你说搞底层系统开发吧,一堆复杂特性,学习成本巨高不说,一不小心还把自己玩崩。
所以,这就是C++的尴尬。
造成这个尴尬的原因,我一直认为,是C++被两拨人坑了。
一个Python程序员,需要一个基础功能时,百度一下+pip install,几分钟搞定。
一个Java程序员,需要一个基础功能时,百度一下+maven/gradle添加,几分钟搞定。
一个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的公司,不一样在过日子吗?
而这帮子大爷,不思民间疾苦,对语言特性不断推陈出新,语法屌出天际又有何用,到头来用的人越来越少,一切都是零。
(PS:听说C++23会有官方的包管理了,好评一个~)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。