国内A∨免费播放,无码色av一二区在线播放 http://www.qjsdgw.cn Fri, 19 Aug 2022 13:11:56 +0000 zh-Hans hourly 1 https://wordpress.org/?v=6.8.3 http://www.qjsdgw.cn/wp-content/uploads/2022/03/ico.png delphi – V商人 http://www.qjsdgw.cn 32 32 開(kāi)發(fā)語(yǔ)言delphi(開(kāi)發(fā)語(yǔ)言有哪幾種) http://www.qjsdgw.cn/86372.html Fri, 19 Aug 2022 13:11:54 +0000 http://www.qjsdgw.cn/?p=86372

譯者 | 翟珂

審校 | 孫淑娟

亞歷山大-波普說(shuō)過(guò)“人類的希望是永恒的”,雖然波普是個(gè)詩(shī)人,不是極客,但我相信他能夠理解發(fā)現(xiàn)一種新的編程語(yǔ)言時(shí)的期待感。他知道軟件開(kāi)發(fā)人員永遠(yuǎn)期待一種語(yǔ)言,能夠以其獨(dú)特的Unicode字符組合,解決我們所有的問(wèn)題,使編碼變得更簡(jiǎn)單,甚至只需點(diǎn)擊幾下即可。

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

然而,大多數(shù)現(xiàn)代編程語(yǔ)言建立的初衷并不是創(chuàng)作者異想天開(kāi)或?yàn)榱苏故舅麄兊木幋a能力。它們是針對(duì)創(chuàng)作者需要解決的一個(gè)常見(jiàn)問(wèn)題而產(chǎn)生的。雖然大多數(shù)開(kāi)發(fā)者會(huì)繼續(xù)使用一種或多種更老、更成熟的語(yǔ)言進(jìn)行日常編碼,但我們永遠(yuǎn)在尋找新的語(yǔ)言來(lái)幫助我們解決編碼問(wèn)題。我們可以看到這種趨勢(shì),尤其是在特定領(lǐng)域語(yǔ)言或 DSL 的崛起。這些語(yǔ)言緊湊且集中,它們不適用于通用用途,但是正是出于這個(gè)原因,可能會(huì)在你的工具箱贏得一席之地。

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

1.Reactive Clojure

Reactive Clojure是Clojure和React的結(jié)合體:一個(gè)將反應(yīng)式前端的所有可能性與 Clojure 堅(jiān)實(shí)的功能優(yōu)勢(shì)相結(jié)合的系統(tǒng)。你可以使用Reactive Clojure布置一個(gè)復(fù)雜的前端組件集合,并使用函數(shù)將它們串連起來(lái)。反應(yīng)式框架能夠處理這些細(xì)節(jié),并且確保應(yīng)用數(shù)據(jù)在組件和數(shù)據(jù)庫(kù)之間流通。Clojure則提供功能基礎(chǔ),使非常規(guī)的用例成為可能,并且可調(diào)試。

這看起來(lái)簡(jiǎn)直是天作之合,但還需要通過(guò)時(shí)間的檢驗(yàn)。Reactive Clojure是一個(gè)將前端組件結(jié)合在一起的好選擇。它的多線程模型與多任務(wù)的復(fù)雜性和反應(yīng)式儀表板自然匹配。

2.Nickel

有時(shí),程序員會(huì)將大部分工作花費(fèi)在配置文件上,這些文件通常用JSONYAML甚至XML編碼。在某些情況下,你甚至不需要寫(xiě)具體的代碼,只要不停地切換各種配置文件來(lái)完成工作。

Nickel的誕生就是為了解決這一問(wèn)題,它是一種用于創(chuàng)建配置文件的編程語(yǔ)言。你可以用Nickel來(lái)創(chuàng)建非靜態(tài)的配置文件。一個(gè)參數(shù)的值可以發(fā)生變化,在一周內(nèi)可以是一個(gè)值,在周末則是一個(gè)不同的值。在運(yùn)行Nickel時(shí),它會(huì)創(chuàng)建一個(gè)新的配置文件,以適應(yīng)它收到的所有參數(shù)。

