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

2022-12-13 02:22:07
关注

​作者 | 徐杰承

上世纪80至90年代,伴随着计算机的逐渐普及,大量编程语言也在这一时期诞生。彼时,世界范围内平均每一个月便会产生一种新的编程语言。据不完全统计,截止到2022年,人类已经开发了大约9000种编程语言。

然而,随着时间的推移,新编程语言的诞生速度却在持续下降,尤其在过去几年间,新编程语言的产生频率已放缓到了约一年一种。但这一变化却似乎并没有给开发者们带来任何影响,我们所熟悉的Python、JavaScript等一众老伙计依然足矣应付目前绝大多数的研发需求,并且仍旧表现强势。那么,这是否意味着我们已不再需要新的编程语言了呢?

1、为什么一些编程语言能够长期流行?

Python、JavaScript等语言能够长期流行且受到开发者们的广泛喜爱,很大程度上是由于它们的用户友好性。以Python为例,作为一种高级编程语言,Python拥有丰富的开发框架、广泛且高质量的可用库与良好的代码可读性。并且具有用户友好的数据结构,还提供了web服务的轻松集成,这些优点使得其备受开发人员的青睐。

而JavaScript作为目前市面上最受欢迎的编程语言之一,能够方便地操纵各种浏览器对象、支持分布式运算和处理,且与绝大多数互联网浏览器兼容,目前我们能够看到的所有网站几乎都是基于JavaScript所构建的。此外,JavaScript自诞生以来不断通过大规模的更新使自己与持续发展的技术生态系统紧密相连,如今的JavaScript与十年前的JavaScript几乎可以说是两种语言。

2、为什么我们不再需要新的编程语言?

当路面变得不再平坦时,造一些更好的轮子永远比造一辆新车要来的方便。相比于从头开始构建一种新的编程语言,几乎所有的开发人员都更愿意选择在现有语言的基础上更新框架,这也是绝大部分开发者们用脚投票的结果。

MachineHack首席技术官Krishna Rastogi曾在一次采访中公开表示“从头开始构建编程语言是一个非常消耗时间和资源的过程,绝大部分问题只需要更新框架就可以轻松解决。并且,当涉及到编程语言功能时,更多并不一定代表着更好。当我们用多种方法描述同一个想法时,它可能会变得令人困惑。”。

根据Krishna Rastogi的介绍,早期的软件行业之所以会出现种类如此种类繁多的编程语言,是由于早年间硬件的性能不够可靠,因此开发人员必须通过复杂多样的编程语言来弥补硬件功能方面的种种不足。但如今,硬件已经发展得足够优秀,开发人员自然就不再需要使用那些复杂且没有太多实际意义的编程语言,去选择那些泛用性更强、功能更强大且更加友好的编程语言就足够了。

除此之外,一门编程语言的兴衰与否,与其周围的生态环境也有着至关重要的联系。主流的成熟编程语言周围大多拥有各类庞大的社区,这些社区能够为语言以及新晋学习者提供源源不断的资源补充,使整个语言的生态系统得以持续发展。老牌语言在这方面的技术资产,是后来者极难超越的。

最后一点,从功利角度来讲,由于大多数工程师在入行时都会选择学习较为成熟的编程语言,并围绕语言选择工作方向、堆砌自己的技术栈。因此企业在对于技术架构的选择方面,也会因为稳定性及人员招聘等问题而遵从一定的设计原则,这样双向促进的逻辑也就自然而然的形成了一个闭环。

3、非英语种编程语言有前途吗?

前文中我们对于编程语言的讨论始终围绕着语言本身的一些特点,那么,在语种这个世界性问题上,会有新的编程语言给出不一样的答案么?非英语种编程语言的目的,是为了让那些母语非英语的开发者能够使用自己更为熟悉的语种,进行程序的设计与创作,但这个想法在执行方面却面临着很多的困难。

例如,计算机科学家Ramsey Nasser在贝鲁特大学学习期间,发现自己所学的所有编程语言都高度依赖于英语,他对此非常失望,因此决定从头开始创造一种阿拉伯语编程语言,但这件事最终却以失败告终。对此,Ramsey Nasser指出了在开发中遇到的许多困难,最主要的一点便是:英语已经深深烙印在了各种软硬件操作系统之中,因此创造其他语种的编程语言需要用特定语种对过去几十年的软件工程进行重写,这几乎是不可能完成的任务。

当然,你可能会说如今市面上确实有不少基于非英语种的编程语言,例如中文编程语言“易语言”、日文编程语言“抚子”等。但其实它们都没有成功摆脱英文编程语言的束缚,例如“易语言”就是基于C++进行构建的。这些非英语种编程语言,绝大部分只是基于传统编程语言进行了大量封装和重写。虽然对于初学者而言,这类语言的确会显得相对简单,但在性能、可用性等方面,这类语言则完全无法与传统的基于英语的编程语言相比。

