首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

TIOBE 4 月编程语言排行榜:Python 让位,老将 C++ 夺回前三,PHP 惨遭抛弃!

  • 24-03-05 03:40
  • 2920
  • 7997
blog.csdn.net

640?wx_fmt=gif

“流水的编程语言,铁打的 Java、C 和 C++,”曾经何时,IT 界一直流传着这样一句话。不过,自从星星之火般的 Python 崛起之后,位于铁三角最薄弱环节的 C++ 开始逐渐被 Python 赶超。

而今在经过了四个月的角逐之后,C++ 终得以回归第三的宝座,不过 Python 表示并不认输!

640?wx_fmt=jpeg

作者 | 屠敏

出品 | CSDN(ID:CSDNNews)

日前,TIOBE 编程语言社区最新发布了 2019 年 4 月排行榜,然在此之际,不少开发者表示对其排行榜的统计方式表示不解,根据 TIOBE 官方解释,月更的 TIOBE 排行榜指数基于全球技术工程师、课程和第三方供应商的数量,其中包括了流行的搜索引擎以及技术社区,如 Google、百度、维基百科、CSDN、必应、Hao 123 等等。具体的计算方式详见:https://www.tiobe.com/tiobe-index/programming-languages-definition/。

不过在此值得注意的是,该排行榜并不意味着语言的好坏,仅是为开发者提供当月编程语言流行趋势的一个参考,以此帮助大家检索自身是否需要进行技能升级或扩展。

接下来,我们将共同探讨本月的主流编程语言变化。

 

640?wx_fmt=png

Python 大涨,但 C++ 势头更猛并重回第三宝座

 

和上个月榜单相比,本月 Top 10 中最大的变化是,C++ 历经四个月之后再次重新回到了第三名,而 Python 位置顺延到了第四。不过,这并不意味着 Python 处于衰退之中,相反,Python 几乎每个月都在创下历史新高。

640?wx_fmt=png

如今 Python 的名次下降侧面衬托出 C++ 当前的流行度以及受欢迎度。而深究其原因,想必与即将到来的 C++ 20 不无关系。此前,C++ 标准委员会 2019 春季会议于夏威夷已拉下帷幕,按照 C++ 20 的发布计划,彼时的会议正式为了冻结 C++ 20 的特性而举办,其中可能增加的重要特性可参考下图:

640?wx_fmt=png

而正因为 C++ 20 的一些特性披露,也为其带来了一些热议,其中,不少开发者表示,C++ 20 中的不少新特性并不能解决最关键的问题,此外,也有网友吐槽:“这下 C++ 的语法需要 2000 页的教程了吧!我记得 C++ Primer 就 1000 多页了!”

不过,根据 TIOBE 官方的评价,C++ 复苏有迹可循。在本世纪初,C++ 的市场份额虽超过了 15%,但是在开发者中却并不太受欢迎,毕竟作为彼时 C++ 新标准 C++ 0x,其复杂性让很多人望而却步。不过好在这种新的语言标准最终于 2011 年被改为 C++ 11,由此 C++ 才变得更简单、安全。如今,C++ 11、C++ 14、C++ 17 也均获得了如 GCC、Clang 和 Visual Studio 等主流编译器的支持,未来,C++ 还会更好。

 

640?wx_fmt=png

PHP 持续下滑

 

本月 TIOBE 编程语言排行榜中,PHP 再度发生了下滑,从上个月的第八名(市场份额2.42% )下降到本月的第九名(市场份额2.239%)。整体而言,2019 年以来 PHP  的发展趋势大不如以前。这也许也与 Python 的全面应用有关,此外,彼时不少创业型团队为了减少开发成本以及加快项目上线,多数会选择性能不错的 PHP 为技术支撑,但随着项目的逐渐扩大以及模块的增多,PHP 在一定程度上就会被弃用。

640?wx_fmt=png

 

640?wx_fmt=png

