成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

讓程序員心動的11種新編程語言

譯文 精選
開發 前端
這里有 11 種較新的語言,并且都已經找到了自己的用途。有些是 DSL,旨在做好一件事。其他的,似乎要拯救世界。即使你現在不需要它們,但它們都能讓我們的計算機把要做的事情做得更好。

譯者 | 翟珂

審校 | 孫淑娟

亞歷山大-波普說過“人類的希望是永恒的”,雖然波普是個詩人,不是極客,但我相信他能夠理解發現一種新的編程語言時的期待感。他知道軟件開發人員永遠期待一種語言,能夠以其獨特的Unicode字符組合,解決我們所有的問題,使編碼變得更簡單,甚至只需點擊幾下即可。

他也肯定會理解我們對一種新的語法的渴望,這種語法是如此直觀,以至于我們只需要想象要做什么,然后就能夠使用語法清晰的表達出其中的邏輯。這是一種對新代碼的渴望,這種代碼看起來就像三段式(Triple axel)、梭魚式(inward three and a half)或奧運會上的大回轉跑那樣毫不費力和優雅。

然而,大多數現代編程語言建立的初衷并不是創作者異想天開或為了展示他們的編碼能力。它們是針對創作者需要解決的一個常見問題而產生的。雖然大多數開發者會繼續使用一種或多種更老、更成熟的語言進行日常編碼,但我們永遠在尋找新的語言來幫助我們解決編碼問題。我們可以看到這種趨勢,尤其是在特定領域語言或 DSL 的崛起。這些語言緊湊且集中,它們不適用于通用用途,但是正是出于這個原因,可能會在你的工具箱贏得一席之地。

這里有 11 種較新的語言,并且都已經找到了自己的用途。有些是 DSL,旨在做好一件事。其他的,似乎要拯救世界。即使你現在不需要它們,但它們都能讓我們的計算機把要做的事情做得更好。

1.Reactive Clojure

Reactive Clojure是Clojure和React的結合體:一個將反應式前端的所有可能性與 Clojure 堅實的功能優勢相結合的系統。你可以使用Reactive Clojure布置一個復雜的前端組件集合,并使用函數將它們串連起來。反應式框架能夠處理這些細節,并且確保應用數據在組件和數據庫之間流通。Clojure則提供功能基礎,使非常規的用例成為可能,并且可調試。

這看起來簡直是天作之合,但還需要通過時間的檢驗。Reactive Clojure是一個將前端組件結合在一起的好選擇。它的多線程模型與多任務的復雜性和反應式儀表板自然匹配。

2.Nickel

有時,程序員會將大部分工作花費在配置文件上,這些文件通常用JSON、YAML甚至XML編碼。在某些情況下,你甚至不需要寫具體的代碼,只要不停地切換各種配置文件來完成工作。

Nickel的誕生就是為了解決這一問題,它是一種用于創建配置文件的編程語言。你可以用Nickel來創建非靜態的配置文件。一個參數的值可以發生變化,在一周內可以是一個值,在周末則是一個不同的值。在運行Nickel時,它會創建一個新的配置文件,以適應它收到的所有參數。

Nickel的結構在很大程度上是功能性的,而且可以使用類型檢查。一段非常好的Nickel代碼幾乎可以保證輸出遵守句法規則和任何其他需要執行的規則。你可以編寫代碼來創建配置文件,然后再對其他代碼進行管理,這聽起來有些滑稽。但對于現代架構來說,這是一個非常實用的解決方案。

3.Kobra

Kobra的創造者希望有一種語言能夠為工程師、科學家和其他不那么專業的編碼者開放機器學習,于是這個機器學習的視覺語言就誕生了。Kobra的編輯器用拖放塊組成了類似代碼的序列,這些塊用于統計分析和機器學習的常見內置例程。這個過程感覺就像R語言,它的數據框由表格數據和一組用于創建儀表板和論文的圖形顯示函數而組成。

4.Bicep

