了解当下最流行的编程语言,那你知晓开发者中最不受欢迎的编程语言吗?是因为与时俱进的淘汰,还是“人红是非多”的不喜欢?
近日,全球著名的 IT 网站 Stack Overflow 根据数百万开发者项目标签的使用频率,发布了一份编程语言的调查报告,试图找出最不受欢迎的编程语言。没想到开发者最想规避的编程语言中,PHP、Objective-C 和 Ruby 等语言纷纷上榜。
最不受欢迎的编程语言
在 Stack Overflow 上,开发者可以创建属于自己的“Developer Story”,用来记录项目开发、获得的成就等个人开发经验,相当于简历,待发布之后也可以提升职场机遇。在创建“Developer Story”时,可以添加喜欢或者不喜欢的语言标签,而本调查报告的数据来源正是基于此。

将该数据作为衡量标准,并以特定的编程语言列表(并非是像 Android 这样的平台或是 JQuery 这样的库)进行筛选, Stack Overflow 使用 Bayes 方法来预估这些平均值,最终发现开发者中最不受欢迎的语言前三名分别为 Perl、Delphi 和 VBA,紧随其后的是 PHP、Objective-C、Coffeescript 和 Ruby。

如果此前看过有关 Stack Overflow 的编程语言报告,就会发现,那些很少被标记为不受欢迎的编程语言往往就是使用率快速增长的语言。比如 R、Python、Typescript、Go 和 Rust 等语言增长率都比较高。
下面我们可以通过比较每种语言的增长与标记“dislike”的百分比进行验证,橙色点表示最不受欢迎的语言。以下我们将统计数据限制在发达国家(如美国、英国、德国和加拿大)。

总体而言,语言的增长率与开发者“dislike”的频率之间有一种关系。被标记为“dislike”标签的编程语言占比在 3% 以上的,使用率越来越少,而最少被标记为“dislike”的 R、Rust、Typescript 和 Kotlin 语言使用率都在快速上升。
那些开发者喜欢及不待见的技术
上述分析仅考虑编程语言,而不是操作系统、平台或库。那么什么是开发者最不喜欢的技术?据调查报告显示,开发者最不喜欢的技术包括 Internet Explorer、Visual Basic、Flash、COBOL、Fortran 和 Pascal 。

普遍喜欢的技术则包括:机器学习、Git、Python 3.x、HTML5 和 CSS3 。

值得强调的是,以上并非是对某一语言的歧视,而仅仅是衡量哪些技术在至少一部分开发人员的使用过程中,是让他们感觉到舒服还是负面的。
独立的标签网络
我们可以将所有这些标签组合成一个故事,将其组织成一个网络。在最近的一篇文章中,Julia Silge 展示了如何构建一个技术网络来代表整个软件生态系统。如果我们根据每个“dislike”标签的对节点进行着色,我们可以了解生态系统的哪些部分比其他标签更具争议性。

