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

創(chuàng)新互聯(lián)公司憑借專業(yè)的設(shè)計(jì)團(tuán)隊(duì)扎實(shí)的技術(shù)支持、優(yōu)質(zhì)高效的服務(wù)意識(shí)和豐厚的資源優(yōu)勢(shì),提供專業(yè)的網(wǎng)站策劃、成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)站優(yōu)化、軟件開(kāi)發(fā)、網(wǎng)站改版等服務(wù),在成都十余年的網(wǎng)站建設(shè)設(shè)計(jì)經(jīng)驗(yàn),為成都近千家中小型企業(yè)策劃設(shè)計(jì)了網(wǎng)站。
Elixir
Elixir 比 Erlang 更容易編寫,具有 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ù)雜的用戶界面,開(kāi)發(fā)人員可以通過(guò) Elm 快速編寫富有表現(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 支持類型推斷,與其他語(yǔ)言相比,需要明顯類型注釋要少得多。
Swift
Swift是一種由蘋果公司開(kāi)發(fā)的通用編譯編程語(yǔ)言,最早的設(shè)想是替代上一代編程語(yǔ)言O(shè)bjective-C ,過(guò)程中結(jié)合了Objective-C、Rust、Ruby 和 Python等語(yǔ)言的編程思想。目前Swift用于開(kāi)發(fā)蘋果自己的手機(jī)、服務(wù)器、臺(tái)式機(jī)上的應(yīng)用軟件。
程序語(yǔ)言
Go
Go語(yǔ)言是由谷歌公司創(chuàng)造的類似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可以輕松編寫JavaScript、Java for Android、本地機(jī)器代碼或獨(dú)立的 Dart 虛擬機(jī)。它還可以運(yùn)行后端代碼。
Dart 非常適合使用事件驅(qū)動(dòng)代碼構(gòu)建用戶界面。根據(jù)Dart 團(tuán)隊(duì)成員的說(shuō)法,Dart的優(yōu)勢(shì):可選的靜態(tài)類型、最小的編譯時(shí)錯(cuò)誤和強(qiáng)大的內(nèi)置編輯器。
Pony
Pony是一種基于無(wú)數(shù)據(jù)競(jìng)爭(zhēng)類型和垃圾收集的語(yǔ)言,并使用 actor 模型以及稱為引用功能的東西。
你可以把 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)類型定義構(gòu)建,并由微軟維護(hù)且開(kāi)源編程語(yǔ)言。Visual Studio Code 或Visual Studio 是推薦的IDE編輯器,微軟大廠的用戶體驗(yàn)和錯(cuò)誤檢查也不用懷疑。
復(fù)合編程語(yǔ)言
Hack
Hack是一種作為 PHP 方言的 HipHop 虛擬機(jī)的編程語(yǔ)言。于 2014 年由Facebook創(chuàng)建,允許程序員同時(shí)使用靜態(tài)和動(dòng)態(tài)類型(也稱為漸進(jìn)類型),這為編碼提供了靈活性。
Julia
Julia是一種高級(jí)通用編程語(yǔ)言,用于計(jì)算科學(xué)和數(shù)值分析。Julia 以動(dòng)態(tà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)類型語(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ù)式、命令式和類型安全,也具有面向?qū)ο蠊δ堋?/p>
OCaml 的一些優(yōu)勢(shì):定義數(shù)據(jù)類型很容易。默認(rèn)情況下,所有變量都是不可變的。API 穩(wěn)定,具有良好的庫(kù)向后兼容性。該語(yǔ)言還為獨(dú)立應(yīng)用程序提供自動(dòng)內(nèi)存管理和單獨(dú)編譯。
Reason
如果比JavaScript 更快、更簡(jiǎn)單且類型安全會(huì)怎樣?
這就是創(chuàng)建Reason的 Facebook 開(kāi)發(fā)者想要回答的問(wèn)題。不過(guò),他并沒(méi)有從頭開(kāi)始構(gòu)建一種新語(yǔ)言,而是采用了 OCaml,并將其調(diào)整為類似于 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)類型和缺乏垃圾收集
Rust可直接訪問(wèn)內(nèi)存意味著程序員可以編寫低級(jí)代碼,如操作系統(tǒng)內(nèi)核。Rust 也非常適合嵌入式設(shè)備、網(wǎng)絡(luò)服務(wù)和命令行編寫。
Kotlin的優(yōu)勢(shì)很明顯,因?yàn)镴VM是宇宙第一運(yùn)行時(shí)
Kotlin的劣勢(shì)也非常明顯,就是基于宇宙第一運(yùn)行時(shí)。JVM吃內(nèi)存的問(wèn)題這輩子感覺(jué)是沒(méi)希望解決了
目前,計(jì)算機(jī)語(yǔ)言的總數(shù)總計(jì)達(dá)9000種。但是,其中只有50種編程語(yǔ)言是較為流行的。今天,小編就給大家盤點(diǎn)一下2020年最受歡迎的編程語(yǔ)言。
1、Python
Python是目前開(kāi)發(fā)人員比較常用的編程語(yǔ)言之一。有很多大企業(yè)都選擇Python進(jìn)行產(chǎn)品開(kāi)發(fā),比如:NASA,Google,Instagram,Spotify,Uber,Netflix等,而且很奇妙的一點(diǎn)是,無(wú)論是初學(xué)者還是專業(yè)人員,都很喜歡Python,由此可見(jiàn)它的受歡迎程度。如果你是大數(shù)據(jù)職業(yè)的技術(shù)專業(yè)人員,那么Python可以說(shuō)是最合適的。
2、R
R是一種可以輕松連接到數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)的語(yǔ)言,但其實(shí)它本身不提供任何電子表格數(shù)據(jù)視圖。不過(guò),R語(yǔ)言最大的特點(diǎn)是為數(shù)據(jù)表示提供了多種圖形功能,例如條形圖,餅圖,時(shí)間序列,點(diǎn)圖,3D表面,圖像圖,地圖,散點(diǎn)圖等。R語(yǔ)言可以幫助用戶很容易地自定義圖形,并開(kāi)發(fā)有特點(diǎn)的新奇的圖形。
3、Java
Java出現(xiàn)之后,它就以其在數(shù)據(jù)科學(xué)技術(shù)中的多功能性而廣為人知。而且,用于處理和存儲(chǔ)大數(shù)據(jù)應(yīng)用程序的開(kāi)源框架Hadoop HDFS已完全用Java編寫。Java還被廣泛用于構(gòu)建各種ETL應(yīng)用程序,例如Apache,Apache Kafka和Apache Camel等,這些應(yīng)用程序用于運(yùn)行數(shù)據(jù)提取,數(shù)據(jù)轉(zhuǎn)換以及在大數(shù)據(jù)環(huán)境中的加載。
4、Scala
Scala是一種開(kāi)源高級(jí)編程語(yǔ)言,目前主要是金融行業(yè)在著重使用。Scala的一個(gè)最大的特點(diǎn),是能夠保證其在大數(shù)據(jù)可用性方面的重要性。總之,Apache Spark是用于大數(shù)據(jù)應(yīng)用程序的集群計(jì)算框架,大數(shù)據(jù)從業(yè)者一般都需要具備Scala相關(guān)的豐富的知識(shí)和操作經(jīng)驗(yàn)。
5、Kotlin
Kotlin是一款很不錯(cuò)的的Android應(yīng)用開(kāi)發(fā)語(yǔ)言,可以在JVM上運(yùn)行,在一定程度上克服了Java的某些缺點(diǎn),提供許多現(xiàn)代功能。Kotlin的主要特點(diǎn)在于它的語(yǔ)言設(shè)計(jì),它提供了優(yōu)秀的指針、安全性、類型推斷等功能。現(xiàn)有Java庫(kù)龐大的生態(tài)系統(tǒng)都可供Kotlin使用,因?yàn)镵otlin也運(yùn)行在JVM中。
總體說(shuō), 對(duì)于大部分普通程序員, 可算比較完美了(綜合考量語(yǔ)言自身\平臺(tái)及庫(kù)\IDE等工具\(yùn)背后支持公司). 目前主要風(fēng)格還是偏OO, 如果可以再偏FP一點(diǎn)會(huì)更好. 像是一個(gè)Scala與C#的合體, 比Scala簡(jiǎn)單得多; 比C#更干凈, 因?yàn)闆](méi)有歷史包袱. 我多多少少寫過(guò)代碼的語(yǔ)言超過(guò)10種, Kotlin與F#是感覺(jué)最舒適的, 另外Kotlin是少有的和Go/Python一樣寫代碼時(shí)不需要程序員動(dòng)腦的語(yǔ)言, 很適合開(kāi)發(fā)普通項(xiàng)目.與Scala有根本設(shè)計(jì)思路上的不同, Scala是一切盡量自己來(lái), 實(shí)在不夠用了再用java的; Kotlin是盡量用Java的, 不夠用了再擴(kuò)展, 尤其體現(xiàn)在二者的容器庫(kù)上, 導(dǎo)致Kotlin的學(xué)習(xí)曲線極低, 這對(duì)于我這樣的普通碼農(nóng)是一大優(yōu)點(diǎn), 而高手們可能更看重Scala強(qiáng)大的容器庫(kù)和完備的FP功能, 所以個(gè)人估計(jì)它很難吸引Scala程序員.比較喜歡的幾點(diǎn):既有FP的everything is an expression風(fēng)格, 可以直接用if等表達(dá)式賦值, 又可以用label控制return, 使得return可以用于lambda中, 進(jìn)而在lambda中使用衛(wèi)述句直接return, 減少巢式嵌套, 這點(diǎn)做的比Scala漂亮. 我個(gè)人非常喜歡使用衛(wèi)述句, 一直為不能在FP語(yǔ)言中用衛(wèi)述句而感到遺憾, Kotlin很好的解決了這個(gè)問(wèn)題.可以像F#/Go一樣直接在package內(nèi)寫函數(shù), 不需要所有東西都放進(jìn)一個(gè)object/class之類的, 代碼看著很舒服. 說(shuō)起來(lái), Kotlin的設(shè)計(jì)定位有點(diǎn)像jvm下的Go, 追求簡(jiǎn)潔實(shí)用, 但比Go好用(主要在泛型/FP兩方面). 目前雖然沒(méi)有自己的actor庫(kù), 但可以用akka, 這點(diǎn)就顯示出jvm的多語(yǔ)言群毆優(yōu)勢(shì)了.目前編譯器和插件還不如Scala的成熟, idea下曾碰到過(guò)IDE內(nèi)部錯(cuò)誤之類的問(wèn)題, 自動(dòng)完成也經(jīng)常出問(wèn)題, 不過(guò)實(shí)際影響很小. 另外比較意外的是沒(méi)有union而一定要用data class或Pair/Triple, 也沒(méi)有type alias, 原來(lái)代碼里用的太多, 改起來(lái)有點(diǎn)煩, 但想一想Scala的編譯時(shí)間和類型系統(tǒng), 忍了吧.估計(jì)會(huì)先在Android上開(kāi)始流行, 慢慢擴(kuò)展到server端. 但要達(dá)到Scala目前的流行程度, 短期內(nèi)是不可能了, 希望今年能出1.0.以后有新感想了再說(shuō)2015.06.01補(bǔ)充一段其設(shè)計(jì)者對(duì)于集合庫(kù)的說(shuō)明:“Scala 的經(jīng)驗(yàn)表明,有自己的集合庫(kù) — 總的來(lái)說(shuō)很不錯(cuò) — 可以帶來(lái)明顯優(yōu)勢(shì),但在需要與Java代碼互操作時(shí)也存在缺點(diǎn):所有數(shù)據(jù)都需要轉(zhuǎn)換/包裝,因此代碼有點(diǎn)難看,性能有時(shí)會(huì)大打折扣。鑒于此,Kotlin采用了另一種策略:我們使用簡(jiǎn)單的Java集合,但通過(guò)提取“虛擬”只讀接口并引入聲明位置變量使它們有不俗的表現(xiàn)。這樣,既可兼顧兼容性,又可得到一個(gè)好用的庫(kù)。Kotlin 依賴于Java庫(kù),但可以增強(qiáng)Java庫(kù)的功能,主要是通過(guò)擴(kuò)展,但有時(shí)使用編譯器支持的技術(shù)(集合/數(shù)組/基元),這在保證兼容性的同時(shí)保持了語(yǔ)言的純凈.” -- Andrey
本文題目:go語(yǔ)言kotlin go語(yǔ)言教程
分享地址:http://chinadenli.net/article14/dojepge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、網(wǎng)站維護(hù)、企業(yè)建站、、域名注冊(cè)、軟件開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)