這是云計算最有用的功能之一,能夠啟動和關閉服務器,用以處理數據激增。數據中心的硬件團隊曾經需要花費數周時間來申購、安裝、測試和配置一臺機器。現在,云讓你在幾分鐘甚至幾秒鐘內完成所有這些工作。

許多敏捷開發團隊已經開始為不同云支持的各種API編寫代碼。微軟為在Azure中啟動機器創建了一種簡化的語言,作為其基礎架構即代碼理念的一部分。

Bicep 語言提供了一種高效的聲明式格式,可以編碼出開發人員希望在新實例中的應用。一些基本的類型安全可以幫助防止錯誤,并且 VS Code 中提供了一個語法感知編輯器。該語言本身是為對基礎架構進行高階思考而設計的,具有強聲明性結構,允許你以任何順序包含指令,讓 Azure 的資源管理器優化執行。

5.Frink

使用浮點數出現錯誤帶來的開發風險是眾所周知的,相當多的Bug是由于不注意的數字格式造成的。

Frink正是為解決這一問題而創造的,它是一種有“單位意識”的語言。Frink中的每個變量不只是持有一個數字,而且還標明了計量單位(幾乎所有的計量單位),比如噸、瓦、英尺或者米。這使單位轉換變得很容易,Frink的核心機制在于使用任意精度的數字來減少四舍五入的問題。這就像一種對于測量單位來說的類型檢查。

6.Faust

聲音合成對于游戲開發、VR和任何依賴良好音質的應用都非常有用。而Faust就是這種特定領域的語言,它的結構是純功能的,并且每一個功能都建立了一個聲音處理管道。它的后端將傳入的聲音分解為數字表示,而代碼本身是一組可以組成最終結果的函數。比如,你可以通過分割代碼輸出并引入延遲來創造一個回聲和混響。另外,Faust的代碼可以轉譯成C++、C、LLVM Bitcode、WebAssembly、Rust和其他一些語言,因此你幾乎可以在任何項目中使用它。

7.Melrōse和Glicol

任何編寫代碼的人都知道程序員如何組建一個樂隊。寫一些代碼,為鼓機拼出節奏,然后用子程序取代所有其他的樂隊成員,用這種方式甚至能建立一個完整的交響樂團。

Melrōse和Glicol就是為這種音樂創作方式而生的編程語言。使用這兩種語言你只需要用幾個按鍵就能創造出一個看上去精心制作的作品。Melrōse圍繞西方音樂中常見的標準十二音度的高層次工作。音符被分組為序列,軟件處理大部分的細節工作,如移調。輸出到任何具有MIDI功能的樂器上,代碼也可以對通過MIDI端口進入的信號作出反應,因此運行Melrōse代碼可以代替一個樂隊成員。

Glicol是一個基于Rust的工具,它能完成許多和Melrōse相同的任務,但級別較低。Glicol可以與數字信號處理相結合,可以提供廣泛的音樂類型選擇。該工具旨在通過其開源的音頻引擎產生可用于瀏覽器的聲音。正如其開發者所說:“入門費用低,上限高。”,用于鼓勵與所有會此技能的人合作。

8.WebAssembly和Wase

將指令傳送到計算機的最有效方法是將它們編碼為二進制并將它們限定為 CPU 使用的基本操作集。每個芯片都有自己喜歡的二進制語法,Pascal 或 Java 等一些語言有一種中性的二進制格式,可以在本地虛擬機上運行。WebAssembly為Web瀏覽器提供預先處理的二進制代碼,并以標準格式與文本相結合。其目標是用更容易運行的、接近本地速度二進制格式來代替構建Web應用程序的JavaScript代碼。

許多開發者使用WebAssembly但不直接編寫,而是用編譯器將高級語言轉化成WebAssembly,并在瀏覽器中運行。還有一個舉措就是創建低級語言,以人類可讀的形式公開WebAssembly的大部分基本結構。Wase就是這樣的一種選擇,它提供了一種類似C的語法和強類型。

