四种最令人讨厌的编程语言:Java、Javascript、C++和Perl

喜欢就关注我们吧!

TIOBE 12 月榜单已于日前公布,在最新的排行榜中,C 语言仍高居榜首,其次分别是 Java、Python 和 C++。在编程语言这一领域中,许多编程语言都会随着时间的推移而经历人气的激增,以及历史迭代之后的陨落。

为了更好地了解行业发展,TechRepublic 则面向一些行业内的专业人士进行了一次采访,旨在了解最令人讨厌的编程语言是哪些。最后得出的结论为,Java、Javascript、C++ 以及 Perl 名列前茅。

对此,VMware 的工程总监 Tom Hatch 认为,大众对一种语言的讨厌程度与其流行程度成正比,所以往往最讨厌的语言也是最流行的语言,或者说是最有威胁性的语言。

图片:iStock/pcess609

Java

01

有时,开发人员对某一特定语言的特别不屑可能与开发人员对编程语言的熟悉程度有关,而不是对该语言有什么内在的负面情绪所致。Hatch 就表示,虽然他觉得 Java 是一门伟大的语言,但他个人却讨厌 Java。因为 Java 是一种严格执行 OOP 结构的语言,而大多数开发人员都不了解面向对象编程(OOP)结构。

Hatch 称,Java 在 90 年代后期开始就在行业中占据了一个主导地位,并在接下来的时间里一直保持着广受欢迎的态势。但也正因如此,它被许多开发人员深深地憎恨。

另一方面,随着语言流行程度的提高,其对开发人员的技能要求也越来越高且多,这在无形中增加了开发者的压力。一位名为 Monica Lent 的受访者认为,许多开发人员对 Java 抱有强烈的负面情绪,可能正是因为该语言是他们在职业生涯早期第一次接触到的语言。

Lent 称,许多有经验的工程师在大学里学习了 Java 并作为他们的第一门或主要编程语言。某种程度上,Java 所受到的憎恨可能是因为他们将这种语言与学习代码或学习一种新的编程语言的挫折感联系在了一起。

她还指出,大众对 Java 的狂热度正在持续下降。Python 在 TIOBE 的 11 月排名中超过了 Java 这一现象就是有力的论证。

JavaScript

02

JavaScript 在最新的 TIOBE 排名中排名第七,与其在 2019 年 12 月的排名一致。同时,自 2000 年以来,JavaScript 每年的平均排名都处在前 10 位。

nVisium 首席执行官 Jack Mannino 认为,JavaScript 在现实应用中可谓是一团糟。在设计上,JavaScript 鼓励使用全局变量之类的反模式,且 JavaScript 的强制类型转换也常常会让开发人员感到困惑。

Hatch 同样对 Javascript 提出了批评。他表示:“如果无处不在会滋生仇恨,那么 Javascript 就是典型”。Javascript  是唯一可以在网络浏览器中运行的通用语言。这也导致,凡是能被批评的地方,它就会被批评。

Javascript 最初并不是作为一种全功能的语言开发的,更多的是作为 HTML 的脚本扩展。这意味着该语言多年来不得不大量发展。而随着它的发展,生态系统也在发展,引入了越来越多的 Javascript 框架,这就导致了开发人员的疲劳以及难以跟上变化。

Tangram Vision 的首席执行官兼联合创始人 Brandon Minor 更是将 Javascript 描述为 "噩梦"。他表示,虽然该语言提供了最初容易学习的语法,但便利性也就到此为止了。Javascript 用户所感受到的 "痛苦"是编程界其他的语言用户无法比拟的。

C++

03

C++ 是比较受欢迎的编程语言之一,在最新的 TIOBE 排名中位列第四。自 1985 年以来,按照 TIOBE 的排名,C++ 平均每年都会进入前十名,从 1990 年到 2015 年,C++ 的平均排名一直保持在前三名。

Hatch 称,C++ 的受欢迎程度给它招致了来自许多领域的仇恨。具体来说,Hatch 将 C++ 描述为 "C 语言的面向对象扩展",具有 "一望无际的功能"。不过他也指出,随着语言功能越来越丰富,它们也会变得更加混乱。

