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

为什么我们不需要新的编程语言

时间:2023-03-12 13:11:31 科技观察

徐杰成80、90年代,随着计算机的逐渐普及,这一时期也诞生了大量的编程语言。当时,世界上平均每个月都会产生一种新的编程语言。据不完全统计,到2022年,人类已经开发出约9000种编程语言。然而,新的编程语言的产生速度随着时间的推移不断下降,已经放缓到每年一个左右,尤其是在过去几年。不过,这一变化似乎对开发者没有任何影响。熟悉的Python、JavaScript等老家伙们还是足以满足现在大部分的研发需求,而且实力还是很强的。那么,这是否意味着我们不再需要新的编程语言了?1、为什么有些编程语言会流行很久?Python和JavaScript等语言长期以来受到开发者的欢迎和广泛喜爱,很大程度上是因为它们的用户友好性。以Python为例。Python作为一种高级编程语言,具有丰富的开发框架、广泛优质的可用库以及良好的代码可读性。此外,它具有用户友好的数据结构,并提供易于集成的Web服务,这使其受到开发人员的青睐。作为市场上最流行的编程语言之一,JavaScript可以方便地操作各种浏览器对象,支持分布式计算和处理,兼容大多数互联网浏览器。几乎所有的都建立在JavaScript之上。此外,自诞生以来,JavaScript就通过大规模的更新与不断发展的技术生态系统紧密相连。今天的JavaScript和十年前的JavaScript几乎可以说是两种语言。2.为什么我们不再需要新的编程语言?当道路变得崎岖不平时,制造一些更好的轮子总是比制造一辆新车容易。与从头开始构建新的编程语言相比,几乎所有的开发者都更愿意选择在现有语言的基础上更新框架,这是大多数开发者用脚投票的结果。MachineHack首席技术官KrishnaRastogi曾在接受采访时公开表示,“从头开始构建编程语言是一个非常耗时和资源密集型的过程,大多数问题只需更新框架就可以轻松解决。而且,“当谈到编程语言特性时,更多不一定更好。当我们以多种方式描述同一个想法时,它会变得混乱。”在KrishnaRastogi看来,早期软件行业之所以会出现如此五花八门的编程语言,是因为早年硬件的性能不够可靠,开发者不得不使用复杂多样的编程语言弥补硬件功能的不足。.但是现在,硬件已经足够发达,开发者自然不用再去使用那些复杂的没有太多实际意义的编程语言了。选择那些更通用、更强大、更友好的编程语言就足够了。向上。此外,一门编程语言的兴衰也与其周围的生态环境息息相关。大多数主流成熟的编程语言,其周围都有各种庞大的社区。这些社区可以为语言和新学习者提供源源不断的资源补充,从而使整个语言生态系统得以持续发展。老牌语言在这方面的技术资产,是后来者极难超越的。最后,从功利的角度来说,大部分工程师在入行时都会选择学习一门比较成熟的编程语言,围绕该语言选择一个工作方向来构建自己的技术栈。因此,在技术架构的选择上,企业也会因为稳定性、人员招聘等问题,遵循一定的设计原则,这样双向提升的逻辑自然会形成一个闭环。3、非英语编程语言有前途吗?在上一篇文章中,我们对编程语言的讨论一直围绕着语言本身的一些特性展开。那么,新的编程语言会不会对语言这个世界性的问题给出不同的答案呢?非英语编程语言的目的是让母语不是英语的开发人员能够用他们更熟悉的语言设计和创建程序,但这种想法在实施中面临着许多困难。例如,就读于贝鲁特大学的计算机科学家RamseyNasser对他所学的所有编程语言都高度依赖英语感到非常失望,因此他决定从头开始创建一门阿拉伯语编程语言,但最终失败了.以失败告终。对此,RamseyNasser指出了开发中遇到的诸多困难,最重要的一点是:英语已经深深烙印在各种硬件和软件操作系统中,因此用其他语言创建编程语言需要特定的语言重写过去几十年的软件工程几乎是不可能完成的任务。当然,你可能会说,现在市场上确实有很多非英语基础的编程语言,比如中文编程语言“EasyLanguage”和日语编程语言“Nadeko”。但事实上,他们都没有成功摆脱英语编程语言的束缚。比如《易语言》就是基于C++构建的。这些非英语编程语言大多只是在传统编程语言的基础上进行了大量的封装和重写。虽然这类语言在初学者看来确实比较简单,但在性能、可用??性等方面根本无法与传统的基于英语的编程语言相提并论。4.Web3是否会改变编程语言的新格局?分析近十年来编程语言的发展变化,不难发现,现代编程语言的语法、特性、语言设施、编程范式等方面都在逐渐趋同,主流编程业界的语言正在朝着优化开发人员生产力的方向发展。方向进化。基于这种趋势,我们可以判断这是Web2.0时代编程语言发展的最终目标。不过,随着近期对Web3呼声的愈演愈烈,新一代互联网似乎离我们越来越近了。Web3的到来,势必会重塑整个互联网生态,催生出一大批专属于Web3时代的新应用。届时,我们很可能需要更多更适合编写智能合约和开发区块链应用的新编程语言来填补Web2和Web3之间的空白。