在Web瀏覽器之外,也有WebAssembly的用武之地,作為一種通用的編碼指令方式,其堆棧機類似于Java的JVM。例如,Redpanda是一個流媒體數據平臺,它為開發者提供了一個機會,當數據通過WebAssembly編寫的代碼進入管道時,可以對其進行調整或修改。

9.Java 17

從某種意義上來說,Java并不能算是一種新的語言。Java最偉大的地方之一就是,它的開發者在維護與舊版本的兼容性方面做得很好,對于最新的JVM來說,編譯10年甚至20年前的代碼通常很容易。雖然這些代碼不能保證能正常運行,但它仍然比幾乎任何其他語言更容易編譯。并且Java團隊擁有一套包含數百萬個集成測試的套件。

將Java 17列入這個名單是因為它已經非常現代化了,以至于1990年代的開發者肯定認不出是Java。它有許多額外的功能和擴展,能夠改變開發者的編碼方式。

比如增強的隨機數發生器或更嚴格的浮點數學語義,解決了編寫非常復雜的數字代碼的難題。編寫會計系統的開發人員可以使用整數來保存錢的數量,但那些處理AI算法和復雜線性代數的開發人員則需要浮點數。

其他的,如強封裝和擴展的switch語義,為核心語言帶來了規范性和靈活性。總而言之,由于所有這些改進,使編寫更強大、更安全的代碼比以往任何時候都容易。它的核心仍然是Java,但附加功能有所不同。

原文鏈接:https://www.infoworld.com/article/3658204/11-new-programming-languages-to-make-a-coders-heart-sing.html

責任編輯:武曉燕 來源: 51CTO技術棧
相關推薦

2021-02-18 00:19:40

編程語言程序員工具

2015-10-28 09:33:31

程序員崩潰編程語言

2015-07-01 09:10:20

2011-08-29 17:05:55

2013-04-28 11:03:41

編程語言程序員私有云

2009-02-27 09:25:28

編程語言程序員C#

2009-07-28 08:28:15

2015-09-08 10:49:35

程序員編程經驗

2017-12-06 08:01:52

程序員編程代碼

2013-08-23 11:06:34

編程語言

2021-10-26 16:25:25

編程語言JavaPython

2016-12-08 10:53:46

程序員編程

2013-12-30 10:08:13

2012-08-07 09:29:09

程序員編程

2014-11-11 15:19:36

程序員

2012-06-15 09:54:58

程序員編程開發

2015-05-19 14:34:17

程序員編程語言

2021-07-05 15:10:11

編程語言技巧

2024-05-21 13:41:17

2021-06-02 05:47:32

程序員編程開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 婷婷色国产偷v国产偷v小说 | 一区二区三区在线免费观看 | 欧美一级二级在线观看 | 91久久国产综合久久 | 亚洲国产精品自拍 | 欧美黄视频 | 欧美一区二区三区在线播放 | 精品国产乱码久久久久久闺蜜 | 亚洲精品一区二区在线观看 | 国产精品性做久久久久久 | 人妖一区| 中文字幕一区二区三区不卡 | 久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新 | 成人性生交大片免费看中文带字幕 | 免费av电影网站 | 日韩在线中文 | 蜜桃av一区二区三区 | 黄色欧美 | 日本一区二区三区免费观看 | 九九av | 污污的网站在线观看 | 欧美视频在线看 | 91久久久久久| 国产精品一区二区视频 | 亚洲综合大片69999 | 午夜天堂精品久久久久 | 二区成人 | 国产剧情一区二区三区 | 日韩在线视频免费观看 | xxxcom在线观看 | 日韩不卡在线 | 久久91av | 99精品视频在线观看 | 中文字幕亚洲一区二区va在线 | 手机三级电影 | 精品99在线 | 国产精品久久久久久婷婷天堂 | 成人免费网站www网站高清 | 在线观看免费国产 | 久久精品免费一区二区三 | 精品国产一区久久 |