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

到底 2022 年最流行的语言,是 C++还是 JavaScript 啊?

  •  
  •   tool2d · 2023-01-13 21:13:05 +08:00 · 7350 次点击
    这是一个创建于 440 天前的主题,其中的信息可能已经有所发展或是发生改变。
    看了前几天的新闻,TIOBE 发布 2022 年度最红的语言是 C++。

    然而,我查了一下 github 大数据,这几年一直是 JavaScript 提交的代码最频繁最多,当之无愧是属于年轻人的第一语言。

    看了两个结论相反的截图,我陷入了深思。。



    70 条回复    2023-06-06 07:40:49 +08:00
    coetzee
        1
    coetzee  
       2023-01-13 21:38:33 +08:00   ❤️ 20
    2022 年最火的技术是不能离开 C++的,特别是 AI ,C++是必须的,其他都是可选。
    再说一下 JavaScript ,JavaScript 看似火热,其实如同小红书的女孩子一样,表明繁华未必代表真相。

    多提几句编程语言的事儿,C++被大家喷的不行了,这是好事儿,其实 C++是少数几个热门语言中,没有 30 岁以后焦虑的问题,甚至 40 和 50 焦虑也不存在,而前端的编程焦虑其实挺高的,也就是大家疯狂造轮子,但其实你仔细研究下 node.js 的库就知道了,很多库质量非常低,start 看似很多,修复的人却不多。

    反观 C++,甚至更冷门的 FP 语言,你会发现常用代码库的质量非常高,而且用户忠诚度也很高

    追风是好事儿,但是从大环境来看,编程语言的风其实是跟着大环境科技变革来的,前端不会让科技变革更快或者更慢,但是 C++这种硬核语言做的一些技术,却可以让科技变得不同,甚至普通的 qt 开发,你会发现你的可替代性也比前端开发强太多了,人多是好事儿也是坏事儿,但是从一个打工的长生命周期的程序员来看,不会是好事儿,人越多,可替代性越强,代码库质量低,无意义的 bug 和内耗就增多,前端陷入了一种死循环之中

    经济学有劣币驱除良币的说法,但是用咱们这行的行话说就是:worse is better
    orangie
        2
    orangie  
       2023-01-13 21:44:03 +08:00
    前端代码想不开源到最后浏览器里还是能被扒出来,而 CPP 很多都是硬件相关和高性能的,开源的数量少多了,自然 github 上能看到的就少。
    Leviathann
        3
    Leviathann  
       2023-01-13 22:00:10 +08:00   ❤️ 7
    没有比 tiobe 更蠢的编程语言排行榜了
    Rrrrrr
        4
    Rrrrrr  
       2023-01-13 22:00:37 +08:00
    是看任职的人数还是看什么,如果是前者,js 明显打爆 c++
    luob
        5
    luob  
       2023-01-13 22:09:21 +08:00
    c++没有统一的包管理系统,开源了很多人(应该不只是我吧)都不会装,很容易形成负反馈没有人继续开源了(
    tool2d
        6
    tool2d  
    OP
       2023-01-13 22:37:59 +08:00
    @coetzee C++写的东西不好推广,学习成本又高,现在很少有人下载 EXE 了。

    而 JS 稍微写一个产品,挂在网站上,就能直接给全世界的人看了,符合年轻人的快节奏高效率生活模式。

    TIOBE 的排名是按照搜索引擎热度,有点不太科学。只能说 2022 的 C++实在太难学,各种莫名报错,没有 Google 就没办法正常写代码。
    Rocketer
        7
    Rocketer  
       2023-01-13 22:48:59 +08:00 via iPhone   ❤️ 6
    “好”、“火”这样的词太主观了,没什么意义。

    我早年面国内某大厂被挂,就是因为满嘴的“好”。面我的人跟我说:什么叫好?你应该说它 XX 指标高于另一个,XX 指标低于另一个,我们讨论的这个场景更看重 XX 指标,所以 XX 更适合。

    虽然我被挂了,但这次面试使我受益匪浅,对我以后的工作起了指导性作用。

    感谢面试官的直言不讳!
    ljsh093
        8
    ljsh093  
       2023-01-13 23:03:03 +08:00
    @luob 现在不是有 vcpkg 了吗,应该比以前好多了
    neoblackcap
        9
    neoblackcap  
       2023-01-13 23:47:19 +08:00
    @luob C++实际上可以说没有包管理,至少没有统一的包管理。大家实际上要不源码级手动 include(header only),要不就是 include 头文件,然后连接到库文件
    luob
        10
    luob  
       2023-01-14 00:59:24 +08:00   ❤️ 3
    @ljsh093 vcpkg 这玩意就像自动停车功能,它能自动停得进去的场景显然都不需要它
    learningman
        11
    learningman  
       2023-01-14 01:18:42 +08:00 via Android
    js 有没有可能是因为有的人把编译产物也传到仓库里了,bundle 一下,几百万行就来了
    sinxccc
        12
    sinxccc  
       2023-01-14 02:11:31 +08:00
    @luob 传统的 C/C++ 的包管理就是 *nix 。
    dangyuluo
        13
    dangyuluo  
       2023-01-14 03:12:19 +08:00
    纠结这个做什么?
    786375312123
        14
    786375312123  
       2023-01-14 03:22:44 +08:00
    @luob
    @ljsh093

    conan 总可以了吧?
    hello2090
        15
    hello2090  
       2023-01-14 07:25:06 +08:00
    @coetzee 可我 5 年前从 C++ 音视频转到现在 Java CRUD 新水已经是原来 3 倍了
    netabare
        16
    netabare  
       2023-01-14 07:50:38 +08:00
    这个 tiobe 的排名标准是什么,参考性和权威性很强嘛?
    jamezee
        17
    jamezee  
       2023-01-14 08:33:27 +08:00
    @hello2090 我也是
    zjsxwc
        18
    zjsxwc  
       2023-01-14 09:20:22 +08:00 via Android
    现在 c++岗位很多吗?
    openmm
        19
    openmm  
       2023-01-14 09:31:25 +08:00
    TIOBE 把 C++排第一是因为 C++增长率第一吧 +3.563%
    moen
        20
    moen  
       2023-01-14 09:36:42 +08:00
    @netabare 排名标准就是看谁在搜索引擎搜出的结果多,所以一些「提及所属平台或者细分技术比语言名自身多得多」的语言排名会显得低。至于参考性权威性,在营销号看来必定是第一,毕竟可以月月水文章,继续贩卖焦虑
    shawnsh
        21
    shawnsh  
       2023-01-14 09:52:11 +08:00 via Android
    @hello2090 搞音视频的工资低吗
    Mexion
        22
    Mexion  
       2023-01-14 10:07:55 +08:00
    要说火的话肯定是 js 火,什么牛马都能做前端,但是不能做 c++
    andyskaura
        23
    andyskaura  
       2023-01-14 10:27:08 +08:00
    js 和 ts 应该放一起看吧
    acctv2
        24
    acctv2  
       2023-01-14 10:57:03 +08:00
    TIOBE 是基于检索热度的排行榜吧,跟工作岗位数量和语言本身都没太大关系。

    我觉得 TIOBE 前几名的热度完全取决于非职业程序员群体的关注度,比如排第一的 Python 和之前常年靠前的 VB ,都是吃瓜群众捧火的。C 语言长期靠前我觉得也和国内外大多数高校选择 C 作为教学语言有关。

    不过 TIOBE 的横向绝对排名没意义,但是纵向的相对变化确实值得参考,比如 C++关注度的大幅上升。
    zzzkkk
        25
    zzzkkk  
       2023-01-14 11:25:50 +08:00 via Android
    @jamezee
    在国外 哪个国家?
    hello2090
        26
    hello2090  
       2023-01-14 11:28:21 +08:00 via iPhone
    @Mexion 这些牛马前端做得好吗?前端做得好说不定 C++也能做得好呢。除非你能证明他们前端做得好但 C++做不好,不然我看不出你说的有啥意义
    wuhao747003943
        27
    wuhao747003943  
       2023-01-14 11:30:09 +08:00
    js 随着 es6 不断的更新完善,势头确实很猛,C++学习成本太高,学精的人肯定比 js 牛 b 的多!
    zzzkkk
        28
    zzzkkk  
       2023-01-14 11:41:32 +08:00 via Android
    @hello2090
    你在国内 年纪大 java 工作都难找 不要说涨 2 倍
    hello2090
        29
    hello2090  
       2023-01-14 11:53:33 +08:00 via iPhone
    @zzzkkk 那又怎么样? C++都是高智商的在做,嫩还想抢他们饭碗?
    thiiadoewjwe
        30
    thiiadoewjwe  
       2023-01-14 12:32:46 +08:00
    @hello2090 我也是打算从 C++转到 Java 的,请问老哥是辞职专门学的 java 吗,还是怎么找到 Java 的岗位呢,就是这个过渡期是怎么解决的
    DOLLOR
        31
    DOLLOR  
       2023-01-14 13:14:08 +08:00   ❤️ 1
    @coetzee

    JS 其实也是天天被喷年年唱衰的对象,结果反倒越来越火。
    不过要说火热,我倒是觉得 python 才是小红书的女孩子,而 JS 更像是底层搬砖的苦劳工,这个群体人多自然繁华。
    yolee599
        32
    yolee599  
       2023-01-14 13:28:39 +08:00 via Android
    门槛越低的语言越流行,也就是说替代性越强。
    ZhiyuanLin
        33
    ZhiyuanLin  
       2023-01-14 13:32:33 +08:00
    话题性应该是 Rust
    Mexion
        34
    Mexion  
       2023-01-14 13:49:55 +08:00   ❤️ 1
    @hello2090 学几天 vue 可以做前端,学几天 C++可以做什么?前端都是切图仔,C++做的都是高大上,领域也窄,某乎上天天有人问,27 岁 28 岁大专转行做前端可行吗,怎么没几个人问转行做 C++可行吗?前端做的好的确实做 C++也有可能做得好,但是事实就是做得不好的太多
    lrigi
        35
    lrigi  
       2023-01-14 14:11:42 +08:00 via iPhone
    我还以为全世界都用 Python🙃
    jiangzm
        36
    jiangzm  
       2023-01-14 14:18:49 +08:00
    @coetzee #1 热度可以比较, 这两语言本身没啥好比较的。 多余打这么多字,JS 目标不是 C++,C++也干不掉 JS 。
    hello2090
        37
    hello2090  
       2023-01-14 14:37:44 +08:00 via iPhone
    @Mexion 学几天可以 println hello world 啊,这不算 C++?做得不好的太多?你自己见过几个?见过几个前端做得好去做 C++不好的?几个?
    hello2090
        38
    hello2090  
       2023-01-14 14:41:37 +08:00 via iPhone
    @thiiadoewjwe 个人的条件不一样所以适合我的不一定适合你。总的来说脱产不脱产,就看你有多少钱支持你喽,以及你转 java 的决心。钱不够肯定没法脱产,或者没到实在不想搞了,那也可以一边工作一边转。我当时是肯定不想搞 C++了,那要么一边工作一边转,一边辞职全心转,如果兼职都能转成,那辞职肯定更快。当然你也要对自己有个正确的认识,要能看到转了后能找到大概怎么样的工作
    Mexion
        39
    Mexion  
       2023-01-14 14:50:18 +08:00
    @hello2090 println hello world 确实算 c++,前端这么难入门的东西都能学会学个 C++这么简单的东西那确实是简简单单手到擒来,这就是我们前端的含金量😁。我确实没见过几个,至少和你这种大手子肯定是没得比的
    hello2090
        40
    hello2090  
       2023-01-14 15:02:06 +08:00 via iPhone
    @Mexion 如果前端牛马都能做这句话能成立,那世界上任何工作牛马都能做,F1 也是牛马都能开。开慢点不就行了。如果你的所谓做就是打开 ide,往里面敲点东西保存成 js,我看不出为啥 C++不是牛马都能做
    hello2090
        41
    hello2090  
       2023-01-14 15:04:22 +08:00 via iPhone
    @Mexion 再说了,前端和 C++完全是两个不同的领域,你真的见过前端转 C++的?还“事实是做得不好的太多” 没见过没问题,你总不能编造事实吧
    Mexion
        42
    Mexion  
       2023-01-14 15:30:31 +08:00
    @hello2090 我的意思是前端做的不好的太多,不是前端转 c++做的不好的太多,何况一般前端也不会转 C++,我当然没见过几个。不管你承不承认,大多数人肯定不是什么高手,学个前端要比学个 C++要简单不知道多少倍,C++是公认的复杂,而 js 是公认的好入门,就算是写个 hello world ,js 都要比 c++简单的多,又不用搭环境,前端要做的领域也更上层更简单。前端涌入了大量的初级人员,转 C++真的可行吗,我确实没见过,但我也只是发表我的看法是不行,你觉得行就行
    hello2090
        43
    hello2090  
       2023-01-14 16:06:35 +08:00
    @Mexion C++当然也有做的很差的啊,按你的想法是不是 C++做的差的淘汰下来秒杀前端了?我做了 12 年 C++,我反而觉得 js 最复杂,我写了这么多年程序唯一一个没搞懂,根本看不懂的是 JS 的继承,虽然那是因为 js 的继承很烂。前端初级人员转 c++可行吗?我家小孩初中全班第一能上清华么?转了才知道啊,猜没用啊。行不行和语言没关系,和人有关系啊,所以前端做的好的我觉得 C++一样做的好啊,C++做的好的前端也不会有问题啊。

    而且为啥 js 公认的好入门,因为现在 js 的工作多啊,20 年前谁拿 js 入门,30 年前可能都是汇编入门呢,要是现在 C++工作机会和 js 一样多,拿 c++入门的肯定也更多啊。
    bfjm
        44
    bfjm  
       2023-01-14 16:07:15 +08:00 via iPhone
    工作两年多了一直用的 c++ 主要是感觉能学的东西挺多的 学起来也挺有意思的
    Mexion
        45
    Mexion  
       2023-01-14 16:29:27 +08:00
    @hello2090 C++做的差的淘汰下来(不一定)能秒杀前端,但是按着路径学一段时间随便做做肯定是没问题的。语言难度之前还是有区别的,做的好的可能确实互转没什么问题,但是 js 做的差的大概率转不了 C++,C++做的领域更底层要求更高,写个 js 都费劲还是别提其他的了。至于你说的继承,现在不了解什么寄生组合根本不影响日常开发,ES6 以后更是 Class 一把梭,根本没人用那玩意,何况现在都流行函数式基本不用继承,你要挑这种边边角角的说,那 C++边边角角的东西更多了
    hello2090
        46
    hello2090  
       2023-01-14 16:36:02 +08:00 via iPhone
    @Mexion C++淘汰下来的学一段时间前端随便做做? why?
    Mexion
        47
    Mexion  
       2023-01-14 16:39:31 +08:00
    @hello2090 27 、28 的厂妹转行培训班培训一下都能随便做做,做 C++淘汰下来为啥不行,不要瞧不起做 C++淘汰的啊,也不要太看得起前端啊
    hello2090
        48
    hello2090  
       2023-01-14 16:42:04 +08:00 via iPhone
    @Mexion 不是啥叫做你能定义一下吗?你这不好好定义我估计我 7 岁儿子在你口中也算是会做前端了
    oxykr
        49
    oxykr  
       2023-01-14 16:44:50 +08:00   ❤️ 1
    python 虽好,可不要贪杯哦
    hello2090
        50
    hello2090  
       2023-01-14 16:44:52 +08:00 via iPhone
    @Mexion 你这说的仿佛做 C++的在入职之前都做过智商测试似的
    hello2090
        51
    hello2090  
       2023-01-14 16:45:29 +08:00 via iPhone
    @Mexion 做 C++的最低智商 110 ,js 的 90?
    coetzee
        52
    coetzee  
       2023-01-14 17:06:14 +08:00
    统一回复一下,搞不懂现在搞 js 的这么脆了?
    1:js 很重要,但是做 js 的人,可替代性强,年龄越大,可替代性越强,语言很好,技术很好,只是用的人,会越来越不好,除非转行做管理或者别的。
    2:跟 Python 比没有意义,Python 以及普及到 AI 领域和计算领域后,意味着大量非职业程序员会用的语言
    3:有人说自己换 Java 工资多了,首先特例没意义,其次,Java 的确在项目制公司更容易当个“架构师”或者项目经理之类的技术小主管,毕竟业务为王啊,Java 就是公司业务写的最多的那个人,但是,我说的是程序员的职业寿命和焦虑问题,Java 也很严重
    4:只有少数底层系语言才能长青,当然可能不会那么爆发式增长或者有那么多噱头,但所有你觉得 C++难受的地方,同样也是卡主跟你竞争的同行的地方。爽,谁不会呢?简单谁不会呢?用 C++的在持续衰退这是好事儿,此外,语言使用和智商无关(中文和阿拉伯语复杂,中国人和阿拉伯人都聪明?),但是语言的确有上手难度区分( C++上手更难)
    5:我只说同行竞争在职业发展的事儿,不说语言趋势,在我看来,JavaScript 系包括前端不仅不会衰退,只会越来越火,越来越强大,但是需要注意的是,语言的繁荣不代表有利于自己,编程语言选择就是程序员职业方向选择,做好自己判断吧,那些图灵完备语言什么都能做的鬼话先让老板信了再说
    coetzee
        53
    coetzee  
       2023-01-14 17:11:36 +08:00
    @thiiadoewjwe 现在还劝人学 Java 的都是坏,你要是找工作图简单快捷工资高,短期推荐 golang 。不推荐 Java ,同行卷的飞起干的活都是体力活,关键是很多 Spring boy 有着强烈的制度化思维让你感觉到 Java 死板无趣规矩多,会丧失编程乐趣,非常喜欢编程选底层语言,喜欢开发应用产品选 golang 和 js ,别选 Java 和 Python 做转行语言就对了,那个楼里涨了三倍工资的做法,你跳槽到销售,都能看到涨薪 10 倍甚至百倍的人,毫无意义个例
    Mexion
        54
    Mexion  
       2023-01-14 17:11:43 +08:00
    @hello2090 C++做的领域需要更多知识,比如嵌入式开发、操作系统、算法设计、图像处理、音视频等等,入行明显更难,前端学个 vue 或者小程序就能找到工作,工作的上手难度不是一个等级的。
    不要总是谈智商,智商并不能代表什么。
    hello2090
        55
    hello2090  
       2023-01-14 17:28:31 +08:00
    @Mexion 那为啥被淘汰的 C++程序员就一定能干好 JS 呢?
    hello2090
        56
    hello2090  
       2023-01-14 17:29:20 +08:00
    @Mexion 入行更难,所以被淘汰了,这样的 C++程序员一定能干好 JS 吗?
    hello2090
        57
    hello2090  
       2023-01-14 17:36:38 +08:00
    @Mexion 嵌入式开发、操作系统、算法设计、图像处理、音视频 这是 C++领域的要求,是工作的要求,并不就是 C++程序员都能精通一样或者多样啊。按你这说法美国官方语言是英语,美国大部分人英语讲的好的一笔,所以能推出随便找个在美国的中国人出来英语秒杀 90%的中国学生?
    thiiadoewjwe
        58
    thiiadoewjwe  
       2023-01-14 17:49:48 +08:00
    @coetzee 谢谢建议,不过身边也有学了 go 找不到合适岗位的,我之前是做 C++的客户端和图形学,感觉 C++语法太难了,并且细分行业知识,只是让自己更加局限于这个圈子内,因为 C++方向细分的太厉害,不像 java 大小公司城市都有后端岗位。

    想转 Java 也是觉得 Java 的制度化以及标准化在本科学习的时候很喜欢,选择还真的是一个困难的问题
    Mexion
        59
    Mexion  
       2023-01-14 17:50:40 +08:00
    @hello2090 我有说干好?我是说能胜任普通工作。既然他已经工作一段时间,就说明他能勉强胜任该工作的要求,并没有说他精通。其次,你说秒杀 90%,我有说过 90%这个数字?我一直都是说能干,能干就是胜任该领域的工作,而不是说要去秒杀谁,前端门槛低,不需要干好 js 就能胜任普通的工作内容。你一直和我杠真的没意思,我也只是发表我的看法,你一下来就不认可我的观点来杠我和我对嘴也只是浪费双方的时间而已
    SupperMary
        60
    SupperMary  
       2023-01-14 20:30:23 +08:00
    @luob Linux 做成包,Windows 做成 vcpkg 会方便得多,当然对开源的人来说又是一堆工作量。
    hello2090
        61
    hello2090  
       2023-01-14 20:33:28 +08:00
    @Mexion 我就是要杠了,被淘汰的 C++怎么就是能勉强胜任工作的 C++呢?怎么就肯定比 27 ,28 的厂妹干得好呢?凭啥?
    DeWjjj
        62
    DeWjjj  
       2023-01-14 21:38:18 +08:00
    前端切图仔,咋跟做后端开发的比嘛。
    jimages
        63
    jimages  
       2023-01-15 02:57:56 +08:00
    比喻 畅销书等于经典吗?
    statumer
        64
    statumer  
       2023-01-15 05:07:41 +08:00 via iPhone
    js 其实很难,你要成为硬核 js 开发的话需要非常熟悉 v8 优化和 v8 周边的 profiling 工具,才能写出能让 v8 产出高性能机器码的 js 代码。举个例子,eval 有性能问题对很多人来说是个常识,但是 new function(str)作为函数模板对性能有什么样的影响对大多数 js 开发来说就是个未知数了。使用 int32array 作为内存池你还可以手动管理对象的生命周期,只要追求极致性能这种技术都是必须使用的,但是在一个业务实现速度>>>all 的浮躁环境中,你很难保持自己追求这样的一个技术目标。
    Mexion
        65
    Mexion  
       2023-01-15 11:05:42 +08:00 via iPhone
    @hello2090 你杠就是你对啊,毕竟世事没有绝对,你是对的:-D
    haohaolee
        66
    haohaolee  
       2023-01-15 12:10:20 +08:00 via Android
    几十楼只出现一个 rust ,这不合理~
    cardsix
        67
    cardsix  
       2023-02-13 18:49:41 +08:00
    @statumer 这些相关知识点上哪学?
    ugpu
        68
    ugpu  
       2023-02-21 20:09:04 +08:00
    rust 吧 cpp 不得行. 关注语言 关注语言可以用来给我们做点什么. 然而 cpp 更适合学术 研究性 产品及 商用化效率低 所以不被看好吧. rust ?安全吧 至少不会因为新手而崩溃
    abel3345
        69
    abel3345  
       298 天前
    @coetzee 真的半瓶水晃荡响误人子弟,说明你就没体会到 Java 的美嘛。开发大型商业级 web 应用,还有哪个语言比得上 Java 的生态?
    coetzee
        70
    coetzee  
       297 天前
    @abel3345 快别吹了,我就做 Java web 出身的,你自己看看 Java web 卷成什么样子了?还大型商业级 web 应用,你说现在这几个大型商业级应用几个还需要年轻人?你懂不懂什么叫做需求关系?你自己去看看 C++在视频领域和深度学习领域的作用去,我说的难听点,Java web 完全可以被 golang 甚至 PHP 取代,但是 C++永远不会被任何其他语言取代,再去拓宽下自己的领域知识吧,当 Java 的井底之蛙不丢人,丢人的是出来夜郎自大的胡说,Java web 很成熟很好,没人质疑,问题是,商业 web 互联网的风潮过去了,现在去,去给你这种只会 Java web 的老古董当小弟?
    误人子弟的恰好就是你这种 Java 吹
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2869 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 13:01 · PVG 21:01 · LAX 06:01 · JFK 09:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.