Kotlin或将超越Go?

news2024/11/18 9:39:29

知名软件行业分析公司 RedMonk 发布了 2022 年 6 月(第三季度)编程语言排行榜。

RedMonk 编程语言排行榜通过追踪编程语言在 GitHub 和 Stack Overflow 上的代码使用情况与讨论数量,统计分析后进行排序,其旨在深入了解潜在的语言采用趋势。该榜单一年发布两次,这是今年的第二份榜单。上一次榜单发布是在 3 月份,即第一季度编程语言排行。

目前 RedMonk 对编程语言的排序算法基本思路没有变化,但是具体的数据收集方式改变了。现在使用 GitHub Archive 作为数据源对 GitHub 数据进行分析;而 Stack Overflow 部分则直接使用其提供的实用工具 data explorer,具体排序算法见官方介绍。

下图是 Q3 的编程语言排行情况:

排名前 20 的编程语言为:

1 JavaScript
2 Python
3 Java
4 PHP
5 C#
6 CSS
7 C++
7 TypeScript
9 Ruby
10 C
11 Swift
12 R
12 Objective-C
14 Shell
15 Scala
15 Go
17 PowerShell
17 Kotlin
19 Rust
19 Dart

恰如往常,榜单中的排名变动越来越少。RedMonk 方面称,正如之前所猜测的那样,似乎有越来越多的证据表明,有关编程语言使用的暂时平衡的假设是正确的。榜单中的 “新兴语言” 也都有了一定的年纪,譬如 Go 发布距今已有 13 年的历史;Rust,12 年;Dart 和 Kotlin 11 年;TypeScript,10 年;甚至相对年轻的 Swift 也已经面世八年了。

期望一种新语言在这些排名中表现出色是不合理的。它们本质上是递增的,要从长远使用和讨论方面看才更有利。但有趣的是,我们 RedMonk 并没有真正遇到许多新兴的编程语言,只有少数例外,比如 Ballerina——5 岁,排名第 87 位。

当然,这并不是说编程语言的进化已经完成或将完成。不管是好是坏,我们的行业都是一个致力于不断改造的反复无常的行业。但它确实表明,目前,行业创新集中在编程语言以外的领域,我们可能已经对可供开发人员使用的各种语言达成了相对的 —— 可能是暂时的 —— 满足感。

RedMonk 对此次排行榜中个别编程语言的排名变化进行了分析和点评:

  • TypeScript (1):长期以来,TypeScript 一直是崛起最迅速的语言之一,也是为什么与流行的现有语言的互操作性可以极大地促进使用和采用的典型例子之一。但近期以来,TypeScript 在该榜单中的排名却总是停滞不前。在过去的三轮调查中,TypeScript 一直保持第八的位置;本季度则与 C++ 并列第七。RedMonk 曾指出过一些与编程语言流行度相关的一般因素,包括:前面提到的与流行的现有语言的互操作性;任何增加的安全相关功能的可用性;以及与流行框架或项目的关联。TypeScript 有幸兼备了所有的这些,“目前几乎没有迹象表明该语言除了向上发展外还会有其他任何方向,唯一真正的问题是在什么时间范围内”。

  • Go (1):与 TypeScript 不同,Go 的轨迹并不清晰。经过稳步且迅速地增长阶段后,该语言似乎也开始停滞不前,从未超过第 14 位,并且在最近三场调查中跌至了第 16 位。不过在本季度,Go 的排名上升了一位,回到第 15。就其本身而言,这一提升意义有限;因为排名越低,相互之间的差异也越小。但在此之前,Go 语言已经一年多没有出现过变动。这也提出了一个问题,即它是否还有进一步上升的空间,或者它是否会继续徘徊在技术上备受推崇但并不特别受关注的位置上。

  • Kotlin (1) / Rust (0):和 Go 一样,Kotlin 过去的三场调查里都处于相同的位置。它和 Rust 在最近几个季度一直保持着同步发展,但当 Rust 连续第四次排在第 19 位时,Kotlin 实现了从 18 跃升到 17 位。人们对这种语法友好的语言寄予厚望,因为它可以随时进入世界上最大的编程语言生态系统之一的 Java,但维持其速度和上升势头被证明比预期的更难。但事实证明,要维持其速度和上升势头比以往预期的要困难得多。考虑到 Kotlin 现在紧随 Go 之后。在接下来的一两个季度可以观察这两种语言的轨迹,看看 Kotlin 是否会将距离拉得更近,或者一举超越。

  • Scala (-1):自 2020 年以来,Scala 在榜单中首次从第 14 位下降到 15。虽然如上所述,这肯定不是命运的重大转变,但它确实会让人疑惑语言的未来的长期发展。Scala 多年来一直被用作高度可信的企业后端语言,最近在这方面也没有什么变化。然而,一个有趣的问题是,将 Akka(一种流行的 Scala 框架)许可的变更是否会以及如何影响 Scala 的采用。Scala 无疑比 Akka 更宽泛,但如果流行的框架可以加速采用它们所基于的语言,那么反之亦然吗?重新许可的长期影响尚不清楚,但是有一些已知的公共实例,例如 Flink 就表示不会再使用带有新许可证的 Akka 版本。当然不也能说 Scala 会像 Akka 一样,但是在增长停滞不前且竞争激烈的语言环境中,不可能排除该决定对语言的不利影响。

  • Objective C (1):自 2018 年年中达到第 9 位的峰值以来,Objective C 一直处于大幅下降的轨道上。在过去的七次调查中,它只上升了一次;但 RedMonk 认为这一结果并不令人意外,很可能只是其逐步下滑道路上的一个暂时的小插曲。这种古老的语言在《捉鬼敢死队》(原版)、《夺宝奇兵》和《末日神庙》上映的同一年首次发布,其在这些排名中的受欢迎程度主要归功于它作为 iOS 生态系统最初认可的首选语言的地位,这是世界上最大和最有商业利润的消费市场之一。但当 Apple 在 2014 年宣布现代 Swift 为其继任者时,这一切似乎都已成定局。

