西西河

主题:随便说说c++的这次吵架 -- tom

共:💬71 🌺370 新:
分页树展主题 · 全看
/ 5
上页 下页 末页
        • 家园 不完全可比

          stl的算法都是基础级的,算法教科书的基本内容,数据结构和对数据结构的操作。几乎所有通用语言都提供。

          但在实现上,提供了一个漂亮的结构和算法语义的垂直正交。

          比如加法就是加法,跟你是什么数据类型无关,而且不仅限于基本整数,实数这种数值类型,还包括抽象意义,比如,可以

          family + =baby

          house += room

          sun += planet

          一方面这种扩展是无限,只要定义好自己的语义,这个代码的写法都是一样的。

          另一方面,你没有用到就不会有代码编译到最终文件。就算你定义了太阳和行星关系的语意,如果你写的是房地产软件,前者的软件代码,编译器会扔掉。

          所以stl的晦涩体现这些问题的解决。而不是算法本身。stl是独一无二的,这是因为c++的template是独一无二的编译期多态。

          Java/.net是运行期模拟其行为,徒有其表。这是语言的基础区别,苹果树上接不出梨。

          微软曾经实现了c++编译到.net, 以为他能做到,所以搞stl.net。他们学到了很重要一课。后来反过来搞.net native.后来...微软已经是印度人公司了,所以...

          通宝推:PCB,
          • 家园 C++从入门到放弃

            我看书看到多态基本就放弃了。从此知当不了好程序员,老老实实写点matlab和perl脚本了。

    • 家园 不明觉厉,师母已呆
    • 家园 现在c++太太太复杂了

      C++最大的问题不是缺少哪些feature,是太多了,应该简化一下,把那些乌七八糟的都去掉。当然,这很不现实。所有工程都是越来越复杂,直到难以为继,推倒重来。

      • 家园 简化有两种

        一种是删除。C++这种使用广度和深度的语言,实际上是超出想象的,有一种说法,这世界是建立在软件之上。如果你认同这种说法,大概率你会认同一种变体表达方式,这世界是建立在软件之上。删除任何一个特性,从而破坏兼容性,后果很难预料。我知道的一个最大的删除,是template export,这还是因为98年标准化以来,只有一个小众编译器实现了这个功能,并且是这家编译器基于自己掌握的被使用情况而提出删除申请的。

        另一种是简化已有的功能的表达方式,为他们提供更现代化的替代方案。这是C++11以来一直采用的主要方式,比如auto之类。

        但这其实是以增加的方式来实现简化,要配套正确的教学方式才能完成目标,否则反而加重了学习量和复杂度。

        比如教汉语,假设人类活得够久,夏商的人还健在,他们教语文先从甲骨文起教到现代汉语,我估计小学都得60年。这几乎是现在的C++教育方式,,从C++98开始。更极端的是只教甲骨文,我被拉进一个微信C++找工作群,好多人还是vc++6.0/MFC,我有一种强烈的非现实感。

        • 家园 深入浅出MFC

          VC6/MFC的流行,我觉得这本书居功至伟。高校课程更新的速度慢的吓人,21世纪初我们上课用的TC4.5

        • 家园 这种恐龙时代的c++程序员会被鄙视的

          本人就是

          去年有个工作相当合适,code test的时候被废了。理由是代码风格太古老,恐怕和现在的成员很难沟通。

          灰心找了几本C++17的书来看,发现与其搞懂这东西,还不如去弄python之类的算了。

          虽然个人仍然喜欢C++,或者是喜欢那种侏罗纪时代的C++, 不过现在相关的职位确实很少, 而且薪水也不咋滴。 除了情怀, 真的不太有理由坚持这玩意儿。

          • 家园 恐龙+1

            不习惯 STL,因为不是必须学会的,也不方便调试

          • 家园 呵呵,恐龙在此

            其实coding风格看实际需要,原有的团队一个风格,你非要和人家不一样,这个很难共事。

            随便哪种风格,除非我太恶心了,基本看看人家代码,都能似模似样的混进去

          • 家园 这可能是C++社区的最大特点之一

            各种原因造成有一种价值判断先于工程实用性的倾向。

            C++与程序员的能力挂钩,一段C++代码,首先的判断是好不好,能不能更好,那样更好,进而对判断写代码的人牛不牛。

            而别的语言写的代码,首要标准是能不能用,功能实现了没有。能用就用呗,扯那么多臭氧层干哈。

          • 家园 俺只编过计算用的

            最早用的fortran,编的我想骂娘,世界上怎么会有这种反人类的语言。

            后来换了matlab,基本什么函数都有,调用就行,感到了世界深深的善意。

            我觉得cpp和java,python对比大概就是就是这个感觉吧。

分页树展主题 · 全看
/ 5
上页 下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河