Nickel的結(jié)構(gòu)在很大程度上是功能性的,而且可以使用類型檢查。一段非常好的Nickel代碼幾乎可以保證輸出遵守句法規(guī)則和任何其他需要執(zhí)行的規(guī)則。你可以編寫(xiě)代碼來(lái)創(chuàng)建配置文件,然后再對(duì)其他代碼進(jìn)行管理,這聽(tīng)起來(lái)有些滑稽。但對(duì)于現(xiàn)代架構(gòu)來(lái)說(shuō),這是一個(gè)非常實(shí)用的解決方案。

3.Kobra

Kobra的創(chuàng)造者希望有一種語(yǔ)言能夠?yàn)楣こ處?、科學(xué)家和其他不那么專業(yè)的編碼者開(kāi)放機(jī)器學(xué)習(xí),于是這個(gè)機(jī)器學(xué)習(xí)的視覺(jué)語(yǔ)言就誕生了。Kobra的編輯器用拖放塊組成了類似代碼的序列,這些塊用于統(tǒng)計(jì)分析和機(jī)器學(xué)習(xí)的常見(jiàn)內(nèi)置例程。這個(gè)過(guò)程感覺(jué)就像R語(yǔ)言,它的數(shù)據(jù)框由表格數(shù)據(jù)和一組用于創(chuàng)建儀表板和論文的圖形顯示函數(shù)而組成。

4.Bicep

這是云計(jì)算最有用的功能之一,能夠啟動(dòng)和關(guān)閉服務(wù)器,用以處理數(shù)據(jù)激增。數(shù)據(jù)中心的硬件團(tuán)隊(duì)曾經(jīng)需要花費(fèi)數(shù)周時(shí)間來(lái)申購(gòu)、安裝、測(cè)試和配置一臺(tái)機(jī)器?,F(xiàn)在,云讓你在幾分鐘甚至幾秒鐘內(nèi)完成所有這些工作。

許多敏捷開(kāi)發(fā)團(tuán)隊(duì)已經(jīng)開(kāi)始為不同云支持的各種API編寫(xiě)代碼。微軟為在Azure中啟動(dòng)機(jī)器創(chuàng)建了一種簡(jiǎn)化的語(yǔ)言,作為其基礎(chǔ)架構(gòu)即代碼理念的一部分。

Bicep 語(yǔ)言提供了一種高效的聲明式格式,可以編碼出開(kāi)發(fā)人員希望在新實(shí)例中的應(yīng)用。一些基本的類型安全可以幫助防止錯(cuò)誤,并且 VS Code 中提供了一個(gè)語(yǔ)法感知編輯器。該語(yǔ)言本身是為對(duì)基礎(chǔ)架構(gòu)進(jìn)行高階思考而設(shè)計(jì)的,具有強(qiáng)聲明性結(jié)構(gòu),允許你以任何順序包含指令,讓 Azure 的資源管理器優(yōu)化執(zhí)行。

5.Frink

使用浮點(diǎn)數(shù)出現(xiàn)錯(cuò)誤帶來(lái)的開(kāi)發(fā)風(fēng)險(xiǎn)是眾所周知的,相當(dāng)多的Bug是由于不注意的數(shù)字格式造成的。

Frink正是為解決這一問(wèn)題而創(chuàng)造的,它是一種有“單位意識(shí)”的語(yǔ)言。Frink中的每個(gè)變量不只是持有一個(gè)數(shù)字,而且還標(biāo)明了計(jì)量單位(幾乎所有的計(jì)量單位),比如噸、瓦、英尺或者米。這使單位轉(zhuǎn)換變得很容易,F(xiàn)rink的核心機(jī)制在于使用任意精度的數(shù)字來(lái)減少四舍五入的問(wèn)題。這就像一種對(duì)于測(cè)量單位來(lái)說(shuō)的類型檢查。

6.Faust