如果你想要学习Koltin却缺少学习资料,而我正好薅到这本阿里十年技术专家联合打造“最新”《Kotlin入门到精通》和《高级Kotlin强化实战(附Demo)》,是你学习Kotlin的葵花宝典。下面正文开始:

《Kotlin入门到精通》

该内容会使用Kotlin作为主要的语言来开发一个android应用。方式是通过开发一个应用来学习这门语言,而不是根据传统的结构来学习。我会在感兴趣的点停下来通过与Java1.7对比的方式讲讲Kotlin的一些概念和特性。用这种方法你就能知道它们的不同之处,并且知道哪部分语言特性可以让你提高你的工作效率。



现在你知道使用Kotlin实现的小例子了,我确信你会希望尽可能快地把它用在你的
实践当中去。不要担心,在第一章中会帮助你去搭建你的开发环境,这样你才能立
即编写代码。


从Kotlin语法概念的理解项目的创建再到整个项目的完成,每篇都是是采用“一对一”的讲解方式, 侧重总结工作上的实践经验,并和你分享一些疑难问题的解决思路,让你在以后的工作中,能够有方法论的指导。


由于篇幅限制,仅用截图展示了部分,需要完整文档资料的,可以点击文末二维码免费获取

当你掌握了Kotlin语言的基本应用后,就该开始强化学习,进入实战环节,相信这高级Kotlin强化学习(附Demo)的正适合接下来的配套学习。其内容主要包括三个方面Kotlin入门教程、Kotlin实战避坑指南、项目实战《Kotlin Jetpack 实战》。

Kotlin入门教程

Kotlin实战避坑指南:

在这里插入图片描述

项目实战《Kotlin Jetpack 实战》

在这里插入图片描述
欢迎大家一键三连支持,若需要文中面试题答案,直接点击文末CSDN官方认证微信卡片免费领取【保证100%免费】↓↓↓

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

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

相关文章

你真的知道Spring Security安全框架吗?

1、什么是安全管理框架? 解决系统安全问题的框架。如果没有安全框架,我们需要手动处理每个资源的访问控制,非常麻烦。使 用安全框架,我们可以通过配置的方式实现对资源的访问限制。 安全框架,简单说是对访问权限进行控…

Android Material Design之MaterialButton(一)

按规矩先上效果图 资源引入 implementation com.google.android.material:material:1.4.0关键属性 属性描述app:backgroundTint背景着色app:backgroundTintMode着色模式app:strokeColor描边颜色app:strokeWidth描边宽度app:cornerRadius圆角大小app:rippleColor按压水波纹颜色…

【Java八股文总结】之计算机网络

文章目录计算机网络一、基础1、网络体系结构2、HTTP协议、TCP协议、UDP协议比较3、网络协议4、WebSocket和Socket的区别?5、常见的端口及其对应的服务?6、从浏览器输入URL到页面展示发生了什么?(★★★★★)1、DNS域名…

MySQL纯代码复习(下)

前言 本文章的语言描述会比上篇多一些 数据库的创建修改与删除 标识符命名规则 数据库名、表名不得超过30个字符,变量限制为29个必须只能包含A-Z,a-z,0-9,_等63个字符数据库名、表名、字段名等对象名中间不要包含空格同一个My…

Twitter引流如何开发客户

要想在twitter平台上取得效果,你需要先了解twitter的算法规则,去迎合平台,推特群推王给出以下5条建议,让你发布的帖子更容易被推荐。 这里Twitter群推王可以给大家讲一下,关于推特平台的算法排名: Twitter…

nginx降权+安装php