通过将“Developer Story”标签放在子生态系统中,我们发现有独立的子系统的集群:微软(以C # 和 .Net 为中心)、PHP(WordPress 和 Drupal 环绕),和移动开发(特别是 Objective-C)。操作系统的集群内(右下),我们可以看到,系统如 OSX 和 Windows 被标记为“dislike”,但标签如 Linux、Ubuntu 和 Unix 却并非如此。
技术型的竞争之路
有意思的是,数据还体现了行业中存在的技术型竞争关系,像是 Linux 、OSX vs Windows,Git vs SVN,vim vs emacs ,React vs Angular 等。开发人员通常不愿意使用他们认为过时的东西,建议用更现代的技术来取代。

总结
以上并不表示直接的因果关系,标签不被程序员使用,导致它们被放弃。一种可能性是,如果人们感觉到语言已经越来越受欢迎,就会很乐意公开表达自己的喜欢与不喜欢;另一种原因就是与时俱进,以新的更新替换旧而复杂的编程语言。
对此,在 Hacker News 上网友也发表了自己的看法:
@chrisaycock:
文章定义了开发者在日常工作中编程语言的“喜欢”vs“不喜欢”偏好。例如,Perl 是最不受欢迎的语言,然其真正意义是,开发者将其归入不想要此类开发工作。
分析表明,语言的“喜欢”与其在 Stack Overflow 上的增长之间存在着相关性。 相关性并不是因果关系,这只能意味着开发者所从事的工作会使用较多的热门的语言。
@throwaway2016a:
Python 持续地受欢迎令我惊奇。虽然我喜欢 Python,它也适用于数据科学,但我不明白为什么人们将其用于网站。如果考虑到易用性,并且如果要执行性能,PHP 和 Ruby 生态系统将会更加成熟,Go 和 Java 框架也更好。即使在数据科学世界中,个人也喜欢 R 超过 Python。
@lmm:
Python 和 Ruby 在很多方面较为相似,它们具有相似可用性的简单 Web 框架。个人使用 Python 已经有一段时间了,如果纯粹的作为 Web 开发者选择,那么 Ruby 可能会有一些轻微的优势,但是如果公司中的某个人已经使用 Python 作为系统管理脚本或数据科学项目,那么这足以提升规模。
不知对此,你是否有不一样的看法?

相关推荐
在校大学生网络购物情况调查报告.doc
Matlab领域上传的视频是由对应的完整代码运行得来的,完整代码皆可运行,亲测可用,适合小白; 1、从视频里可见完整代码的内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
训练导控系统设计.zip
员工出差流程参照网络.doc
NX建模实例-USB小风扇外形建模.pdf
内容概要:本文深入探讨了基于滑模观测器(SMO)的永磁同步电机(PMSM)负载转矩扰动控制策略。首先介绍了传统观测器在面对参数变化和外部干扰时的局限性,然后详细讲解了滑模观测器的设计与实现,包括滑模面构造、切换函数设计以及防止抖振的方法。接着,重点讨论了负载转矩估计的具体实现方法,并提供了完整的MATLAB代码示例。最后,通过仿真实验展示了滑模观测器在突加负载情况下的性能表现及其调整技巧。 适合人群:从事电机控制系统设计的研究人员和技术工程师,尤其是对永磁同步电机负载转矩扰动感兴趣的读者。 使用场景及目标:适用于需要提高永磁同步电机抗负载转矩扰动能力的实际工程项目中,帮助工程师理解和掌握滑模观测器的工作原理及应用方法,从而优化电机控制系统性能。 其他说明:文中不仅提供了理论分析,还给出了详细的MATLAB代码实现,便于读者进行实验验证。同时强调了硬件因素如传感器精度和采样频率对控制效果的影响,提醒读者综合考虑软硬件条件。
PDM在汽车产品开发中的应用.pdf
工业监控数据通讯读写时序分析和优化.pdf
# 计算收益率 df['daily_return'] = df['close'].pct_change() self.data = df.dropna() return self.data def generate_signals(self): """生成交易信号""" if self.data is None: raise ValueError("请先预处理数据") df = self.data.copy().reset_index(drop=True) # 确保索引是从0开始的连续整数 df['signal'] = 0 # 0表示无信号,1表示买入,-1表示卖出 # 金叉买入,死叉卖出 df['MA_cross'] = np.where(df['MA5'] > df['MA20'], 1, 0) df['MA_cross_signal'] = df['MA_cross'].diff() # 生成买入信号(金叉) df.loc[df['MA_cross_signal'] == 1, 'signal'] = 1 # 生成卖出信号(死叉) df.loc[df['MA_cross_signal'] == -1, 'signal'] = -1 # 添加止损止盈逻辑 in_position = False entry_price = 0 stop_loss = 0 take_pr
商业银行立体教学平台软件项目三次.doc
内容概要:本文详细介绍了工业运动控制器在自动化流水线中的应用及其核心技术。首先阐述了工业运动控制器作为‘大脑’的角色,能够精确控制各种机械设备的运动,如移栽装配机械手和电子凸轮插补跟踪控制系统。接着重点讲解了自动追剪、飞剪和旋切技术的具体实现方法及其带来的生产效率提升和产品质量改善。此外,文章还探讨了流水线追随工作方式和电子凸轮插补跟踪控制系统的作用,强调了它们在确保生产线顺畅运行方面的重要意义。最后,介绍了视觉定位功能的应用,展示了其在提高生产效率和产品质量方面的巨大潜力。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对运动控制器和视觉定位感兴趣的读者。 使用场景及目标:适用于希望深入了解工业运动控制器及其相关技术在自动化流水线中具体应用的专业人士。目标是帮助读者掌握这些关键技术,从而优化生产线的设计和管理。 阅读建议:建议读者重点关注文中提到的各种技术和应用场景之间的关联,理解工业运动控制器如何通过不同技术手段实现对机械设备的精确控制,并思考如何将这些技术应用于实际工作中。
本数据库主要面向学生用户,经过对用户需求的调研与分析,明确了以下用户对数据库的要求: 学生信息:需包含学号、姓名、性别、专业等字段。 登录信息:应涵盖账号和密码。 课程信息:包括课程号、课程名、选课人数、选课容量以及任课老师等内容。 选课信息:涉及课程号与学生学号。 登录信息:包含账号和密码。 身份验证与登录:系统需为学生创建登录信息,学生在进入系统时,必须通过身份验证,只有当输入的用户名和密码均正确时,才能登录进入系统。 信息查看与操作:学生登录系统后,可以在界面中查看自己的基本信息,同时能够查看课程信息表和个人选课信息表,并且可以进行选课操作。 数据存储与读取:系统采用数据库来存储和读取数据内容。
TRIZ理论在插齿机翻转型工作台上的应用.pdf
单片机实验四报告-外中断实验.doc
SAP R-3系统在一汽大众的应用与研究.pdf
内容概要:本文详细介绍了预瞄跟踪控制算法及其在单点和多点驾驶员模型中的应用,重点讲解了如何利用MATLAB Simulink和Carsim进行联合仿真。文章首先解释了单点预瞄模型的基本原理和实现方法,接着讨论了多点预瞄模型的优势以及其实现方式。文中强调了坐标系转换的重要性,并提供了动态调整预瞄距离的经验公式。此外,文章还探讨了Stanley控制器和Pure Pursuit混合策略的应用效果,特别是在复杂路况下的表现。最后分享了一些实用的调参技巧和注意事项,如转向角单位转换等问题。 适合人群:从事汽车工程、自动驾驶研究的技术人员,尤其是对车辆动力学仿真感兴趣的工程师。 使用场景及目标:适用于需要深入了解预瞄跟踪控制算法原理并掌握其具体实现方法的研究人员和技术开发者。目标是提高车辆在不同驾驶条件下的稳定性和操控性能。 其他说明:文中不仅包含了详细的理论推导和代码实现,还有许多基于实践经验得出的小贴士,有助于读者更好地理解和应用相关技术。
内容概要:本文详细探讨了微电网优化技术及其相关算法的研究,涵盖多种优化方法和技术手段。主要内容包括:(1)使用Yalmip+Cplex进行微电网优化,涉及光伏、风电、蓄电池和电网的协调配置;(2)采用粒子群算法优化微电网及综合能源系统,通过模拟群体行为来提高能源分配效率;(3)运用多目标算法和遗传算法优化综合能源系统,兼顾经济性和环保性;(4)基于遗传算法的光伏出力预测以及风光负荷典型场景生成程序;(5)介绍拉丁超立方抽样方法及其在场景生成中的应用。每部分均配有详细的代码示例,帮助读者深入理解各算法的具体实现。 适合人群:对微电网优化技术和算法感兴趣的科研人员、工程师及相关领域的学生。 使用场景及目标:适用于希望深入了解并掌握微电网优化技术的人士,旨在提供理论指导和实际操作经验,促进可持续能源的发展。 其他说明:文中提供的代码和案例有助于读者在实践中验证所学知识,提升解决问题的能力。
基于ANSYS的拨叉的有限元分析及拓扑优化.zip
单片机课程设计实训报告.doc
内容概要:本文详细介绍了应用于三菱FX3U系列PLC的转盘机控制程序。该程序经过实际设备批量验证,具有高度的稳定性和可靠性。文中对程序的代码结构进行了深入剖析,展示了从启动信号输入到转盘旋转控制的具体逻辑。同时,探讨了程序与其他设备的联动机制,确保了自动化工作的顺利进行。此外,文章还强调了程序的优化过程及其在不同生产环境中的适应性。最后,总结了该程序的实际应用效果,指出其显著提升了生产效率并降低了故障率。 适合人群:从事PLC编程、自动化控制领域的工程师和技术人员。 使用场景及目标:适用于新设备安装和旧设备改造项目,旨在提高生产线的自动化水平和工作效率。 其他说明:本文不仅提供了一款成熟的PLC程序案例,也为未来的程序优化和技术创新指明了方向。