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

11种让程序员心动的新编程语言译者_0

时间:2023-03-14 18:36:38 科技观察

译者|翟柯审稿人|相信他能够理解发现一种新的编程语言所带来的期待。他知道软件开发人员一直在寻找一种语言,它具有独特的Unicode字符组合,可以解决我们所有的问题并使编码更容易,甚至只需单击几下。他也一定会理解我们对一种新语法的渴望,这种语法非常直观,我们只需要想象要做什么,然后就能够用语法清楚地表达逻辑。这是一种对新代码的渴望,它看起来像三周半、向内三周半或奥林匹克大回转一样轻松优雅。然而,大多数现代编程语言并不是为了它们的创造者的心血来潮而构建的,也不是为了展示它们的编码能力。它们是为了响应创建者需要解决的常见问题而创建的。虽然大多数开发人员将继续使用一种或多种较旧的、更成熟的语言来进行日常编码,但我们一直在寻找新的语言来帮助我们解决编码问题。我们可以看到这种趋势,尤其是随着领域特定语言或DSL的兴起。这些语言紧凑而专注,它们不适合通用目的,但正因如此,可能会在你的工具箱中占有一席之地。这里有11种较新的语言,它们都已经找到了用途。有些是专为做好一件事而设计的DSL。其他人似乎要拯救世界。即使您现在不需要它们,它们都能让我们的计算机更好地完成它们应该做的事情。1.ReactiveClojureReactiveClojure是Clojure和React的组合:一个结合了反应式前端的所有可能性和Clojure坚实的功能优势的系统。您可以使用ReactiveClojure布置一组复杂的前端组件,并使用函数将它们连接在一起。反应式框架可以处理这些细节并确保应用程序数据在组件和数据库之间流动。Clojure提供了一个功能基础,使非常规用例成为可能并可调试。这似乎是天作之合,但还没有经过时间的考验。ReactiveClojure是汇集前端组件的不错选择。它的多线程模型是多任务复杂性和反应式仪表板的天然匹配。2.镍有时,程序员将大部分工作花在配置文件上,这些文件通常以JSON、YAML甚至XML编码。在某些情况下,你甚至不需要编写具体的代码,只需要不停地切换各种配置文件就可以完成工作。Nickel就是为了解决这个问题而诞生的,它是一种用于创建配置文件的编程语言。您可以使用Nickel创建非静态配置文件。参数的值可以变化,从一周中的一个值到周末的不同值。当Nickel运行时,它会创建一个新的配置文件来容纳它接收到的所有参数。镍的结构主要是功能性的和类型检查。一段非常好的Nickel代码几乎可以保证输出遵守语法规则和任何其他需要强制执行的规则。您可以编写代码来创建配置文件,然后管理其他代码,这听起来很荒谬。但对于现代架构而言,这是一个非常实用的解决方案。3.KobraKobra的创造者想要一种能够向工程师、科学家和其他不太专业的编码人员开放机器学习的语言,而这种用于机器学习的可视化语言就诞生了。Kobra的编辑器使用拖放块为统计分析和机器学习的常用内置例程编写类似代码的序列。这个过程感觉像R,它的数据框由表格数据和一组用于创建仪表板和文件的图形显示函数组成。4.Bicep这是云计算最有用的功能之一,可以启动和关闭服务器来处理数据激增。数据中心硬件团队过去常常花费数周时间订购、安装、测试和配置一台机器。现在,云可以让您在几分钟甚至几秒钟内完成所有这些工作。许多敏捷开发团队已经开始为不同云支持的各种API编写代码。微软创建了一种简化的语言,用于在Azure中启动机器,作为其基础设施即代码理念的一部分。Bicep语言提供了一种高效的声明式格式,用于编写开发人员希望在新实例中应用的内容。一些基本的类型安全可以帮助防止错误,VSCode中提供了一个语法感知编辑器。该语言本身是为对基础设施进行高层次思考而设计的,具有强大的声明结构,允许您以任何顺序包含指令,并让Azure的资源管理器优化它们的执行。5.Frink使用浮点数的错误带来的开发风险是众所周知的,相当多的bug是由于粗心的数字格式造成的。Frink正是为了解决这个问题而创建的,它是一种“单位感知”语言。Frink中的每个变量不仅包含数字,而且还表示度量单位(几乎任何度量单位),例如吨、瓦特、英尺或米。这使得单位转换变得容易,Frink的核心机制是使用任意精度数字来减少舍入问题。这就像测量单位的类型检查。6.Faust声音合成非常适合游戏开发、VR和任何依赖良好音质的应用程序。而Faust就是这种domain-specific语言,它的结构是纯函数式的,每个函数都建立了完善的处理管道。它的后端将传入的声音分解为数字表示,而代码本身是一组构成最终结果的函数。例如,您可以通过拆分代码输出并引入延迟来创建回声和混响。此外,Faust的代码可以转换为C++、C、LLVMBitcode、WebAssembly、Rust和其他几种语言,因此您几乎可以在任何项目中使用它。7.Melrōse和Glicol任何写代码的人都知道程序员是如何组建乐队的。编写一些代码来拼出鼓机的节奏,然后用子程序替换所有其他乐队成员,这样你甚至可以建立一个完整的交响乐团。Melrōse和Glicol就是这种音乐创作的编程语言。使用这两种语言,您只需敲击几下键盘就可以制作出精美的作品。梅尔罗斯围绕西方音乐中常见的标准十二音阶的较高水平进行创作。音符按顺序分组,软件处理大部分更精细的细节,例如移调。输出到任何支持MIDI的乐器,代码还可以对通过MIDI端口传入的信号做出反应,因此运行Melrōse代码可以取代乐队成员。Glicol是一种基于Rust的工具,可以执行许多与Melrōse相同的任务,但级别较低。Glicol可以与数字信号处理相结合,以提供广泛的音乐流派选择。该工具旨在通过其开源音频引擎生成浏览器就绪的声音。正如其开发者所说:“入门费低,上限高。”,用于鼓励与任何可以使用此技能的人合作。8.WebAssembly和Wase向计算机传递指令的最有效方式是将它们编码为二进制并将它们限制为CPU使用的基本操作集。每个芯片都有自己偏好的二进制语法,一些语言如Pascal或Java有中性的二进制格式,可以在本机虚拟机上运行。WebAssembly为Web浏览器提供了经过预处理的二进制代码以及标准格式的文本。它的目标是用更易于运行、接近本机速度的二进制格式替换构建Web应用程序的JavaScript代码。很多开发者使用WebAssembly但并不直接编写,而是使用编译器将高级语言转换成WebAssembly并在浏览器中运行。还有一项计划是创建一种低级语言,以人类可读的形式公开WebAssembly的大部分基本结构。一个这样的选项是Wase,它提供了类似C的语法和强类型。在网页浏览器之外,WebAssembly也有发挥的地方,作为一种通用的编码指令方法,它的栈机类似于Java的JVM。例如,Redpanda是一个流数据平台,它为开发人员提供了一个机会,可以在数据通过WebAssembly编写的代码进入管道时调整或修改数据。9.Java17从某种意义上说,Java并不是一门新的语言。Java的一大优点是它的开发人员在维护与旧版本的兼容性方面做得很好,而使用最新的JVM,编译10年甚至20年前的代码通常很容易。虽然不能保证代码有效,但它仍然比几乎任何其他语言都更容易编译。Java团队拥有一套包含数百万个集成测试的套件。Java17包含在此列表中,因为它非常现代,以至于1990年代的开发人员肯定不会将其识别为Java。它有许多额外的功能和扩展,可以改变开发人员编码的方式。诸如增强的随机数生成器或更严格的浮点数学语义之类的东西可以解决编写非常复杂的数字代码的挑战。编写会计系统的开发人员可以使用整数来保存金额,但处理AI算法和复杂线性代数的开发人员需要浮点数。其他的,例如强大的封装和扩展的开关语义,为核心语言带来了规范和灵活性。总而言之,由于所有这些改进,编写更强大、更安全的代码比以往任何时候都容易。它仍然以Java为核心,但添加的内容有所不同。原文链接:https://www.infoworld.com/article/3658204/11-new-programming-languages-to-make-a-coders-heart-sing.html