nginx降权 使用普通用户启动Nginx 为什么要让nginx服务使用普通用户 默认情况下,nginx的master进程使用的是root用户,worker进程使用的是nginx指定的普通用户,使用root用户跑nginx的master进程有两个大问题: (1&#x…

课程设计-天天象棋作弊软件判别

目录 1.作弊开挂可能迹象 2.设计作弊检测系统灵感 3.设计作弊检测系统思路 3.1反作弊系统应对策略框架 4.感想体悟 1.作弊开挂可能迹象 1.非实名认证; 2.头像:美女; 3.名称: (1)一串英文字母; (2)非正常中文名…

【深度分解网络:显著性分析:IVIF】

Infrared and Visible Image Fusion Based on Deep Decomposition Network and Saliency Analysis (基于深度分解网络和显著性分析的红外与可见光图像融合) 传统的图像融合侧重于选择一种有效的分解方法从源图像中提取代表性特征,并试图找到…

2022年海运行业研究报告

第一章 行业概况 海洋运输又称“国际海洋运输”,提供海上客运或者货运服务的行业。是国际物流中最主要的运输方式。它是指使用船舶通过海上航道在不同国家和地区的港口之间运送货物的一种方式,在国际货物运输中使用最广泛。国际贸易总运量中的2/3以上&a…

功率放大器和电压放大器的区别是什么意思

很多人经常会在后台咨询小编功率放大器和电压放大器的区别有哪些?今天就来为大家科普一下功率放大器和电压放大器的知识内容,希望大家下次能够区分,并且可以正常地选择和使用功率放大器。 图:功率放大电路与电压放大电路对比 功率…

Opengl ES之YUV数据渲染

YUV回顾 记得在音视频基础知识介绍中,笔者专门介绍过YUV的相关知识,可以参考: 《音视频基础知识-YUV图像》 YUV数据量相比RGB较小,因此YUV适用于传输,但是YUV图不能直接用于显示,需要转换为RGB格式才能显…

简单的股票行情演示(一) - 实时标的数据

一、概述二、效果展示三、实现代码 1、行情数据中心2、数据拉取模块3、基础服务模块4、UI展示四、相关文章原文链接:简单的股票行情演示(一) - 实时标的数据 一、概述 很长一段时间都有一个想法,使用QCP去做一个行情展示小事例&…

TiDB Cloud

TiDB Cloud 为什么选择TiDB 分布式数据库-多租户混合工作负载-在同一个数据库中 事务型:基于行的数据分析型:基于列的数据 弹性比例: 缩小-减少节点横向扩展-添加节点 基于“RAFT”的高可用性 每个数据段的3个可用区进行复制 多租户 什么…

DataGridXL 2.0 for JavaScript Crack

你的web开发好了,客户说我习惯用excel这样的表格,你们是否能开发像电子表格一样的功能? Web 应用程序的类似 Excel 的体验---DataGridXL 2.0 for JavaScript Crack 你已经构建了一个 Web 应用程序,但你的用户坚持使用 Excel。 类似…

一、ROS2简介

ros2相关简介 ROS2的前身是ROS,ROS即机器人操作系统(Robot Operating System)。但是ROS本身并不是一个操作系统,而是一个软件库和工具集。 Ros的出现解决了机器人各个组件的通信问题,后来越来越多的机器人算法也集成到…

漫谈信息模型(1)

简单地表达复杂的世界,这是各类思想家近千年来的追求。如何将人类在世界上观察到的结果进行概念化表达?又如何描述人造的复杂工具?这种探索成为人类文明进步的一个重要的驱动力。计算机的出现,推动了人类对现实事物进行概念化的描…

技术开发87

技术开发87 业务内容: . 冲床加工,高速冲床加工,省力化机械制作 . 铣床加工,食品机械制作 . 轮廓加工,钢丝加工 . 冲床模具制作 . 溶接 公司简介: 资本金:1000万日元(约66元人…

文件数据丢失怎么办?推荐几款好用的文件恢复大师

众所周知,计算机在使用过程中难免会出现文件数据丢失的情况,这是一种非常正常的现象。但是遇到这种情况,很多时候我们不知道该如何去补救。特别是由于一些原因导致电脑被重启,这样不仅会对电脑造成一定影响,更重要的是…

2022年8月15日陌陌推荐算法工程师面试题5道|含解

8本电子书免费送给大家,见文末。 1、DeBERTa与BERT的区别 DeBERTa提出了两种改进BERT预训练的方法:第一种方法是分散注意机制,该机制使用两个向量分别对每个单词的内容和位置进行编码来表示每个单词,并使用分散矩阵计算单词之间…

本地传奇架设详细教程

十二堂今天给大家分享一篇技术文章,传奇架设教程。 教程讲的很详细,就是一个菜鸟都能学会如何架设传奇。 在管理工具->服务中停止ssdpdiscoveryservic服务 一、准备软件DBCommander 2000 Pro和传奇服务端(什么版本都行&#x…