4、Web3会改变编程语言的新格局吗?

分析最近十几年编程语言的发展变化,我们不难发现,现代编程语言的语法、特性、语言设施、编程范式等方面都在逐渐趋同,业界主流的编程语言都在朝着优化开发者生产力的方向演进。基于这个趋势,我们可以判断,这便是Web2.0时代编程语言发展的终极目标。

但随着近期Web3呼声的不断加剧,新一代互联网似乎已经离我们越来越近了。而Web3的到来,势必将会重塑整个互联网的生态系统,并催生出大量专属于Web3时代的全新应用。届时,我们将极有可能需要更多全新的、更加适用于编写智能合约和开发区块链应用的编程语言来填补Web2与Web3之间的沟壑。​

您觉得本篇内容如何
评分

相关产品

OMEGA Engineering 欧米茄 DPG7000 Series 数字压力计

• 0.05、0.10和0.25%FS精度型号• 12用户可选择的测量单位•大的17 mm(0.66\)显示范围条形图的百分比•所有不锈钢浸湿部件和外壳• NEMA 4(IP65)防风雨外壳•可编程7种语言

Rosemount / Emerson 罗斯蒙特 Model 1057 电导率和电阻率计

方便的是,在编程和校准过程中,始终显示实时过程值。标准功能包括电气隔离输入、七种菜单语言、四个4-20毫安电流输出、四个报警继电器和可拆卸连接器。

Conax 康纳斯 5714 RTD温度变送器

可编程LED指示器,2继电器,前键可编程– 5714型,*4位,14段式LED指示器*用于RTD、TC、mA、V和电位计的输入*通用电源电压*前键可编程*提供可选的2个继电器和模拟输出,应用:,*显示温度最大显示读数-1999…9999,带可编程小数点,继电器开/关指示。*操作参数可以通过前面板键盘调整。*八种语言的帮助文本可以通过前面板选择。*Preview 5714可以从工厂完全配置或现场编程。

Siemens 西门子 SITRANS LR200 料位传感器

,SITRANS LR200’s独特的设计使得使用本质安全的手持编程器进行安全和简单的编程,而无需打开仪器盖。它还具有内置的四种语言的字母数字显示。

ifm 易福门 O3D305 视觉传感器

带有代码示例的软件开发工具包以不同的编程语言提供。

Burkert 宝得 423922 流量控制器

模式和显示可以定制时,与单位和时间测量提供无限的灵活性的完整选项编程。使用三个按钮进行简单的菜单驱动编程。编程模式中的参数:语言、工程单位、K系数(由最终用户预设或定义)、示教功能、主累加器的过滤和复位最大流量=2-1200 L\/min电气连接=电缆密封套控制输出=模拟,脉冲安装样式=紧凑型供电电压=115

Stellar Technology, Inc. IT30XX-10 真空传感器

这些单元可与多种通信语言及其不断变化的协议一起使用。板载实时时钟提供可编程的监视功能,并提供低功耗休眠状态以供电池运行。还可以通过PC访问这些装置,以进行额外的远程数据采集。

RS Components 欧时 5000 光纤接近传感器

放大器具有高性能数字显示器,允许用户简单设置和编程。弹性外壳,显示器可旋转180度,语言选择(德语、英语、法语),电子锁,功能检查输出,感应范围3800毫米(通过光束传感器),量程0.300毫米(漫反射传感器),可调检测范围=3800 mm输出类型=PNP

DELTATAU DELTATAU泰道卡件ACC59E.DAC DCS系统

PMAC控制器,全称为Programmable Multi-Axis Controller(可编程多轴控制器),是美国Delta Tau Data System公司研制开发的一种高性能的运动控制器。强大的编程能力:PMAC控制器支持多种编程语言,如PM

VACUUBRAND, Inc. CVC 3000 真空传感器

带清晰文本菜单(14种语言)的照明图形显示和点动滚轮使其处理几乎不言自明。根据型号的不同,陶瓷隔膜真空传感器和排气阀已经集成(或可外部连接)。陶瓷真空传感器具有高耐化学性,测量气体类型独立且准确。当用于控制VARIO®变速真空泵时,无需编程,只需按一个按钮即可实现全自动蒸发。任何参数都可以调整,即使在真空控制期间。

评论

您需要登录才可以回复|注册

提交评论

广告

谜知

这家伙很懒,什么描述也没留下

关注

点击进入下一篇

中芯集成招股书

提取码
复制提取码
点击跳转至百度网盘