通常,你应该选择一种能有助于你事业发展的编程语言。另外,你还可以学习一门受欢迎程度正在上升的语言。
我对主流编程语言非常尊重。但在这里,我列出现代编程语言,这些语言可以提高你的工作效率,使你成为一个更好的开发人员。此外,我还将涉及更广泛的领域:系统编程,应用程序开发,网络开发,科学计算。
“现代编程语言”这个词是模棱两可的。许多人认为像 Python、JavaScript 这样的语言是现代编程语言。但同时,他们认为 Java 是一种古老的编程语言。事实上,它们都出现在同一时间:1995 年。
大多数主流的编程语言是在上个世纪发展起来的,主要是在 20 世纪 70 年代(例如 C)、20 世纪 80 年代(例如 C++)、20 世纪 90 年代(例如 Java、Python、JavaScript)。这些语言不是为了利用现代软件开发生态系统而设计的。尽管其中的许多语言中有改进特性,比如并发性和自我调整,但是它们也提供了向后兼容性,并且不能丢弃旧的、过时的特性。
在这一点上,Python 做的很好,它在 Python 2 和 Python 3 之间做了一个明确的划分。这些语言通常提供 10 种方法来做同样的事情,而不关心开发人员用起来是否方便。根据 StackOverflow developer 的调查,大多数主流的旧编程语言都在“最可怕的语言”类别中占据了榜首:
图片来源:Stackoverflow
我将以第一款 iPhone 发布的时候,也就是 2007 年 6 月 29 日作为新旧编程语言之间的界限时间点。在 iPhone 发布之后,一切都发生了变化。在这个列表中,我主要考虑 2007 年后的编程语言。
首先,开发现代编程语言是为了充分利用现代计算机硬件(多核 CPU、GPU、TPU)、移动设备、大数据集、快速网络、容器和云。此外,大多数现代编程语言使用起来都更容易,主要体现在:
其次,列表中的许多编程语言都具有破坏性,将永远改变软件行业。其中一些已经成为主流编程语言,而另一些则等待取得突破。至少作为第二种编程语言来学习这些语言是明智的。
在之前的一篇博文“20 个 2020 年软件发展趋势预测”中,我预测了 2020 年许多现代编程语言的突破:
文章网址:https://towardsdatascience.com/20-predictions-about-software-development-trends-in-2020-afb8b110d9a0
Rust
图片来源:Thoughtram
系统编程语言是由 C、C++等主导的,尽管它们可以完全控制程序和硬件,但它们缺乏内存安全性。即使它们支持并发性,但是在比你保证并发安全性的情况下,使用 C/C++编写并发程序是很有挑战性的。其他流行的编程语言是可解释性的语言,如 Java、Python、Haskell,它们提供安全性,但需要很多的运行时间或虚拟机。由于运行时很大,像 Java 这样的语言不适合系统编程。
有很多人尝试过将 C/C++的特性和 Haskell,Java 的安全性结合起来,但目前看来,Rust 是第一个实现这一目的的产品级编程语言。
Graydon Hoare 最早将 Rust 作为一个副产品开发出来。他受到了研究性的编程语言 Cyclone 的启发。Rust 是开源的,Mozilla 与许多其他公司和社区一起进行语言开发。Rust 于 2015 年首次发布,很快就引起了社会各界的关注。在以前的文章中,我深入研究了 Rust,并论证了为什么在大数据域中使用 Rust 来代替 C++、Java 是一个更好的选择:
主要特性:
受欢迎程度:
自 2015 年首次亮相以来,Rust 一直被开发者所喜爱,并在 StackOverflow 开发者调查中连续四年(2016、2017、2018、2019)被评为最受欢迎的语言:
图片来源:Stackoverflow
根据 GitHub Octoverse 的说法,Rust 是仅次于 Dart 的增长第二快的语言:
图片来源:Octoverse
流行编程语言网站 PyPl 也将 Rust 排在第 18 位,并呈上升趋势:
图片来源:PyPl
对比它提供的功能集,难怪像微软、亚马逊、谷歌这样的科技巨头最终宣布将 Rust 作为一种长期的系统编程语言。
在过去的 5 年里,Rust 的吸引力每年都在增加:
图片来源:Google Trends
主要用在:
主要竞争语言:
Go
图片来源:Wikimedia
谷歌是最大的网络公司之一。本世纪初,Google 面临着两个扩展问题:开发扩展和应用程序扩展。开发扩展意味着他们不能通过增加开发人员来增加更多的功能,应用程序扩展意味着他们无法轻松开发一个可以扩展到“Google”级机器集群的应用程序。2007 年左右,谷歌开始创建一种新的“实用”编程语言,这种语言可以解决这两个问题。在 Rob Pike(UTF-8)和 Ken Thompson(UNIX 操作系统)中,两个世界上最有才华的软件工程师创建了一种新的语言。
2012 年,谷歌发布了 Go 编程语言的第一个官方版本。Go 是一种系统编程语言,但不同于 Rust。它也有一个运行时和垃圾收集器(几兆字节),但与 Java 或 Python 不同的是,这个运行时包含了生成的代码。最后,Go 生成一个本机二进制代码,可以在没有附加依赖项或运行时的情况下在计算机中运行。
主要特性:
受欢迎程度:
自 Go 首次问世以来,软件开发社区已经欣然接受了它。在 2009 年(首次亮相)和 2018 年,Go 通过 TIOBE 指数进入编程语言名人堂排行榜。难怪 Go 的成功为 Rust 这样的新一代编程语言铺平了道路。
Go 已经是一种主流编程语言。最近,Go 团队宣布了“Go 2”的计划,目的只是让语言更加稳固。
在几乎所有流行编程语言比较网站,Go 的排名很高,超过了许多现有的语言。以下是 2019 年 12 月的 TIOBE 指数评级,Go 排名第 15 位:
图片来源:TIOBE
根据 Stackoverflow 的调查,Go 是十大最受欢迎的编程语言之一:
图片来源:Stackoverflow
根据 GitHub Octoverse 的统计,Go 也是增长最快的十大语言之一:
图片来源:Octoverse
谷歌还显示,过去五年里,Go 的吸引力不断增强:
图片来源:Google Trends
主要用例:
主要竞争语言:
Kotlin
Java 是企业软件开发中无可争议的王者。近年来,Java 已经受到了很多批评:冗长,需要大量的样板编码,复杂,容易发生意外。然而,关于 Java 虚拟机(JVM)的争论很少。JVM 是软件工程领域的杰作,它提供了一个经过时间考验的运行时。在上一篇文章中,我详细讨论了 JVM 的优点:
多年来,像 Scala 这样的 JVM 语言试图回答 Java 的缺点,并希望成为更好的 Java,但是失败了。最后,Kotlin 出现了,寻找更好 Java 的旅程似乎已经结束。Jet Brains(流行 IDE IntelliJ 背后的公司)开发了 Kotlin,它运行在 JVM 上,解决了 Java 的缺点,并提供了许多现代特性。与 Scala 不同,Kotlin 比 Java 简单得多,并在 JVM 中提供 Go 或 Python 式的开发效率。
谷歌宣布 Kotlin 是开发 Android 的一流语言,并提高了 Kotlin 在社区的接受度。同样流行的 Java 企业框架 Spring 也从 2017 年开始在 Spring 生态系统中支持 Kotlin。
主要特性:
受欢迎程度:
自 2015 年首次发布以来,Kotlin 的受欢迎程度正在飙升。根据 Stack Overflow,Kotlin 是 2019 年第四受欢迎的编程语言:
图片来源:Stackoverflow
Kotlin 也是增长最快的编程语言之一,排名第四:
图片来源:Github Octoverse
热门编程语言排名网站 PyPl 将 Kotlin 列为第 12 位最受欢迎的编程语言,并有很高的上升趋势:
图片来源:Pypl
自从谷歌宣布 Kotlin 是开发 Android 应用程序的一流语言以来,Kotlin 的受欢迎程度快速上升,如下图所示:
图片来源:Google Trends
主要用例:
主要竞争语言:
TypeScript
JavaScript 是一种优秀的语言,但 2015 年以前的 JavaScript 有许多缺点。甚至著名的软件工程师 Douglas Crockford 也写过一本书《JavaScript: The Good Parts》,并暗示 JavaScript 有很多不好的部分。由于没有模块化和“回调地狱”,开发人员不喜欢维护特别大的 JavaScript 项目。
Google 甚至开发了一个平台,将 Java 代码转换为 JavaScript 代码(GWT)。许多公司或个人试图开发更好的 JavaScript,例如 CoffeeScript、Flow、ClojureScript,但微软的 TypeScript 无疑是其中最突出的。由 Delphi 的创建者 Anders Hejlsberg 领导的一组微软工程师创建了 TypeScript,把它作为 JavaScript 的静态类型的模块化超集。
在编译期间,TypeScript 被编译为 JavaScript。2014 年首次发布以来,TypeScript 迅速引起社会关注。当时谷歌还计划开发一个静态类型的 JavaScript 超集。谷歌对 TypeScript 印象深刻,他们没有开发新的语言,而是与微软合作改进 TypeScript。
Google 使用 TypeScript 作为其 SPA 框架 Angular2+ 的主要编程语言。另外,流行的 SPA 框架 React 提供了对 TypeScript 的支持。另一个流行的 JavaScript 框架 Vue.js 声明他们将使用 TypeScript 开发新的 Vue.js 3:
图片来源:Vue.js Roadmap
此外,node.js 的创建者 Ryan Dahl 决定使用 TypeScript 开发一个安全的 node.js 替代品 Deno。
主要特性:
受欢迎程度:
开发人员喜欢 TypeScript 优雅的语言设计。在 Stackoverflow 开发者调查中,它在最受欢迎的语言类别中与 Python 并列第二:
图片来源:Stackoverflow
TypeScript 是增长最快的 Web 编程语言之一,在 GitHub Octoverse 上排名第五:
图片来源:Octoverse
根据 GitHub 贡献,TypeScript 也进入了前 10 名(排名第 7):
图片来源:Octoverse
TypeScript 在过去的一年中吸引了越来越多的眼球,这反映在 Google 趋势上:
图片来源:Google Trends
主要用例:
主要竞争语言:
Swift
Steve Jobs 拒绝在 iOS 中支持 Java(和 JVM),因为他认为 Java 将不再是一种主要的编程语言。我们现在知道 Steve Jobs 对 Java 的评价是错误的,但是 iOS 仍然不支持 Java。相反,苹果选择 Objective-C 作为 iOS 中的主流编程语言。Objective-C 是一门很难掌握的语言。而且,它具备现代编程语言所要求的高开发效率。
在苹果,Chris Lattner 和其他人开发了 Swift ,它是一种多范式、通用、可编译的编程语言,为 Objective-C 提供了一种替代方案。Swift 的第一个稳定版本于 2014 年发布。Swift 还支持 LLVM 编译器工具链(也由 Chris Lattner 开发)。Swift 与 Objective-C 代码库具有良好的互操作性,并且已经成为 iOS 应用程序开发的主要编程语言。
主要特性:
受欢迎程度:
和许多其他现代语言一样,开发人员也非常喜欢 Swift。根据 StackOverflow 的调查,Swift 在最受欢迎的编程语言中排名第六:
在 TIOBE 的编程语言排行榜中,Swift 在 2019 年已升至第 10 位。考虑到这门语言才 5 岁,这是一个相当了不起的成就:
图片来源:TIOBE Index
Google trends 还显示,Swift 的受欢迎程度先急剧上升,随后在最后几次饱和中趋势略有下降:
图片来源:Google Trends
主要用例:
主要竞争语言:
Dart
Dart 也是 Google 发布的编程语言。Google 是网络和安卓领域的关键玩家,在网络和应用程序开发领域开发自己的编程语言也就不足为奇了。
Dart 是一种支持强类型和面向对象编程的通用编程语言。Dart 也可以被转换成 JavaScript,并且可以运行在 JavaScript 运行着的任何地方(例如 Web、移动、服务器)。
主要特性:
受欢迎程度:
根据 Github Octoverse,Dart 是 2019 年增长最快的编程语言,去年它的受欢迎程度翻了五倍:
根据 TIOBE,Dart 居于第 23 位,仅仅 4 年时间,它已经超越了其它很多编程语言:
图片来源:TIOBE index
它也是 StackOverflow 开发者调查中排名第 12 位的最受欢迎的编程语言之一:
图片来源:StackOverflow
除了 Flutter,Dart 的受欢迎程度在过去两年也经历了巨大的改善,这一点在 Google 中很明显:
图片来源:Google Trends
主要用例:
主要竞争语言:
Julia
前面列出的编程语言都是由大公司开发的,但 Julia 不是。在技术计算中,通常使用 Python、Matlab 等动态语言。这些语言提供易于使用的语法,但不适合大规模的技术计算,他们使用 C/C++库来处理 CPU 密集型任务。由于代码是在两种语言之间转换的,因此总会有一些性能损失。
为了解决这个问题,麻省理工学院的一组研究人员计划从头开始创建一种新的语言,它利用了现代硬件的优势,并结合了其他语言的最佳部分。他们在麻省理工学院创新实验室完成这项工作,还发表了以下宣言:
资料来源:Julia Presentation
Julia 是一种动态的高级编程语言,为并发、并行和分布式计算提供一流的支持。Julia 的第一个稳定版本于 2018 年发布,很快就得到了社区和业界的青睐。Julia 可以应用于科学计算、人工智能等许多领域,最终解决“两种语言”的问题。
特性:
受欢迎程度:
在许多领域,Julia 主要与 Python 竞争。由于 Python 是最流行的编程语言之一,Julia 成为主流还需要几年时间。
Julia 相对年轻(只有一岁),但在 TIOBE index 中仍排在第 43 位:
图片来源:TIOBE
Google Trends 也显示出过去的时间里,程序员对 Julia 的稳定兴趣。
但考虑到 Julia 背后的功能集和公司数量,如 NSF、DARPA、NASA、Intel,Julia 何时取得突破只是个时间问题。
主要用例:
主要竞争语言:
via:https://towardsdatascience.com/top-7-modern-programming-language-to-learn-now-156863bd1eec
推荐文章
京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。
日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。
据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。
今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。
日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。
近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。
据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。
9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...
9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。
据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。
特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。
据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。
近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。
据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。
9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。
《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。
近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。
社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”
2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。
罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8