Hatch 还表示,自己很喜欢 Linus Torvalds 所说的一句话,即“换句话说,要想做好的、高效的、系统级的、可移植的 C++,唯一的方法就是最终把自己限制在所有 C 语言基本可用的东西上”。而这也意味着 C++ 代码往往非常混乱,并且还有许多难以遵循和理解的 C++ 代码库存在。

Perl

04

编程界的不满并不只是针对长期以来的行业主力军。有趣的是,Hatch 还表明,Perl 是他最讨厌的编程语言之一。在最新的 TIOBE 榜单中,Perl 没能进入前 10名,总排名第 14,夹在 Swift 和 Ruby 之间。但总的来说,Perl 在过去的一年里的流行度还是有所增长,其在 TIOBE 的 2019 年 12 月榜单中的排名为第 20 名。

Hatch 称,“虽然 Perl 不再被广泛使用,但 Perl 代码仍在挥之不去”。Perl 通常被称为“Write Only”语言,这种对 Perl 的嘲讽强调了阅读 Perl 代码是非常困难的,即使对于一个经验丰富的 Perl 开发人员来说也是如此。更遑论多年来,Perl 也发生了很大的变化。这就意味着旧的 Perl 代码可能与较新的 Perl 代码之间也存在很大的差异。

CentOS创始人开辟新项目Rocky Linux,并火速上线官网

2020-12-11

谷歌正式开放Fuchsia,网友:这是要狙击华为鸿蒙系统呀

2020-12-11

Docker20.10.0发布!K8s弃用Docker后的首个Docker版本

2020-12-11


觉得不错,请点个在看呀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/306338.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习之数据预处理——特征编码(标签编码,独热编码)

机器学习之数据预处理——特征编码 数据预处理——特征编码离散数据的编码标签编码sklearn LabelEncoder(使用fit_transform函数)sklearn LabelEncoder(反向变换可以用函数 inverse_transform)独热编码sklearn OneHotEncoder机器学习里有一句名言:数据和特征决定了机器学习的上…

微软用的工具,统一财务三大表及高级分析通用模板

虽然罗叔并非财务专业,但大概了解一些财务常识。例如财务报表的三大报表以及一些常见分析等。本月《BI真经》视频课程即将就绪,后续罗叔将和大家开展更多的业务研究。我们知道,PowerBI 在绘制某些报告时候很难,初学者根本无法实现…

文件 单片机_如何查看你写的单片机程序有多大?

单片机我们都用过,我们知道单片机的FLASH有4K的,有8K的,单片机程序我们也写过,但是我们写好的程序有多大,你知道吗?程序写好并编译后生成hex文件,这个hex文件就是要下载到单片机里的文件&#x…

机器学习之数据预处理——数据清洗(缺失值、异常值和重复值的处理)

机器学习之数据预处理——数据清洗缺失值、异常值和重复值的处理 基础知识技术点总结数据列缺失的处理方法1、丢弃(缺失值处理)1、生成一份随机数据2、查看哪些值缺失3、获得含有NA的列4、获取全部为NA的列5、丢弃缺失值2、补全(缺失值处理)1、使用sklearn将缺失值替换为特…

小说中场景的功能_如何让你的小说中的场景转换自如?

很多人很头疼场景、时间转换要怎么办,可以用章节作为转换的过渡,那么章节内呢?我看到最普通的做法就是画分割线,殊不知这种做法在稍微有点阅读功底的读者眼中都是很……怎么说,很没品吗?嗯,或许…

夏虫不可语冰

此次事件让我再次体会到了什么是“夏虫不可语冰”。博客园有些人压根没看完你的文章,带着已有认知断章取义不暇思索上来就是喷。不过,以前也遇到过,现在也慢慢习惯了。对于托管堆内存泄漏的说法,不管认不认同,我还是希…

机器学习之数据预处理——归一化,标准化

机器学习之数据预处理——归一化,标准化 基础知识1.什么是特征预处理2.预处理方法 :3.预处理API:数据的标准化(normalization)和归一化数据的标准化数据归一化1 把数变为(0,1)之间的小数2 把有量纲表达式变为无量纲表达式常用归一化方法最大-最小标准化(MinMaxScaler)Z-s…

css less 不要作用到子对象_使用Less实现网站主题切换

v-easy-components change theme很多初学前端的开发同学一定有一种想法,就是如何更改网站的主题。前年(2018),我也陷入了思考,如何切换网站主题呢?当时不知道less,只想到一种办法,就…

