函數(shù)式語(yǔ)言

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、小程序制作、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了鄂托克免費(fèi)建站歡迎大家使用!
Elixir
Elixir 比 Erlang 更容易編寫(xiě),具有 Haskell 等語(yǔ)言的函數(shù)式編程概念。Elixir是基于Erlang 虛擬機(jī)的,其廣為人知的特點(diǎn)是運(yùn)行低延時(shí)、分布式、可容錯(cuò)的系統(tǒng),并成功用于Web開(kāi)發(fā)與嵌入式軟件領(lǐng)域。
Elm
Elm是一種用于構(gòu)建 Web 應(yīng)用程序的函數(shù)式語(yǔ)言。業(yè)內(nèi)一般認(rèn)為,它適用于創(chuàng)建高可交互應(yīng)用,例如復(fù)雜的用戶(hù)界面,開(kāi)發(fā)人員可以通過(guò) Elm 快速編寫(xiě)富有表現(xiàn)力的系統(tǒng)。Elm 也以沒(méi)有運(yùn)行時(shí)異常而聞名。
PureScript
PureScript是一種可編譯為 JavaScript 的純函數(shù)式編程語(yǔ)言。與 Haskell 最相似的是,PureScript 最適合用于開(kāi)發(fā) Web 應(yīng)用程序和服務(wù)器端應(yīng)用程序。
PureScript 支持類(lèi)型推斷,與其他語(yǔ)言相比,需要明顯類(lèi)型注釋要少得多。
Swift
Swift是一種由蘋(píng)果公司開(kāi)發(fā)的通用編譯編程語(yǔ)言,最早的設(shè)想是替代上一代編程語(yǔ)言O(shè)bjective-C ,過(guò)程中結(jié)合了Objective-C、Rust、Ruby 和 Python等語(yǔ)言的編程思想。目前Swift用于開(kāi)發(fā)蘋(píng)果自己的手機(jī)、服務(wù)器、臺(tái)式機(jī)上的應(yīng)用軟件。
程序語(yǔ)言
Go
Go語(yǔ)言是由谷歌公司創(chuàng)造的類(lèi)似C風(fēng)格的語(yǔ)言。Go 比 C++ 或 Java 更簡(jiǎn)潔,比 Ruby 或 Python 更安全。
一些缺點(diǎn): 編碼要求嚴(yán)格。比如,不能混用符號(hào)和無(wú)符號(hào)整數(shù)。還有一個(gè)明顯的遺漏,Go語(yǔ)言沒(méi)有泛型和繼承。
但Go語(yǔ)言的優(yōu)勢(shì)同樣明顯,簡(jiǎn)單且易于使用。Go語(yǔ)言擅長(zhǎng)于網(wǎng)絡(luò)和多線程方面的編程。
面向?qū)ο笳Z(yǔ)言
DART
Dart同樣來(lái)自谷歌公司具有C語(yǔ)言風(fēng)格。Dart可以輕松編寫(xiě)JavaScript、Java for Android、本地機(jī)器代碼或獨(dú)立的 Dart 虛擬機(jī)。它還可以運(yùn)行后端代碼。
Dart 非常適合使用事件驅(qū)動(dòng)代碼構(gòu)建用戶(hù)界面。根據(jù)Dart 團(tuán)隊(duì)成員的說(shuō)法,Dart的優(yōu)勢(shì):可選的靜態(tài)類(lèi)型、最小的編譯時(shí)錯(cuò)誤和強(qiáng)大的內(nèi)置編輯器。
Pony
Pony是一種基于無(wú)數(shù)據(jù)競(jìng)爭(zhēng)類(lèi)型和垃圾收集的語(yǔ)言,并使用 actor 模型以及稱(chēng)為引用功能的東西。
你可以把 Pony 想象成某種“Rust 遇上 Erlang”的復(fù)合體,沒(méi)有鎖,高并發(fā)是其主要優(yōu)點(diǎn)。
Pony 的缺點(diǎn)是 API 穩(wěn)定性低、很少有高質(zhì)量的第三方庫(kù)和有限的本地工具。
TypeScript
TypeScript是一個(gè)基于 JavaScript 靜態(tài)類(lèi)型定義構(gòu)建,并由微軟維護(hù)且開(kāi)源編程語(yǔ)言。Visual Studio Code 或Visual Studio 是推薦的IDE編輯器,微軟大廠的用戶(hù)體驗(yàn)和錯(cuò)誤檢查也不用懷疑。
復(fù)合編程語(yǔ)言
Hack
Hack是一種作為 PHP 方言的 HipHop 虛擬機(jī)的編程語(yǔ)言。于 2014 年由Facebook創(chuàng)建,允許程序員同時(shí)使用靜態(tài)和動(dòng)態(tài)類(lèi)型(也稱(chēng)為漸進(jìn)類(lèi)型),這為編碼提供了靈活性。
Julia
Julia是一種高級(jí)通用編程語(yǔ)言,用于計(jì)算科學(xué)和數(shù)值分析。Julia 以動(dòng)態(tài)類(lèi)型和可重現(xiàn)的高性能特性而聞名。
Julia 在數(shù)據(jù)可視化和機(jī)器學(xué)習(xí)等方面都有大量用途。事實(shí)上,它被英國(guó)保險(xiǎn)公司 Aviva 用于風(fēng)險(xiǎn)計(jì)算,紐約聯(lián)邦儲(chǔ)備銀行用于金融建模,甚至氣候建模聯(lián)盟用于氣候變化建模。它擁有Fortran、C++、R、Java、C 、Python等的接口,這使其成為最受追捧的新語(yǔ)言之一。
Kotlin
Kotlin是運(yùn)行在 Java 虛擬機(jī)中的更快、更流暢的 Java 版本。它現(xiàn)在是Android 開(kāi)發(fā)的首選語(yǔ)言。根據(jù) Android 開(kāi)發(fā)者網(wǎng)站顯示,程序員正轉(zhuǎn)而采用 Kotlin,因?yàn)樵撜Z(yǔ)言的樣板代碼更少,空指針異常更少,并且與 Java 有互操作性。
Kotlin 可用于在 iOS 和 Android 上運(yùn)行的應(yīng)用程序、不使用額外運(yùn)行時(shí)或虛擬機(jī)。
Nim
Nim是一種優(yōu)先考慮可讀性的靜態(tài)類(lèi)型語(yǔ)言。通過(guò)結(jié)合多種語(yǔ)言的特性,Nim 為程序員提供了速度和易用性。
它帶有 JavaScript 后端、分散的包管理、自動(dòng)內(nèi)存管理、C 和 C++ 庫(kù)的綁定以及用于調(diào)試的回溯。作為一種語(yǔ)言,Nim 是有限的,但它包含一組元編程功能,如泛型、模板和宏,因此開(kāi)發(fā)人員可以在避免冗長(zhǎng)代碼的同時(shí)以不同的風(fēng)格工作。
OCaml作為此列表中較舊的語(yǔ)言,OCaml是一種多范式語(yǔ)言——既有函數(shù)式、命令式和類(lèi)型安全,也具有面向?qū)ο蠊δ堋?/p>
OCaml 的一些優(yōu)勢(shì):定義數(shù)據(jù)類(lèi)型很容易。默認(rèn)情況下,所有變量都是不可變的。API 穩(wěn)定,具有良好的庫(kù)向后兼容性。該語(yǔ)言還為獨(dú)立應(yīng)用程序提供自動(dòng)內(nèi)存管理和單獨(dú)編譯。
Reason
如果比JavaScript 更快、更簡(jiǎn)單且類(lèi)型安全會(huì)怎樣?
這就是創(chuàng)建Reason的 Facebook 開(kāi)發(fā)者想要回答的問(wèn)題。不過(guò),他并沒(méi)有從頭開(kāi)始構(gòu)建一種新語(yǔ)言,而是采用了 OCaml,并將其調(diào)整為類(lèi)似于 JavaScript。
Reason使用項(xiàng)目 BucketScript編譯為 JavaScript,并且可以訪問(wèn) 80% 的 JavaScript 工具和生態(tài)系統(tǒng)。它還可以編譯為準(zhǔn)系統(tǒng)、iOS、Android 和微控制器。
Red
Red是一種最初旨在克服 Rebol 語(yǔ)言限制的編程語(yǔ)言。Red 于 2011 年推出,受 Rebol、Lua 和 Scala 等語(yǔ)言的影響,對(duì)高級(jí)和低級(jí)編程都很有用。
該語(yǔ)言可用于開(kāi)發(fā)從高級(jí) GUI 到低級(jí)操作系統(tǒng)的所有方面。Red 擁有人性化的語(yǔ)法、低內(nèi)存占用和垃圾收集等優(yōu)點(diǎn)。
Rust
Rust解決了一些與 Go 相同的問(wèn)題,如系統(tǒng)級(jí)別的線程和進(jìn)程安全,,但Rust 更像 C 風(fēng)格的語(yǔ)法
但Rust語(yǔ)言的缺點(diǎn):靜態(tài)類(lèi)型和缺乏垃圾收集
Rust可直接訪問(wèn)內(nèi)存意味著程序員可以編寫(xiě)低級(jí)代碼,如操作系統(tǒng)內(nèi)核。Rust 也非常適合嵌入式設(shè)備、網(wǎng)絡(luò)服務(wù)和命令行編寫(xiě)。
Go剛出那幾年一直在用它,我很確定不可能替代js。目前所有編程語(yǔ)言中,只有c/c++與js分別在OS/Browser領(lǐng)域成為“標(biāo)準(zhǔn)”,連Python在cg領(lǐng)域都被c#、js入侵,這種路徑效應(yīng),是幾十年都很難改變的。
但是,如果使用Node做服務(wù)器端開(kāi)發(fā)則要小心,除非是采用typescript或者可以良好的應(yīng)用函數(shù)式編程,否則得不償失。服務(wù)器端,就應(yīng)該跑設(shè)計(jì)良好的靜態(tài)語(yǔ)言,或者是函數(shù)式的動(dòng)態(tài)語(yǔ)言(因?yàn)楹瘮?shù)式天生更健壯),anders說(shuō)過(guò)(c#作者):你告訴編譯器的越多,它為你做的越多;以前的瀏覽器端只能跑腳本語(yǔ)言是沒(méi)辦法,因?yàn)榇a是客戶(hù)端過(guò)來(lái),必須解釋執(zhí)行。
以前c++、java開(kāi)發(fā)效率不夠,所以才導(dǎo)致Python,Ruby、PHP等動(dòng)態(tài)語(yǔ)言的流行,現(xiàn)在靜態(tài)語(yǔ)言及其框架的開(kāi)發(fā)效率已經(jīng)接近動(dòng)態(tài)語(yǔ)言。像F#這樣支持自動(dòng)泛化的語(yǔ)言,可以擁有動(dòng)態(tài)語(yǔ)言同等水平的簡(jiǎn)潔性,卻仍可確保類(lèi)型安全。
單從運(yùn)行速度兩個(gè)語(yǔ)言都很優(yōu)秀,但運(yùn)行速度不是我們唯一追求的指標(biāo),就像匯編語(yǔ)言寫(xiě)的程序運(yùn)行速度很快,但我們絕大多場(chǎng)合都不會(huì)采用它。
背后更重要的還有這門(mén)語(yǔ)言對(duì)應(yīng)的生態(tài)。
比如企業(yè)要用人的時(shí)候能不能快速招到會(huì)使用它的人? 對(duì)求職者來(lái)說(shuō),我學(xué)習(xí)這門(mén)語(yǔ)言能不能帶來(lái)更多的工作機(jī)會(huì)?用這個(gè)語(yǔ)言開(kāi)發(fā)應(yīng)用的時(shí)候遇到問(wèn)題的時(shí)候能不能快速找到資料并得以解決?
go語(yǔ)言歷史長(zhǎng)、生態(tài)好、運(yùn)行速度快,在服務(wù)端上面有所作為,比如為比特幣、萊特幣開(kāi)發(fā)的閃電網(wǎng)絡(luò)就是用go寫(xiě)的。 語(yǔ)法上和類(lèi)C語(yǔ)言有很大不同。
Dart是新出的語(yǔ)言,配合flutter是很好的客戶(hù)端開(kāi)發(fā)語(yǔ)言。 語(yǔ)法沒(méi)那么奇怪, 因?yàn)樾滤陨鷳B(tài)自然是跟不上的。
Dart能不能用在服務(wù)端? 我個(gè)人覺(jué)得是可以, 畢竟可以Dart是可以轉(zhuǎn)成javascript的,運(yùn)行在Nodejs下, 借助于NodeJs生態(tài),dart也可以做很多事情。
不知道你們有沒(méi)有注意到,現(xiàn)在有很多新語(yǔ)言都支持翻譯成Javascript。比如新的dart、kotlin, 還有ts是直接針對(duì)javascript語(yǔ)法加強(qiáng)而獲得成功。
話(huà)說(shuō)得再多, 不如自己親自去體驗(yàn)一下。 jsrun上面支持30多種語(yǔ)言的在線運(yùn)行環(huán)境, 先體驗(yàn)再做決定你到底要學(xué)哪一門(mén)語(yǔ)言。
DART
關(guān)于Dart與Golang 在chrome瀏覽器中嵌入一個(gè)Dart虛擬機(jī),可以用Dart語(yǔ)言開(kāi)發(fā)... Dart更像JAVA。
新聞標(biāo)題:go語(yǔ)言dart go語(yǔ)言大數(shù)據(jù)
轉(zhuǎn)載來(lái)于:http://chinadenli.net/article16/hejcgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、App設(shè)計(jì)、建站公司、網(wǎng)站策劃、面包屑導(dǎo)航、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)