当前位置: 首页 > 科技观察

六种古老但未死的编程语言!

时间:2023-03-18 02:34:46 科技观察

现在的开发者倾向于使用新的编程语言,那么旧的编程语言呢?他们的未来一般是两种方式之一:他们仍然可以使用,但逐渐不受大家欢迎;否则他们将彻底死去。盘点和分析由数字编程专家整理,包括很多他们对一些经典编程语言和新兴编程语言的思考,以及基于行业的分析。Python今年Python最大的新闻是Python之父GuidovanRossum正式退休,并将Python交给了Python指导委员会。迄今为止,这场权力交接并未出现“阵痛”,正如《Python Crash Course》的作者EricMatthes所认为的那样,这很正常,因为“Guido仍将在社区中长期维持自己的角色””此外,对Python2.7的支持将于2020年结束,这可能会让那些坚持使用Python2.7的人生活困难。无论如何,Python仍然是数据科学的首选语言。对于Matthes来说,Python令人兴奋的方面之一是“各种有趣和重要的项目都来自一个长期有意识地建设的社区。”Python指导委员会成员和CPython核心开发人员CarolWilling也庆祝了Binder服务等项目,该服务促进了可重复研究在JupyterNotebooks中创建可执行环境,尤其是当它们超出最初目标时。她指出,“去年许多Python会议的教学研讨会和教程中广泛使用了活页夹。”Willing还大声疾呼CircuitPython和Muprojects,问道:“谁不喜欢硬件、闪烁的LED、传感器,Mu的用户友好型e对成人和儿童来说不是很好吗?ditor?”Java今年对Java来说主要是好消息。BenEvans解释说:“再一次,关于Java消亡的谣言变成了平台批评者的一厢情愿。”但这并非一帆风顺。正如我们去年指出的那样,Java11于2018年9月发布并带来了许多新功能,包括许多在使用容器方面具有明显优势的重要功能。然而,这个新版本并没有导致广泛采用,根据JetBrains的一项调查,超过80%的开发人员仍在使用Java8。Evans想知道:“这是否意味着人们没有像我们所知的那样在容器中运行Java?或者人们只是没有意识到在容器中使用Java11的好处?”尽管采用缓慢,但Java六个月的发布节奏一直在演变——Java12于2019年3月发布,Java13于9月发布。根据TrishaGee的说法,它真正开始显示其价值:每个版本都很小,但可以预测。虽然它们并不都具有令人兴奋的新语言变化,但您可以看到该语言正在稳步向前发展。此外,它支持这种预览功能的想法,我认为我们的切换表达式非常有效——开发人员必须试验该功能并根据感觉提供真实的反馈,而不是抽象的、概念性的反馈想法。在Java13中,switch表达式的语法略有变化,这是可能的,因为它是一个预览特性,没有固定的设置。2019年甲骨文将JavaSE转移到基于订阅的模型时带来了另一个惊喜。但是,正如《Learning Java》的合著者MarcLoy指出的那样,“随着对OpenJDK的热情增加,整个Java社区都面临着‘不幸’的变化。”对于刚刚到来的2020年,Evans建议2020年可以继续关注2019年的发展趋势:我们将如何接近Valhalla项目的量产版?提供模式匹配和代数数据类型(ProjectAmber)的增量策略是否有效?Quarkus会兑现其承诺和早期粉丝的信念吗?2020年会是Kotlin在Android上的一大飞跃吗?这是激动人心的时刻,我们正在过渡到新事物,并且正在发生很多事情。JavaScriptJS的第一个时代(从1997年到2007年)是虎头蛇尾的。每个人都知道BrendanEich的故事,但很少有人知道ES4如何在来自Flash/Actionscript等封闭生态系统的激烈竞争中步履蹒跚。JS的完整起源的故事最好由BrendanEich和AllenWirfs-Brock在“《JavaScript:最初的20年》”中讲述。JS的第二个时代(2009年到2019年)始于奇迹般的2009年,它催生了npm、Node.js和ES5。正如DougCrockford向我们展示其强大的功能一样,用户构建了一套完整的JS构建工具和库,并将JS的范围扩展到台式机和新的智能手机。到2019年,我们甚至可以在Facebook的Hermes等手机和Svelte3等编译器优先的前端框架中看到特定于JS的运行时。这种语言将在10年内成为Web开发最常用的语言。KotlinGoogle在2019年5月宣布Kotlin现在是Android应用程序开发人员的首选语言,这表明该语言已被广泛采用。虽然许多Android开发者还没有完全迁移到Kotlin,但那些迁移到Kotlin的人都知道它提供的好处。《Head First Kotlin》作者Dawn和DavidGriffiths分享了Kotlin崛起背后的一些原因:作为一种由IDE公司创建的语言,Kotlin拥有良好的工具支持水平也就不足为奇了。一种用于代码契约的实验性DSL,使开发人员能够提供有关代码行为方式的保证。你的函数有副作用吗?是否保证返回非空值?代码契约允许您做出这些承诺,编译器可以使用它们来放宽编译时检查。现在,不同Kotlin平台之间的壁垒也正在被打破。“expect”/“actual”限定符使开发人员更容易编写跨Java/Native/JS环境兼容的代码。序列化支持意味着更容易将JSON数据转换为Kotlin对象,反之亦然。希望看到Kotlin持续惊人的增长——而不仅仅是在Android中。JetBrains开发者倡导团队负责人HadiHariri指出Kotlin/Everywhere的成功,让人们在Android、谷歌云平台和多平台开发中学习Kotlin的基础知识和最佳实践,并以数据为例:“来自5月至11月,我们成功地吸引了86个国家的30,000人。KotlinConf在2019年连续第三年售罄,与会者超过1,700人。这尤其表明开发人员对该语言的兴趣和采用正在增长。《Go当Gophers回顾2019年时,他们可能还记得尝试提案的传奇故事。Go开发者兼作者JonBodner解释说:关于Go最常见的抱怨之一是错误处理过于冗长。因此,在6月初,Go核心开发人员建议添加一个名为try的新内置功能。现在打开一个GitHub问题来讨论这个新功能。一个月内,有将近800条评论,其中大部分是负面的。反对这个新功能的人认为,这个改变让代码太“神奇”并且模糊了逻辑流程。在审查了反馈之后,Go团队将提案标记为完成并于7月16日关闭了它。这个过程显然不是功能性的它失败了,但是,正如博德纳所描述的那样,“过程发生的方式:提出了一个特性,讨论受到尊重,但许多人认为这种变化与Go的风格不一致。最后,管理语言的人决定尊重多数人的意见。这就是开发人员谈论社区时的意思。2020年应该会明确Go的合约规范,即泛型提案。根据Bodner的说法,“Go似乎对泛型采取了一种与其他语言略有不同的方法,但这种方法非常适合Go的习语。”希望它将保持Go的一贯风格,同时添加开发人员认为在其他语言中有用的功能.Rust我们采访了《Programming Rust》的合著者JimBlandy,了解他对Rust在2019年进展的看法观点发生了怎样的变化。去年,他指出,“Rust长期以来一直以一种或另一种形式支持异步编程,但异步函数为这种代码提供了语法,这是一个重大的改进。“他对改进Rust语法的希望实现了吗?是的,最终:Brandy解释说,async/await语法直到2019年11月7日发布的1.39版才变得稳定。”最初,我们希望async/await语法可以成为Rust2018的一部分,但花了一点时间才把事情做好。尽管如此,他对Rust在2020年对Rust的意义寄予厚望:“将异步集成到语言中可以让借用检查器了解你在做什么,因此异步代码看起来像惯用的Rust。”Rust社区也对WebAssembly感到兴奋,今年它作为C/FFI的理论替代品出现在需要便携式、高性能模块的生态系统中。正如Rust专家NathanStocks指出的那样:“您也可以使用轻量级沙箱!”Stocks印象最深的是“有多少理论已经成功原型化并得到验证”。之前,我看到的WebAssembly纯粹是作为一个编译Target来在浏览器中运行非JS语言的代码。从浏览器以外的任何语言使用Web程序集的能力令人不寒而栗。Swift去年Swift中发生的最大事件是SwiftUI的发布,这是Apple用于在所有Apple设备上设计用户界面的最新框架,以及TensorFlow的Swift版本。正如TimirahJames所解释的那样,SwiftUI的声明性特性引起了开发人员的广泛关注,并被认为是UIKit的未来继承者。至于TensorFlow的Swift,Buttfield-Addison称其为“Swift的基本新用途”。“Swift一直是一种出色的应用程序开发和系统编程语言,也是一种用于Web和后端开发的新兴语言,但现在,有了SwiftforTensorFlow,它也是一个强大的ML框架,”他解释道。原因如下:SwiftforTensorFlow由包括Swift的原始创建者ChrisLattner在内的团队开发,并提供(或将在完成后提供)机器学习和数值计算所需的一切。最令人惊讶的是,Swift的底层编译器框架和设计为具有自动可微分函数的可微分编程提供了一流的支持。完全语言可微分的编程将实现以前不可能的事情:最好的例子是在构建神经网络时能够使用标准编程调试器逐步完成反向传播和调试派生类。SwiftforTensorFlow还为Swift提供完整的Python支持,使数据科学家能够将他们需要的有用且熟悉的Python框架与干净的Swift代码混合搭配。展望未来,James和Buttfield-Addison都很高兴看到Swift的新方向,James指出“Swift已经在移动社区之外的不同社区和技术栈中得到快速采用,尤其是在无服务器领域,”Buttfield-Addison大声疾呼“像Kitura这样令人惊叹的Web开发框架,以及各种用于特殊领域的令人惊叹的框架……比如SwiftPlot,它是Python中无处不在的Matplotlib的Swift原生版本。”未来是什么样的?变化是不可避免的,随着编程语言继续倾向于针对云、微服务、大数据、跨平台和机器学习的新趋势进行优化,每种语言及其生态系统将继续以自己独特的方式进行调整。有些语言可能会在2020年有大的发布,比如C++20会在今年夏天发布,Scala3.0预计会在2020年底发布。但很显然,即使是最小的变化也会在程序员的思维中引起巨大的波澜日常生活。在过去很长一段时间里,关于Java与Kotlin、Python与Go、Swift与OC、Rust与Php的比较无休止。然而,迄今为止,Java、Python、C、JavaScript仍然是编程语言界的常青树。甚至10年后。