找了一圈,没有 C++的专题,现在这门语言失传了吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dashu88089
V2EX    C++

找了一圈,没有 C++的专题,现在这门语言失传了吗?

  •  
  •   dashu88089 2023-11-20 11:49:13 +08:00 7230 次点击
    这是一个创建于 689 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在编程好像 JAVA 、Python 居多,好像 C++的程序员很少了。
    作为曾经以这门语言为生的程序员,看到这种现象真是有点心酸。
    54 条回复    2024-04-10 14:01:53 +08:00
    leeside
        1
    leeside  
       2023-11-20 12:27:52 +08:00 via iPhone
    岗位少人也少 而且学习难度还是挺大的
    SHIINASAMA
        2
    SHIINASAMA  
       2023-11-20 12:50:23 +08:00
    岗位少,而且感觉对新人的接纳程度比较低,对具体细分方向要求高。24 年 6 月就要毕业,现在还找不到实习...
    dashu88089
        3
    dashu88089  
    OP
       2023-11-20 13:59:35 +08:00
    C++主要做桌面应用端,后端,但貌似现在主流的框架,都是 WEB 端和 APP 端居多了。
    hhjuteman
        4
    hhjuteman  
       2023-11-20 14:20:33 +08:00
    什么专题,不太明白楼主的意思
    lsongzhi
        5
    lsongzhi  
       2023-11-20 14:48:42 +08:00   1
    上知乎或者这里,起个 Rust 引战标题,你就可以钓到野生 C++ 程序员了。
    dashu88089
        6
    dashu88089  
    OP
       2023-11-20 15:19:24 +08:00
    @hhjuteman 就好奇现在程序员中,有多少还在坚持搞 C++。
    dashu88089
        7
    dashu88089  
    OP
       2023-11-20 15:22:01 +08:00
    @hhjuteman 好像版主把我的帖子迁移到 C++这个板块了。哈哈,好奇怪,从首页居然找不到
    hhjuteman
        8
    hhjuteman  
       2023-11-20 15:39:44 +08:00
    @dashu88089 还好吧,有项目经验,基础过硬随便吃饭,人/坑位的比例感觉还好。本 C++程序员觉得 c++20,23,26 的这些东西要是真的搞好了前途一片光明
    dashu88089
        9
    dashu88089  
    OP
       2023-11-20 15:41:05 +08:00
    @hhjuteman 可能每个公司不一样把,我们公司的 C++,好多选择了转 JAVA 、转管理,我就是后者。
    Kikuna3321
        10
    Kikuna3321  
       2023-11-20 15:48:21 +08:00
    一直在吃 C++这碗饭,也没有换方向的打算。桌面端除了一些要求性能的专业软件现在很少走 C++原生开发了,基本都是 web 给你打个包,现在主要是操作系统、游戏引擎这些地方离不了 C++,但很多游戏公司面试的时候通篇 C++,进去可能就是做功能写写 lua 脚本。我念书的时候也没想到自己毕业后入了这个行当,毕竟我大一 C 语言考 40 分的人
    openmm
        11
    openmm  
       2023-11-20 16:10:55 +08:00
    c++岗位少人少,但还是有口饭吃的
    cnbatch
        12
    cnbatch  
       2023-11-20 16:23:49 +08:00
    我主要靠 C# 吃饭,但也写 C++。
    需要做桌面应用时,总会有些地方离不开 C++的。
    ( C++98 除外,我拒绝使用 C++98 )

    我自己的个人项目写得很烂,无论 C++ 还是 C# 都写得烂,为了跨平台索性用 C++。主要是现在 C++ 新标准写起来确实比以往简便了很多。
    mightybruce
        13
    mightybruce  
       2023-11-20 16:34:32 +08:00   1
    c++ 一一直都饭吃,只是水平不到家吃不上饭而已。
    有的开发只能用 c++, 不要提什么垃圾的嵌入式、桌面开发。这在 c++ 中都是末流。

    你用的编译器很多都是是 c++ 做的,比如 jvm , 知道华为、阿里 有专门 jvm 开发团体吗?
    大型服务器负载均衡网关一堆 比如 envoy

    关系数据库基本全是 c++ 为主 比如 mysql, postgresql, oceanbase

    音视频 ffmpeg, live555 一堆了。



    语言只是语言,基础设施开发要求性能的不是 c++, 就是 rust ,其他语言只能做控制平面的东西.
    c++ 基本要求科班,并且像数据结构算法以及操作系统等知识扎实的人才行。



    另外我要告诉你, 只有 c++ 的很多项目才经得住时间考验,像 Live555 都快 20 年了,还在更新被使用。
    AV1
        14
    AV1  
       2023-11-20 16:35:08 +08:00
    失传倒不至于,只是 C++多年以来都是给人以非常难的印象,再加上网络上各种段子,而且 C++相关的更现代一点的入门资料也不多,让许多人望而却步了。
    tool2d
        15
    tool2d  
       2023-11-20 16:36:21 +08:00
    游戏行业完全离不开 c++的,别的语言没办法胜任高性能的需求。

    但是岗位偏少是真的,似乎不太欢迎没经验的新人。
    omniversia
        16
    omniversia  
       2023-11-20 16:37:49 +08:00
    写业务的程序员一般用不到 c++
    Smilencer
        17
    Smilencer  
       2023-11-20 16:39:34 +08:00   6
    用 C++ 的一般没空来这里摸鱼
    InkStone
        18
    InkStone  
       2023-11-20 16:39:37 +08:00
    毕业之后一直在写 C/C++/Rust 。感觉还是挺常用的……底层模块还是跑不掉
    shellcodecow
        19
    shellcodecow  
       2023-11-20 16:42:58 +08:00
    @Smilencer #17 哈哈哈哈
    topLangyu
        20
    topLangyu  
       2023-11-20 16:46:21 +08:00
    编程语言排名上 C/C++使用人数和热度都不低,所以用 C/C++的人也不会少。只是并不在那个圈子。
    mightybruce
        21
    mightybruce  
       2023-11-20 17:01:00 +08:00
    你说的 web 开发,用 c++ 做 属于得不偿失。web 开发是敏捷开发,c++ 一般大工程可不像业务开发那样迭代那么快的。另外 c++ 由于 10 年前等各种历史原因,早就错过了 web 这些。 在前后端分离的这 10 年,才让 c++ 在 web 方面能做,但是这种业务开发要求修改快(比如 java dto, dao 、do 、vo 层,直接填代码),性能并不要求多高(比如 java 业务能有个几百上千 qps 已经是很不错了,netty 的并发也就及格水平)
    xdeng
        22
    xdeng  
       2023-11-20 17:04:36 +08:00
    有可能忙着找 bug
    netabare
        23
    netabare  
       2023-11-20 17:10:06 +08:00 via iPhone   4
    c++不像前后端娱乐圈那样整天整烂活,自然没热度了
    0n2ynu
        24
    0n2ynu  
       2023-11-20 17:10:37 +08:00
    设计有多复杂搞多复杂, bug 要多难找有多难找, 程序员不舒服就不让他舒服, 搞完他自己就会删库跑路.
    dashu88089
        25
    dashu88089  
    OP
       2023-11-20 17:34:12 +08:00
    @mightybruce 总结的很到位!
    rb6221
        26
    rb6221  
       2023-11-20 17:47:22 +08:00   3
    要我说这是 C++自己的固有缺陷
    很多搞底层编程的人天天说,自己写的东西可以几年、几十年不变。这确实很牛逼
    但是有另一面,那就是如果这些东西一直不变,那还需要你来做吗?第一个写完的人基本上就把工作做到 90%了,剩下的只剩修 bug 。所以也没有那么多需求,更没有那么多人去学了。
    那你们为什么还要天天感叹人少呢?这不是双标吗
    EricTing
        27
    EricTing  
       2023-11-20 17:51:33 +08:00
    @0n2ynu 满嘴顺口溜 hhh
    wjx0912
        28
    wjx0912  
       2023-11-20 17:53:47 +08:00   1
    c++太难了,以后传男不传女
    KanzakiHAria
        29
    KanzakiHAria  
       2023-11-20 17:54:40 08:00
    用虚幻的不是用 c++吗?
    Kikuna3321
        30
    Kikuna3321  
       2023-11-20 18:30:48 +08:00
    @KanzakiHAria 原生是 C++,但很多公司会包一层脚本(一般是 lua ),组里大部分都是写脚本做功能的,虽然面试都是考 C++面进去的。
    maxssy
        31
    maxssy  
       2023-11-20 18:31:44 +08:00
    @cnbatch 最近公司让我写上位机程序, 现在啃 C++ primer plus
    maxssy
        32
    maxssy  
       2023-11-20 18:37:32 +08:00
    @Kikuna3321 #10 公司让我写上位机程序, 但是以前没做过桌面端. 但是身边的朋友同事都是写 web 的, 现在独自啃 C++ primer, 能加个 V 吗? 现在好慌啊
    Kikuna3321
        33
    Kikuna3321  
       2023-11-20 18:47:27 +08:00
    @maxssy 你们要求的上位机程序是那种窗口式的桌面应用程序吗,用 C++的话要么用 Windows 原生的 MFC 要么用 QT ,你还得单独学这些 API ,有啥必须用 C 艹的理由吗?最快的其实是用 winform ,直接拖控件 C#写逻辑,上手巨快。C++ primer 适合有一定基础的人看,很多人当词典用的,C++ primer plus 这本书相对没那么难啃
    cnbatch
        34
    cnbatch  
       2023-11-20 19:01:23 +08:00
    @maxssy 如果要求不高,单纯只需要 GUI 程序的话,其实 C# + WinForm 的开发效率会更高。

    我用 C++写桌面程序,更多的是因为会调用到 Win32 API ,像是改桌面背景、动态适配多显示器多 DPI 、管道通讯之类的。

    C# 也能做,只不过我嫌弃 P/invoke 在代码内显得突兀
    stillwu
        35
    stillwu  
       2023-11-20 19:07:19 +08:00
    太应景了吧对我,我前两天刚下决心要认真入坑 C++,这里就来了一篇劝退吗
    cnbatch
        36
    cnbatch  
       2023-11-20 19:13:10 +08:00
    @stillwu 其实你可以继续入坑。毕竟,没试过的话,哪里会知道适不适合自己呢
    mikewang
        37
    mikewang  
       2023-11-20 23:22:22 +08:00   1
    因为 C++程序员比起语言本身,更关注自己领域内的事情。以我个人感受来说,工作里写的 C++也只能说是 C with class ,用到的特性估计占全部的 5%都不到。再加上大家都喜欢造轮子,都不用标准库的函数,就更没有什么好交流的了(笑)
    dayeye2006199
        38
    dayeye2006199  
       2023-11-21 01:39:36 +08:00 via Android
    大厂里面有一堆写高性能计算的,但是写这个玩意儿只会 cpp 也不行,还得懂点高性能计算的一般选择,怎么排查热点之类的技能
    sl0000
        39
    sl0000  
       2023-11-21 08:05:19 +08:00
    搞 C++的基本都会几门外语, 毕竟 C++活少, 开发效率低, 但是某些地方还必须要用.
    CodeTracker
        40
    CodeTracker  
       2023-11-21 08:59:43 +08:00
    找不到 cpp 后端工作的 24 届双非应届生路过,感觉 C++客户端可能入行会好点,后端似乎要求太高。
    dashu88089
        41
    dashu88089  
    OP
       2023-11-21 09:08:41 +08:00
    @CodeTracker 后端有开发经验会更有优势,而且岗位相对应用端少。
    byte10
        42
    byte10  
       2023-11-21 10:01:09 +08:00
    @lsongzhi 笑死。
    nevermoreluo
        43
    nevermoreluo  
       2023-11-21 10:17:12 +08:00
    233333 没看到,大概是大家都在忙于解决各种编译 bug 吧。。。。

    先叠甲,本人至今都不敢说自己会 C++,我就是个调包侠。
    但是 C++写 web ,确实都是眼泪,对于我这种水平一般啥啥脚本语言都调一点的调包侠而言。
    C++的 webframework ,就方便易用性而言离其他语言的 web 框架真的还差好远。
    什么 orm, db merge, middleware, doc 都是稀罕玩意儿,别问公司前辈,问就是之前项目用到很少都是自己手组 HTTP 协议包。。。

    其实就我这种调包侠而言,最痛苦的是至今没有一个合适的包管理。
    注意我说的不是说现在市面上没有包管理,而是百花齐放,vcpkg ,conan ,甚至啥都没有直接 cmake ,make ,grunt 都很好,虽然很多库构建起来有千奇百怪的问题,但我自己开发够用了。
    但是当所有人都统一用一个包管理的时候,我想大抵会减少很多 5 个项目 6 个 json 库 4 个网络库这种奇葩场景了吧
    大抵不会有 grunt 里面大佬 git clone 一把梭,拉下来发现拉到最新的编译不过的问题了吧


    总之,我感觉这东西适合有非常详尽的规范,才好用,其实公司业务使用语言特性 10%都用不到,所以我觉得写代码都是其次的,规范才是重要的,但是我这种非科班自学的,自己的一套都要摸索权衡,遑论规范前辈同事了。
    像我这种调包侠就算会了 C++活少也是有道理的,大佬们的包调的不舒服,自己写出货又很慢,公司再一催 deadline ,只好简单实现功能了事,后来者看到想扩展怕是难的。

    写这么多其实就是吐槽罢了,我也没啥能力改变现状,只能尽量写好文档,搞好 dev flow 省的 n 年后来的人和我一样,拿到项目编译都要一堆事难搞。
    还是学点 rust ,修(死)身(去)养(活)性(来)吧
    c2const
        44
    c2const  
       2023-11-21 10:17:50 +08:00
    现在我 C++只会写 C with class 了 :(
    vincent7245
        45
    vincent7245  
       2023-11-21 12:03:56 +08:00
    还是就业市场有关系吧。

    我们公司桌面端早就放弃 C++了,前段时间把网络层功能都用 Go 重写了。弃用 C++主要原因是:
    1 不好招人
    2 开发成本,包括开发周期和 bug 安全性等问题,C++ 是真比不上其他语言

    现在除了底层或者对性能有极致要求的场景必须用 C++( Rust 这几年也在蚕食 C++市场),其他场景都有更好的替代品,从公司的角度肯定是效率优先,C++ 不受待见也是必然的。
    dashu88089
        46
    dashu88089  
    OP
       2023-11-21 13:50:01 +08:00
    @vincent7245 我们公司架构都换了,以前的架构 C++是主力,现在的架构是 JAVA ,所以走的走,转岗的转岗,挺唏嘘的。
    PaulSamuelson
        47
    PaulSamuelson  
       2023-11-21 14:25:10 +08:00
    做 C++还有时间逛专题、摸鱼?
    th3
        48
    th3  
       2023-11-21 15:00:29 +08:00
    平生求一败而不可得,唯隐居深谷,以雕为友,诚寂寥难堪也
    dashu88089
        49
    dashu88089  
    OP
       2023-11-22 09:08:52 +08:00
    没想到把好多隐藏的 C++大佬炸了出来,看来 C++还是存在的,只是隐藏在各大公司的核心部门中,Hahhha
    maxssy
        50
    maxssy  
       2023-11-22 10:58:45 +08:00
    @Kikuna3321 #33 我现在首先要学如何与串口(RS232)通信, 还有 QT 不是 C++的库吗? 就算 python 能用 QT 是不是也是调用 C++编译好的文件吧?
    Kikuna3321
        51
    Kikuna3321  
       2023-11-22 14:43:14 +08:00
    @maxssy PyQt 其实相当于用 python 在 Qt 上包了一层,API 都是相似的,建议直接用原生 Qt ,照着网上的例子上手写就行,Qt 自带的库其实很丰富,而且 Qt 类( Q 打头的)自带内存管理,使用起来相当还算方便。不过 Qt5 和 Qt6 的 API 不兼容,这个学习的时候要注意
    shermie
        52
    shermie  
       2023-11-28 15:18:01 +08:00
    @stillwu 我已经下了 5 次决心了 这次有了 gpt 应该是真的有决心了 嗯 是的
    levelworm
        53
    levelworm  
       2023-12-05 08:02:32 +08:00 via Android
    @mightybruce 我这种非科班的的确觉得有些难,倒不是语言特别难,而是做的项目都需要有些基础。

    不过也有简单的玩具就是了,比如模拟器啥的。
    achira
        54
    achira  
       2024-04-10 14:01:53 +08:00
    @Smilencer 哈哈哈哈哈哈
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     854 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 21:41 PVG 05:41 LAX 14:41 JFK 17:41
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86