V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
slideclick
V2EX  ›  C++

市面上大部分 c++程序员都在 c++98 水平吧?

  •  
  •   slideclick · 49 天前 · 2351 次点击
    这是一个创建于 49 天前的主题,其中的信息可能已经有所发展或是发生改变。

    不是来踢馆的,我老 c++程序员,在学习 c++20

    这话题贴别的论坛没人看

    大部分人宣称会 c++,其实都是 C

    c++98 是什么水平? 就是需要一大片 n 个对象的内存,使用 vector 而不是 new[n] 可是我猜很多面试官的提问都是 delete[]而不是 delete 才能和 new[]配对

    这面试官自己都没有达到 98 水平

    这烂问题就不该问了

    45 条回复
    slideclick
        1
    slideclick  
    OP
       49 天前
    好冷清。。。
    InkStone
        2
    InkStone  
       49 天前
    没觉得。就我看到的项目里,更后面的用得不多,但 C++11 的特性已经用得比较普遍了。

    new 这个关键字极少出现在现在的代码里。
    slideclick
        3
    slideclick  
    OP
       49 天前
    @InkStone 谢谢分享!
    iaiuse
        4
    iaiuse  
       49 天前 via iPhone
    弱弱问下,一般啥系统用它比较多呢
    slideclick
        5
    slideclick  
    OP
       49 天前
    @iaiuse 2 楼权威啊
    Zarhani
        6
    Zarhani  
       49 天前 via Android
    至少也得掌握到 C++17 ,我觉得 C++11 还是缺胳膊少腿,到 C++17 才相对完美
    Zarhani
        7
    Zarhani  
       49 天前 via Android
    至于那种 C++98 或 C 风格的旧式用法,就应该直接禁掉
    slideclick
        8
    slideclick  
    OP
       49 天前
    @Zarhani 我是看远程工作有个招 c++的 20k 上限,底下有个说你这数顶多找个 c++11.

    底下一堆人说 20k 太低了,然后题主找到了人了很快。

    我是有感而发。我在那个帖子发了更多言,点我可以看到
    chashao
        9
    chashao  
       49 天前
    你说的这种应该叫 C with STL 吧,哈哈
    slideclick
        10
    slideclick  
    OP
       49 天前
    @chashao 对呀,达到我说的用法,还没有到 11 呢
    Youkexin
        11
    Youkexin  
       49 天前
    也不至于感觉, 智能指针, lambda 表达式总归都要用的, promise 这种也常用, 这些特性起码 11, 14 起步, 17 应该是比较主流的现在.

    然后 C++不至于才 20k 吧, 资深一点 50k 应该有的吧, 当然也看行业细分领域, 可能游戏行业芯片行业现在起步薪资高一点? 感觉是
    slideclick
        12
    slideclick  
    OP
       49 天前
    @Youkexin 远程工作版,有个招量化的,已经招齐了,要求会英语,5 年经验,c++ ,会 linux 自己去看应该还在帖子 底下一堆人感慨卷 我分析了低工资的原因 15k-20k
    akakcolin
        13
    akakcolin  
       49 天前
    我觉得自己就是 c++98 水平,实际更偏爱纯 C ,反正也不靠 c++找工作
    kandaakihito
        14
    kandaakihito  
       49 天前
    不懂 C++,我只会写 Java 。但是按照我的经验来看,98 不是比 20 要大吗,难道不应该数字越大越牛逼吗?
    所以楼主的意思是,会用 C++98 的比 C++20 的要牛逼?
    slideclick
        15
    slideclick  
    OP
       49 天前
    @akakcolin 在找工作,有个日本的远程,每周要去日本,要求日语牛逼,上限 25k rmb 年轻人不要学 c++
    fcten
        16
    fcten  
       49 天前
    c++ 的项目大都太老了,老项目要升级到 c++ 20 是很困难的。
    更惨的是,为了支持那些老项目,系统环境和编译工具也没法升级,导致新项目也用不上 c++ 20……
    yosoroAida
        17
    yosoroAida  
       49 天前   ❤️ 1
    @kandaakihito c++ 98 是 C++ 98 年的标准,20 则是 C++ 20 年的标准。。。
    slideclick
        18
    slideclick  
    OP
       49 天前   ❤️ 1
    @kandaakihito 你是对的,java 是 95 年发明的,大部分市面程序员对 c++的理解在上个世纪,这不是程序员的错,这 c++的失败,以至于发明人自己写初学者书,为了劝说 13 楼的 v 友, 你看 java python ruby c#的发明人谁亲自写书
    kandaakihito
        19
    kandaakihito  
       49 天前
    @yosoroAida #17 感谢。。。虽然但是,我只是在玩抽象。。。不过なんとなく还是ありがたく了
    slideclick
        20
    slideclick  
    OP
       49 天前
    @fcten 是,现在还活着的项目,有的连 stl 都没有用
    penguinWWY
        21
    penguinWWY  
       49 天前
    前两年建项目都是 set(CMAKE_CXX_STANDARD 14)
    这两年已经 set(CMAKE_CXX_STANDARD 17)
    不过今年纯 C 写的多
    Jerry23333
        22
    Jerry23333  
       49 天前
    领导说啥我用啥,面试官问啥我学啥,哈哈
    zwy100e72
        23
    zwy100e72  
       49 天前
    我自己应该是 c++17 水平,但模板部分我是不及格的。

    公司里的项目的话还是要看立项的年代,如果是比较早的项目很难有整体重构的机会,时间、人力等都不允许。

    我见过因为看不懂 c++ mangled name 然后把 c++ 重构成 c 的项目...
    OBJECTION
        24
    OBJECTION  
       49 天前
    c++其实有点技术无用论, 因为项目都用到 c++了 说明都比较有历史了。。。 稳定压倒一切。

    老板基本上也只看会不会出问题,顶多都是一些技术方案的改进等
    linzyjx
        25
    linzyjx  
       49 天前 via Android
    我们在用 17
    但高级特性用得不多
    cnbatch
        26
    cnbatch  
       49 天前
    我工作内容基本不靠 C++,只有少数例外。而我的个人项目主要是 C++,版本在 C++14 以上。
    即使是那极少数会用到 C++的工作项目,也是尽量弄到起码 C++17 。

    反正我是拒绝 C++98 的,当初就是嫌弃 C++98 而放弃过一段时间,直到 C++11 出现后才重学重用 C++。
    cnbatch
        27
    cnbatch  
       49 天前
    关于「发明人自己写初学者书」,Python 发明者还真的出过相关的教学书籍,而且不少哦:
    https://www.amazon.com/Books-Guido-van-Rossum/s?rh=n%3A283155%2Cp_27%3AGuido%2Bvan%2BRossum

    C 语言发明人也做过同样的事,出版的书一直到现在还能买得到。
    vituralfuture
        28
    vituralfuture  
       49 天前 via Android
    我实习去的大厂已经升级到 C++20 了
    z1nke
        29
    z1nke  
       48 天前
    我们是 C++17 ,从 C++14 升上来的
    slideclick
        30
    slideclick  
    OP
       47 天前
    @Jerry23333 @cnbatch 你看看人家 26 楼,财(语)务(言)自由。我在找工作,11 的一万就行,98 的我得三万,98 跳 bug 太辛苦
    Jerry23333
        31
    Jerry23333  
       46 天前
    @slideclick #30 是的,老屎山真的不敢碰,所有语言都是。之前在阿里时候那 java8 python2 都是百万行的,根本没法调,根本不敢动
    Jerry23333
        32
    Jerry23333  
       46 天前
    @vituralfuture #28 新的项目一般会用的比较新,老项目基本不敢动。
    hwdq0012
        33
    hwdq0012  
       46 天前
    我的 c++入门是用 c++11 写了一个 json 库, 基于我自己写的 c++静态反射框架, 0 经验 28k offer
    slideclick
        34
    slideclick  
    OP
       45 天前
    @cnbatch 好奇大佬自己啥项目类型用 cpp
    以前有个武大毕业谷歌的,出来创业,
    说离开谷歌原因是大公司弄 c++是因为它机器多,压榨性能可以省很多钱比如电费,
    但是是牺牲了个人。他出来创业用 clojure
    slideclick
        35
    slideclick  
    OP
       45 天前
    @slideclick 他说他在谷歌受不了编译速度,浪费青春。

    其实贝尔的几个人(图灵奖)在朗讯衰落后不喜欢 c++的去了谷歌,也受不了编译,发明了 golang.年轻人,去 golang 吧
    cnbatch
        36
    cnbatch  
       45 天前
    @slideclick 网络 Proxy 类的工具( 2022 年开始做的),需要在 Windows 使用,还需要照顾 BSD 系列,这种情况下 C++是最优解

    尤其是 BSD ,全部自带 C/C++编译器,用 C++就不需要额外安装其他编译器工具链,哪怕为了在某些 BSD (例如 NetBSD )使用 C++新版本引入了高版本编译器,也就改改编译参数的事
    slideclick
        37
    slideclick  
    OP
       41 天前
    @akakcolin 做个笔记回应你的更喜欢 c:

    "1.2024 年了,连个正常的官方包管理器都没有。
    2.没有统一的编译器。


    这些东西除了 C++其他主流现代语言都有了吧。
    本质问题是 C++不是中心化的。


    3.还要兼容 C 。
    会 C++的人还得看得懂 C 代码,还要明白哪些 C 风格代码是不能用在 C++里面的。纯纯的增加负担。用 C 的人看不上 C++,用 C++的人还得自己搞懂 C "
    slideclick
        38
    slideclick  
    OP
       41 天前
    @vituralfuture 不夸张的说,中国互联网使用 c++的只有一家成功的,就是百度,它的行业单一,门槛极高。

    腾讯是做 pc 上的软件起家的,如果它不是碰巧运气好抓住了张小龙当产品经理搞出来 wechat,腾讯今天就会像网易一样偏于一隅于游戏,而已

    如果当年阿里 java 京东 c#有一个选择了 c++,那么 c++那个早就死多少回了
    slideclick
        39
    slideclick  
    OP
       34 天前
    c++将会是最后一个被 ai 代替的岗位
    因为大量 c++98/c-style 污染了训练数据

    其实 js 本来也有这个地位,但是有了 ts 现在
    deetincelle
        40
    deetincelle  
       24 天前
    @slideclick 看看 cursor 吧, js/ts 已经成第一个亡魂了
    ChainLock
        41
    ChainLock  
       17 天前
    楼主用 c++做什么项目
    ChainLock
        42
    ChainLock  
       17 天前
    @hwdq0012 老哥太猛了
    slideclick
        43
    slideclick  
    OP
       16 天前
    @ChainLock 用户态开发。比较难找。很多嵌入式的 jd 写 C++,其实会 C 的工科生就可以干。很多 linux kernel 级别的包括存储基本是 C.

    真正的 c++比如游戏,量化,门槛比较高。
    游戏我没有经验,我也不想干游戏。
    用户态也就剩下音视频,编译器了。后者门槛也高。
    所以我劝年轻人别学 c++
    ChainLock
        44
    ChainLock  
       16 天前
    @slideclick #43 我在学 c++,qt
    wanmyome
        45
    wanmyome  
       15 天前   ❤️ 1
    c++98 是标准不是水平,c++98 完全掌握的码畜水平不低
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3656 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 00:49 · PVG 08:49 · LAX 17:49 · JFK 20:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.