其他编程语言排名

 

除了以上,苹果应用中主流的编程语言 Objective-C 和 Swift 均有所下降:

  • Objective-C 跌出了 Top 10,占比 1.505%;

  • Swift 下降了两个名次,占比 0.98%。

与之相反,Ruby、Visual Basic 均有所上升。

640?wx_fmt=png

第 51-100 名如下,由于它们之间的数值差异较小,仅以文本形式列出(按字母排序):

  • 4th Dimension/4D, ABC, ActionScript, Alice, Avenue, BBC BASIC, bc, Bourne shell, C shell, CL (OS/400), Clipper, CoffeeScript, Common Lisp, Crystal, Elixir, Emacs Lisp, Factor, Forth, Hack, Haxe, Icon, Inform, Io, J#, Korn shell, LiveCode, Maple, Mercury, Monkey, MQL4, MS-DOS batch, NATURAL, OpenCL, OpenEdge ABL, PL/I, PostScript, PowerShell, Pure Data, Q, Red, Ring, RPG, S, Snap!, SPARK, Tcl, Tex, Vala/Genie, VBScript, VHDL

 

640?wx_fmt=png

Top 10 编程语言 TIOBE 指数走势(2002-2019)

 

640?wx_fmt=png

 

640?wx_fmt=png

历史排名(1998-2019)

 

注:以下排名位次取决于 12 个月的平均值。

640?wx_fmt=png

 

640?wx_fmt=png

编程语言“名人榜”(2003-2018)

 

640?wx_fmt=png

详细榜单信息可参考 TIOBE 官网:https://www.tiobe.com/tiobe-index

如何在短时间内成为Python工程师?

https://edu.csdn.net/topic/python115?utm_source=csdn_bw

【End】

640?wx_fmt=png

 热 文 推 荐 

极客头条

代码重构!你敢吗?

极客头条

ICPC 2019国际大学生程序设计竞赛,中国高校未能夺冠

吃了公司零食被指“偷吃”,外包怎么了?

00后的AI开发者进阶之道:从入门到鏖战MIT编程大赛 | 人物志

分布式架构系列: 负载均衡技术详解 | 技术头条

EOS现状: 72%应用涉赌被列为高危, 说好的诗和远方, 你竟沦落成了这样?

☞刺激!我31岁敲代码10年,明天退休!

 

System.out.println("点个在看吧!");
console.log("点个在看吧!");
print("点个在看吧!");
printf("点个在看吧!\n");
cout << "点个在看吧!" << endl;
Console.WriteLine("点个在看吧!");
Response.Write("点个在看吧!");
alert("点个在看吧!")
echo "点个在看吧!"

640?wx_fmt=gif点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

640?wx_fmt=png你点的每个“在看”,我都认真当成了喜欢640?wx_fmt=png

CSDN
微信公众号
成就一亿技术人

Jsonix 是基于 Go + Fiber 开发的一套全新的框架,使用 dig 注入的模式进行全局数据处理, 旨在规范代码和提高项目开发效率。

该框架提供了一系列命令行工具(CLI),用于服务管理、项目初始化、代码生成以及自动化数据库迁移等任务。采用模块化设计,支持 controller、service、repository 等代码结构快速生成,并集成了丰富的功能模块, 在 controller、service、repository 使用 cli 生成的时候会自动在module文件中进行注入。

详细文档

github

主要功能

  • CLI 工具支持。

  • 基础 web 功能支持。

  • fiber 框架支持。

  • apifox 自动上传支持。

  • swagger 生成支持。

  • gorm 数据库 ORM 支持。

  • redis 缓存支持。

  • i18n 国际化支持。

  • logger 日志支持。

  • cors 跨域支持。

  • jsonix 热重载支持。

  • dig 依赖注入支持。

  • 配置文件读取支持。

  • 提供多个基础配置:

    • ApifoxConfig
    • CorsConfig
    • I18nConfig
    • LogConfig
    • MysqlConfig
    • RedisConfig
    • SwaggerConfig
    • SystemConfig