展望2021,Java、Go、.NET,谁主沉浮?

伴随着年底.NET社区活动,近日跟几位微软MVP大佬聊天请益,收获颇丰。程序员都有个话题避不开,就是各编程语言的优劣,大佬们的见识既有意思也有深度,这里为大家整理一下,其中Java、Golang和.NET是讨论焦点。J…

机器学习之数据集划分——训练集测试集划分,划分函数,估计器的使用

训练集测试集划分,划分函数,估计器的使用参考文章训练集、验证集和测试集的划分及交叉验证的讲解划分训练集和测试集的函数学习sklearn数据集,数据集划分,估计器详细讲解参考文章 训练集、验证集和测试集的划分及交叉验证的讲解 …

labuladong 的算法小抄_关于算法笔试的几个套路,一点就透

以下文章来源于labuladong ,作者labuladong我知道各位是被标题吸引进来的,那就不废话,先说几个算法笔试的硬核套路,再说说语言选择和做题复习的策略。避实就虚大家也知道,大部分笔试题目都需要你自己来处理输入数据&am…

TVP两周年:携手同行,让未来可见

TVP两周年2018年12月15日,在北京的腾讯云社区开发者大会上,作为腾讯云构建开发者生态的重要战略,TVP计划正式发布。2020年12月15日,不知不觉,腾讯云TVP已经走过了两度春秋。从0到1的探索,1到10的成长&#…

机器学习日常练习——红楼梦作者分析(聚类)

红楼梦作者分析(聚类) 实验要求实验题目:《红楼梦》作者分析实验目的实验内容资料下载实验过程:问题分析:解决思路:代码:代码一:出现的问题文件编码问题将红楼梦数据,按照章节进行划分(使用到了正则表达式)数据进行标准化处理(最大最小标准化)使用了两种聚类方法(均…

加密封装 怎么把_不要再封装各种Util工具类了,这个神级框架值得拥有!

Hutool 谐音 “糊涂”,寓意追求 “万事都作糊涂观,无所谓失,无所谓得” 的境界。Hutool 是一个 Java 工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让 Java 语言也可以 “…

Oh my God, Swagger API文档竟然可以这样写?

最好的总会在不经意间出现。“作为后端程序员,免不了与前端同事对接API, 一个书写良好的API设计文档可有效提高与前端对接的效率。为避免联调时来回撕逼,今天我们聊一聊正确编写Swaager API文档的姿势。基础Swagger用法在ConfigureServices配…

机器学习之格式变化——reshape(-1,1)

格式变化——reshape函数 知识基础代码知识基础 reshape(行数,列数)常用来更改数据的行列数目 一般可用于numpy的array和ndarray, pandas的dataframe和series(series需要先用series.values把对象转化成ndarray结构) 那么问题来了reshape(-1,1)是什么意思呢?难道有-1行? 这…

vue 前端设置允许跨域_web 前端的一些小问题

关于vue使用axios post发送json数据跨域请求403的解决方法:1. 问题vue开发的时候,使用axios跨域发送请求,同时post发送的数据格式是json格式,发送出去的时候发现控制台报错403,返回的信息提示是跨域的问题,…

如何在 Windows 10 上安装 WSL 2

翻译自 Joey Sneddon 2020年10月30日的文章《How to Install WSL 2 on Windows 10》 [1]如果您想在最新的 Windows 版本中尝试经过改进的 Windows 子系统 Linux 2 (即 WSL 2) [2],要怎么做呢?我们在本文中介绍了安装它所需要做的所有事情。WSL 2 是微软早…

机器学习之超参数调优——超参数调优的方法

超参数调优的方法概述网格搜索随机搜索贝叶斯优化算法概述 对于很多算法工程师来说, 超参数调优是件非常头疼的事。除了根据经验设定所谓的“合 理值”之外, 一般很难找到合理的方法去寻找超参数的最优取值。 而与此同时,超参数对于模型效果…

lnmp无法远程连接mysql_MySQL(一):设置root 可以远程连接MySQL

在mysql在远程主机或虚拟机上时,远程连接mysql数据库一般都使用GUI工具,比如Mac下的Sequel Pro;win和linux下的Sqlyog; 还有大名鼎鼎的Navicat。有人也许会说命令行多好,对着黑黑的屏幕噼里啪啦的一顿敲,屏…