聲音合成對(duì)于游戲開(kāi)發(fā)、VR和任何依賴良好音質(zhì)的應(yīng)用都非常有用。而Faust就是這種特定領(lǐng)域的語(yǔ)言,它的結(jié)構(gòu)是純功能的,并且每一個(gè)功能都建立了一個(gè)聲音處理管道。它的后端將傳入的聲音分解為數(shù)字表示,而代碼本身是一組可以組成最終結(jié)果的函數(shù)。比如,你可以通過(guò)分割代碼輸出并引入延遲來(lái)創(chuàng)造一個(gè)回聲和混響。另外,F(xiàn)aust的代碼可以轉(zhuǎn)譯成C++、C、LLVM Bitcode、WebAssembly、Rust和其他一些語(yǔ)言,因此你幾乎可以在任何項(xiàng)目中使用它。

7.Melrōse和Glicol

任何編寫(xiě)代碼的人都知道程序員如何組建一個(gè)樂(lè)隊(duì)。寫(xiě)一些代碼,為鼓機(jī)拼出節(jié)奏,然后用子程序取代所有其他的樂(lè)隊(duì)成員,用這種方式甚至能建立一個(gè)完整的交響樂(lè)團(tuán)。

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

Glicol是一個(gè)基于Rust的工具,它能完成許多和Melrōse相同的任務(wù),但級(jí)別較低。Glicol可以與數(shù)字信號(hào)處理相結(jié)合,可以提供廣泛的音樂(lè)類型選擇。該工具旨在通過(guò)其開(kāi)源的音頻引擎產(chǎn)生可用于瀏覽器的聲音。正如其開(kāi)發(fā)者所說(shuō):“入門(mén)費(fèi)用低,上限高?!?,用于鼓勵(lì)與所有會(huì)此技能的人合作。

8.WebAssembly和Wase

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

許多開(kāi)發(fā)者使用WebAssembly但不直接編寫(xiě),而是用編譯器將高級(jí)語(yǔ)言轉(zhuǎn)化成WebAssembly,并在瀏覽器中運(yùn)行。還有一個(gè)舉措就是創(chuàng)建低級(jí)語(yǔ)言,以人類可讀的形式公開(kāi)WebAssembly的大部分基本結(jié)構(gòu)。Wase就是這樣的一種選擇,它提供了一種類似C的語(yǔ)法和強(qiáng)類型。

在Web瀏覽器之外,也有WebAssembly的用武之地,作為一種通用的編碼指令方式,其堆棧機(jī)類似于Java的JVM。例如,Redpanda是一個(gè)流媒體數(shù)據(jù)平臺(tái),它為開(kāi)發(fā)者提供了一個(gè)機(jī)會(huì),當(dāng)數(shù)據(jù)通過(guò)WebAssembly編寫(xiě)的代碼進(jìn)入管道時(shí),可以對(duì)其進(jìn)行調(diào)整或修改。

9.Java 17

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

將Java 17列入這個(gè)名單是因?yàn)樗呀?jīng)非?,F(xiàn)代化了,以至于1990年代的開(kāi)發(fā)者肯定認(rèn)不出是Java。它有許多額外的功能和擴(kuò)展,能夠改變開(kāi)發(fā)者的編碼方式。

比如增強(qiáng)的隨機(jī)數(shù)發(fā)生器或更嚴(yán)格的浮點(diǎn)數(shù)學(xué)語(yǔ)義,解決了編寫(xiě)非常復(fù)雜的數(shù)字代碼的難題。編寫(xiě)會(huì)計(jì)系統(tǒng)的開(kāi)發(fā)人員可以使用整數(shù)來(lái)保存錢(qián)的數(shù)量,但那些處理AI算法和復(fù)雜線性代數(shù)的開(kāi)發(fā)人員則需要浮點(diǎn)數(shù)。

其他的,如強(qiáng)封裝和擴(kuò)展的switch語(yǔ)義,為核心語(yǔ)言帶來(lái)了規(guī)范性和靈活性??偠灾?,由于所有這些改進(jìn),使編寫(xiě)更強(qiáng)大、更安全的代碼比以往任何時(shí)候都容易。它的核心仍然是Java,但附加功能有所不同。

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

來(lái)源:51CTO技術(shù)棧

]]>