官方服务微信:dat818 购买与出租对接

2021年10月TIOBE编程语言排行榜TOP 20:全球最流行编程语言一览

3万

主题

2

回帖

10万

积分

管理员

积分
109696
发表于 2025-3-4 06:23:09 | 显示全部楼层 |阅读模式
    全世界的编程语言数量众多,达到 600 多种。其中,TIOBE 进行统计的有 100 种。在这些编程语言中,参与排名的有 50 种。而前 20 种编程语言是较为常用的,它们当前正处于流行状态,或者曾经在过去非常流行。

    图1:2021 年 10 月份编程语言排名 TOP 20

    TIOBE 是全球最为著名的编程语言排行榜。它依据互联网上有经验的程序员的数量、课程的数量以及第三方厂商的数量,通过使用搜索引擎等方式统计出排名数据。TIOBE 仅仅能够反映某个编程语言的热门程度,却无法说明一门编程语言的好坏,也不能表明一门语言所编写的代码数量的多少。

    TIOBE 排行榜会每月进行一次更新。你可以通过转到某个特定的地方来查看编程语言的最新排名。

    我一直负责 C 语言中文网的一对一答疑工作。有许多同学询问我,怎样从众多编程语言中挑选出一门适合自己的呢?以及选择的标准又是什么呢?很早之前我就打算写一篇文章来解答这些问题,如今终于实现了自己的愿望。

    要选择编程语言,需先确定开发方向,像网站开发、APP 开发、机器学习、大数据、嵌入式、GUI 软件、算法设计等。编程语言并非万能,一门编程语言仅能胜任一个或几个开发方向,而一个开发方向通常也有多种编程语言可供选择。

    我们首先谈一下开发方向的选择,然后再说编程语言的选择。

    1. 选择开发方向

    选择比努力更重要,只有选定一个契合自身的开发方向,才能够持续地取得进步。对于开发方向,我有着以下这两个选择的标准。

    1) 兴趣

    学习编程是个过程,这个过程很枯燥。它内容多,时间长,成本也高。即便参加全职培训班,至少也要学习半年才能入门,才能够做出一点小玩意。要想成为别人眼中的大神或者编程专家,没有三五年的功夫肯定是做不到的。

    学习编程的过程是艰苦的。如果没有兴趣,很难坚持下去。即便报名了培训班,也可能学不会。因此,我们首先要选择一个自己感兴趣的开发方向。这样做,不但能够快速学习,而且以后还能持续进步。

    我对网站感兴趣。高中时我就有想开发一个属于自己的网站的想法,觉得那非常炫酷。因此,大学时我毫不犹豫地选择了网站开发这个方向。在选择开发方向时,我没有丝毫纠结,我清楚自己必须选择网站开发。

    我的大学专业为电子信息工程,此专业与软件开发几乎无关联。因此,网站开发完全是我通过自学掌握的。我凭借着自身的兴趣一直坚持着,直至如今,我仍在运营 C 语言中文网,成功地将兴趣转化为了职业。

    兴趣是最好的老师,且没有其他能与之相比的。然而,对某事物怀有强烈兴趣的人并不多,大多数人都是处于被动选择的状态。

    此处所说的兴趣,指的是那种别人无法将其撼动的热爱,也是在工作之余能够让你放松的事情。倘若你仅仅只是产生过某种想法,当别人告诉你这个想法不可行时,你就放弃了,那么这最多也只是一时的激情罢了。

    2) 未来发展

    如果你学习编程并非出于兴趣,而是仅仅想要选择一份职业,那么我期望你切入一个具备发展潜力的开发方向。

    每个产业的发展规律都是类似的,都要经历以下几个周期:

    拓荒期 -> 发展期 -> 成熟期 -> 衰落期

    我期望你在产业的发展期切入其中,接着持续地付出努力并进行积累,凭借产业的发展带动你腾飞。倘若站在风口之上,即便只是猪也能够飞起来。

   


    你应该听闻过许多没有背景的人,在短时间内突然变得极为富有,从而引得他人心生羡慕、嫉妒与怨恨。这些人大多是处于一个呈现爆发式增长态势的行业中从而实现翻身的,例如十年前的包工头以及一直热度不减的程序员。

    注意,不要在拓荒期切入一个产业。因为你很可能坚持不到曙光来临,就已经转行或者年老体衰,最终成为别人谈笑中的“烈士”。

    软件开发产业中,GUI 桌面软件已成为过去。APP 和网站已进入成熟阶段。我推荐机器学习(人工智能)和大数据这两个方向,它们均为国家重点扶植的细分产业,并且被写入了十四五规划,未来至少还有十年的发展时间。

    它们相辅相成,难以隔离开。

    我基于 10 年编程经验和 7 年创业过程给出了这些建议。如果你觉得不对,那就当作耳旁风吧。因为我才三十出头,阅历不是很丰富,所以难免会有偏颇之处。

    另外,选择产业方向存在风险,这就如同一次命运的赌博。谁都无法确定这个产业一定能够发展起来,即便它能够发展起来,也难以确定需要多少年,以及能够产生多大的产值。

    人工智能一直被人们所谈论,它已经发展了几十年,到如今依然是“人工智障”,其底层理论并未有本质性的突破。国家将人工智能选为重点产业,投入了海量的资金和人才,各家大公司也纷纷跟风进入。然而,如果底层理论不取得突破,即便过了十年,或许依然是“智障”,只是应用场景增多了。谁都无法穿越到未来,也无法给你一个确定的答案。

    就算一个国家,也会点错科技树,比如:

    产业发展过程中存在诸多不确定因素,我们只能努力去选择一个有前景的产业。

    其实,很多“暴发户”并不知晓什么是产业发展规律。他们只是机缘巧合地踏入了某个产业,刚好赶上了该产业的崛起。我自己当初也不了解互联网,只是对网站怀有兴趣,于是就进入了互联网产业,抓住了 PC 互联网的末端,所以才比其他行业的同学境况好一些。

    我混得好点,并非是因为我足够优秀。而是因为我进入了互联网产业,从而搭上了产业的便车,我只是比我的同学更加幸运罢了。

    2. 选择编程语言

    确定了开发方向之后,便能够选择编程语言了。有些开发方向较为纯粹,仅存在一两种编程语言可供选择;而有些开发方向则较为复杂,有五六种编程语言可供挑选。选择编程语言这一过程着实让人纠结。

    以下是部分开发方向可以选择的编程语言:

    1) GUI 桌面软件

    能开发 GUI 软件的编程语言有很多。其中有传统的编程语言,如 C++、C#、VB 和 Java。也有新晋的选手,像 Node.js。还有小众的易语言,它是一种中文编程语言。

    如果你只是想玩一玩,那么你可以随意选择。只要适合自己就好,而且它上手比较简单。

    如果你想找一份工作,那么建议你学习 C++或者 C#。C#相对 C++来说简单一些。C#只适用于特定平台。C++是一种通用语言,它能够应用于  平台、Linux 平台以及嵌入式平台,所以就业选择较多。

    2)网站开发

    网站开发包含前端和后台。前端指的是用户在浏览器中能够看到的界面。后台则是放置在服务器上的程序。

    前端开发需要学习 HTML,这是必须的,没得选。前端开发需要学习 CSS,这也是必须的,没得选。前端开发需要学习 ,这同样是必须的,没得选。

    后台开发语言种类繁多,有已逐渐式微的 ASP 和 Ruby on Rails,有较为常用的 PHP、Java(JSP)以及 C#(ASP.NET),还有新兴的 Node.js()和 Go 语言。

    如果你想要自己进行玩耍或者开展创业活动,建议你选择 PHP,它的上手过程非常简便。我所使用的编程语言也是 PHP,原因是当时我没有学会 ASP.NET 和 JSP,所以就选择了较为简单的 PHP。

   


    如果你想找一份工作,那么就不要选择已经走进坟墓的 ASP 和 Ruby on Rails 了,因为它们已经没人用了。也不要选择 C#,它只适用于特定平台,而大量的服务器都是 Linux 系统的。同样不要选择某种语言,因为它的实际应用场景并不多。Go 语言主要是用于 Web 底层开发,而非应用层开发。

    Node.js 你自己看着办吧,没法说它一定有优势,它只是适用于不同的场景。

    值得一提的是,在此我们认为 Node.js 与 是等同的。倘若你选择了 ,那么你既可以开发网站前端,又能够开发网站后台,这样就无需学习多种编程语言了。

    3)APP 开发

    这个开发方向较为简单。APP 开发可以使用 Java ,也可以使用其他语言。iOS APP 开发可以使用 -C ,也可以使用 Swift 。

    每种操作系统都具备两种编程语言。其中一种是传统的编程语言,另一种是新晋的编程语言。确定好操作系统之后,就把这两种语言都学习吧。

    4) 嵌入式开发

    通常会用到汇编、C 语言以及 C++。近些年来,还有一些开发板能够提供支持。

    自己玩的话,可以选择 ,上手简单。

    想找工作的话,那就走传统路线吧。要把汇编学了,把 C 语言学了,把 C++也学了。

    只有那些有 Web 开发基础的程序员才会选择 。

    5) 机器学习

    这是一个较为综合的开发方向。初学者通常会从某方面开始搭建模型,在实际的工程应用里,或许需要运用 C++、Java 等其他语言来实现。

    C++ 和 Java 需视情况决定是否学习,而  是必学的,最好也能掌握。

    6) 大数据

    这是一个较为综合的开发方向,相关语言包含 Java、Scala 以及 R 语言。先学习 和 R 语言,至于其余语言则视情况而定。

    我的能力有限,无法对所有开发方向进行深入分析。如果有说得不到位的地方,大家可以留言,也可以在公众号聊天框中反馈给我。

    以上说的只是编程语言方面的内容。除了编程语言之外,大家还需要去学习一些框架或者库,例如:

    你当然要掌握一两种数据库,除了编程语言和框架/库之外。常用的数据库有 MySQL,还有 Redis 等。这里不再对这些数据库进行展开讨论。

    总结

    软件开发是一个大产业,它包含很多细分方向。每个细分方向所使用的技术栈各不相同。要掌握这些技术栈需要经过长期的学习。正因如此,大部分程序员都只在某个开发方向上擅长。而那些被称为多面手的人,要么是学艺不够精深,要么是技术非常厉害的大咖。

    人们迷茫是因为不知道如何选择。这篇文章或许不能让你做出最终决定,但能给你一种别样的视角和标准,有助于你打开思路。
您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|小黑屋|关于我们

Copyright © 2001-2025, Tencent Cloud.    Powered by Discuz! X3.5    京ICP备20013102号-30

违法和不良信息举报电话:86-13718795856 举报邮箱:hwtx2020@163.com

GMT+8, 2025-5-25 18:23 , Processed in 0.110032 second(s), 17 queries .