CLI

bash
代码解读
复制代码
$ jsonix --help Usage: jsonix server Options: -e, --env 设置当前服务运行环境 (dev, prod, test) -w, --watch 启用配置文件热重载 -s, --show 查看指定端口是否被占用 -k, --kill 杀死指定端口的进程 -h, --help 查询文档 Usage: jsonix gen 注: module 的生成需要在你的app目录运行(文件结构可参考下方), 其他的生成需要在 module 目录运行 Options: -m, --module 指定模块名称 -s, --service 生成服务代码 -c, --controller 生成控制器代码 -r, --repository 生成仓库代码 -e, --entity 生成实体代码 -o, --override 覆盖已存在的文件 -h, --help 查询文档 Usage: jsonix migrate 生成数据库自动迁移文件(注: 需在根目录执行, 当然也可通过参数自定义) Options: -r, --root 指定项目根目录 -d, --dest 指定自动迁移文件输出目录 -h, --help 查询文档 Usage: jsonix init 初始化项目 Options: -h, --help 查询文档

配置文件读取

因为我是一个前端开发出身, 因此我比较喜欢前端的那种支持不同环境的配置文件和本地的配置文件做法, 因此我在golang开发的时候也做了一个合并处理。当前规范如下:

markdown
代码解读
复制代码
├─ config │ ├─ config.yaml │ ├─ config.dev.yaml │ ├─ config.dev.local.yaml │ ├─ config.test.yaml │ ├─ config.test.local.yaml │ ├─ config.pro.yaml │ └─ config.pro.local.yaml

当然, 文件夹和文件也可以根据自己喜好自己命名, 也可以支持toml类型文件读取, 但是目前尚未支持nocos的使用, 后期将逐步支持。

文档生成

当前还是需要使用swagger的方案去写文档注释, 不过可以通过配置选择是使用swagger、apifox还是openapi

项目文件结构

bash
代码解读
复制代码
├─ .vscode # VSCode 推荐配置 ├─ .run # GoLand 运行命令 ├─ apps # 应用模块 │ ├─ example # 示例模块 │ │ ├─ controller # 控制器 │ │ ├─ repository # 仓库 │ │ ├─ service # 服务 │ │ └─ entry # 入口文件 │ └─ ... # 其他模块 ├─ auto_migrate # 自动迁移目录(可通过 jsonix migrate 命令生成, 无需改动) │ └─ ... # 自动迁移文件 ├─ config # 配置文件目录 │ ├─ config.yaml # 配置文件 │ ├─ config.dev.yaml # 开发环境配置 │ ├─ config.test.yaml # 测试环境配置 │ ├─ config.prod.yaml # 生产环境配置 │ ├─ config.local.yaml # 本地环境配置 │ ├─ config.dev.local.yaml # 开发本地环境配置 │ ├─ config.test.local.yaml # 测试本地环境配置 │ ├─ config.prod.local.yaml # 生产本地环境配置 │ ├─ regexes.yaml # uaparser 配置文件 │ └─ ... # 其他配置文件 ├─ configs # 配置文件实例目录 │ ├─ configs.yaml # 全部配置实例 │ └─ ... # 其他配置实例文件 ├─ core # 核心模块目录 ├─ docs # swagger 文档目录 ├─ locales # 语言包目录 ├─ logs # 日志目录 ├─ middleware # 中间件目录 ├─ tmp # air 启动临时文件(不要改动, 不要提交) ├─ utils # 工具函数目录 ├─ .air.toml # air 配置文件 ├─ main.go # 主函数 ├─ go.mod # Go 模块文件 └─ go.sum # Go 模块文件
注:本文转载自blog.csdn.net的CSDN资讯的文章"https://blog.csdn.net/csdnnews/article/details/89117617"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top