99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

kotlingo語言 kotlin語言中文

近幾年有哪些編程語言?

目前,計算機語言的總數總計達9000種。但是,其中只有50種編程語言是較為流行的。今天,小編就給大家盤點一下2020年最受歡迎的編程語言。

10年積累的成都做網站、網站建設經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先建設網站后付款的網站建設流程,更有集安免費網站建設讓你可以放心的選擇與我們合作。

1、Python

Python是目前開發人員比較常用的編程語言之一。有很多大企業都選擇Python進行產品開發,比如:NASA,Google,Instagram,Spotify,Uber,Netflix等,而且很奇妙的一點是,無論是初學者還是專業人員,都很喜歡Python,由此可見它的受歡迎程度。如果你是大數據職業的技術專業人員,那么Python可以說是最合適的。

2、R

R是一種可以輕松連接到數據庫管理系統(DBMS)的語言,但其實它本身不提供任何電子表格數據視圖。不過,R語言最大的特點是為數據表示提供了多種圖形功能,例如條形圖,餅圖,時間序列,點圖,3D表面,圖像圖,地圖,散點圖等。R語言可以幫助用戶很容易地自定義圖形,并開發有特點的新奇的圖形。

3、Java

Java出現之后,它就以其在數據科學技術中的多功能性而廣為人知。而且,用于處理和存儲大數據應用程序的開源框架Hadoop HDFS已完全用Java編寫。Java還被廣泛用于構建各種ETL應用程序,例如Apache,Apache Kafka和Apache Camel等,這些應用程序用于運行數據提取,數據轉換以及在大數據環境中的加載。

4、Scala

Scala是一種開源高級編程語言,目前主要是金融行業在著重使用。Scala的一個最大的特點,是能夠保證其在大數據可用性方面的重要性。總之,Apache Spark是用于大數據應用程序的集群計算框架,大數據從業者一般都需要具備Scala相關的豐富的知識和操作經驗。

5、Kotlin

Kotlin是一款很不錯的的Android應用開發語言,可以在JVM上運行,在一定程度上克服了Java的某些缺點,提供許多現代功能。Kotlin的主要特點在于它的語言設計,它提供了優秀的指針、安全性、類型推斷等功能。現有Java庫龐大的生態系統都可供Kotlin使用,因為Kotlin也運行在JVM中。

如何評價 Kotlin 語言?

kotlin是一門現代的編程語言呢,這門編程語言的設計符合很多現代編程語言的思維。簡化編程語言,提升開發效率,跨平臺開發,空安全,類型轉換,協程,函數式編程,兼容龐大的資源庫,工具友好等等。

這些特點,是新一代的編程語言的追求的特色。比如說Go,Swift等。kotlin是這一輪新的編程語言的大潮中,綜合實力非常突出的佼佼者。

可用于開發跨平臺的應用。kotlin是一門真正全棧式的編程語言,可以開發web,Socket,安卓,js,NativeApp等。投資這門編程語言的收益率,太高了。

然后,它是一門靜態編譯型的編程語言。在很多專業的評測當中,性能基本跟原生Java相當。但是,某些項目會更省內存。使用Kotlin開發安卓,app的體積大約會增加1MB。

最后,與java和android 100%可互相操作。由于跟java一樣,基于JVM引擎生成字節碼,所以kotlin跟java和android,那是100%兼容的。說白一點,kotlin可以拿所有java的資源來用,干所有java能干的活,然后能比java干的更好。

每個開發人員都應該知道的16個頂級新計算機編程語言

函數式語言

Elixir

Elixir 比 Erlang 更容易編寫,具有 Haskell 等語言的函數式編程概念。Elixir是基于Erlang 虛擬機的,其廣為人知的特點是運行低延時、分布式、可容錯的系統,并成功用于Web開發與嵌入式軟件領域。

Elm

Elm是一種用于構建 Web 應用程序的函數式語言。業內一般認為,它適用于創建高可交互應用,例如復雜的用戶界面,開發人員可以通過 Elm 快速編寫富有表現力的系統。Elm 也以沒有運行時異常而聞名。

PureScript

PureScript是一種可編譯為 JavaScript 的純函數式編程語言。與 Haskell 最相似的是,PureScript 最適合用于開發 Web 應用程序和服務器端應用程序。

PureScript 支持類型推斷,與其他語言相比,需要明顯類型注釋要少得多。

Swift

Swift是一種由蘋果公司開發的通用編譯編程語言,最早的設想是替代上一代編程語言Objective-C ,過程中結合了Objective-C、Rust、Ruby 和 Python等語言的編程思想。目前Swift用于開發蘋果自己的手機、服務器、臺式機上的應用軟件。

程序語言

Go

Go語言是由谷歌公司創造的類似C風格的語言。Go 比 C++ 或 Java 更簡潔,比 Ruby 或 Python 更安全。

一些缺點: 編碼要求嚴格。比如,不能混用符號和無符號整數。還有一個明顯的遺漏,Go語言沒有泛型和繼承。

但Go語言的優勢同樣明顯,簡單且易于使用。Go語言擅長于網絡和多線程方面的編程。

面向對象語言

DART

Dart同樣來自谷歌公司具有C語言風格。Dart可以輕松編寫JavaScript、Java for Android、本地機器代碼或獨立的 Dart 虛擬機。它還可以運行后端代碼。

Dart 非常適合使用事件驅動代碼構建用戶界面。根據Dart 團隊成員的說法,Dart的優勢:可選的靜態類型、最小的編譯時錯誤和強大的內置編輯器。

Pony

Pony是一種基于無數據競爭類型和垃圾收集的語言,并使用 actor 模型以及稱為引用功能的東西。

你可以把 Pony 想象成某種“Rust 遇上 Erlang”的復合體,沒有鎖,高并發是其主要優點。

Pony 的缺點是 API 穩定性低、很少有高質量的第三方庫和有限的本地工具。

TypeScript

TypeScript是一個基于 JavaScript 靜態類型定義構建,并由微軟維護且開源編程語言。Visual Studio Code 或Visual Studio 是推薦的IDE編輯器,微軟大廠的用戶體驗和錯誤檢查也不用懷疑。

復合編程語言

Hack

Hack是一種作為 PHP 方言的 HipHop 虛擬機的編程語言。于 2014 年由Facebook創建,允許程序員同時使用靜態和動態類型(也稱為漸進類型),這為編碼提供了靈活性。

Julia

Julia是一種高級通用編程語言,用于計算科學和數值分析。Julia 以動態類型和可重現的高性能特性而聞名。

Julia 在數據可視化和機器學習等方面都有大量用途。事實上,它被英國保險公司 Aviva 用于風險計算,紐約聯邦儲備銀行用于金融建模,甚至氣候建模聯盟用于氣候變化建模。它擁有Fortran、C++、R、Java、C 、Python等的接口,這使其成為最受追捧的新語言之一。

Kotlin

Kotlin是運行在 Java 虛擬機中的更快、更流暢的 Java 版本。它現在是Android 開發的首選語言。根據 Android 開發者網站顯示,程序員正轉而采用 Kotlin,因為該語言的樣板代碼更少,空指針異常更少,并且與 Java 有互操作性。

Kotlin 可用于在 iOS 和 Android 上運行的應用程序、不使用額外運行時或虛擬機。

Nim

Nim是一種優先考慮可讀性的靜態類型語言。通過結合多種語言的特性,Nim 為程序員提供了速度和易用性。

它帶有 JavaScript 后端、分散的包管理、自動內存管理、C 和 C++ 庫的綁定以及用于調試的回溯。作為一種語言,Nim 是有限的,但它包含一組元編程功能,如泛型、模板和宏,因此開發人員可以在避免冗長代碼的同時以不同的風格工作。

OCaml作為此列表中較舊的語言,OCaml是一種多范式語言——既有函數式、命令式和類型安全,也具有面向對象功能。

OCaml 的一些優勢:定義數據類型很容易。默認情況下,所有變量都是不可變的。API 穩定,具有良好的庫向后兼容性。該語言還為獨立應用程序提供自動內存管理和單獨編譯。

Reason

如果比JavaScript 更快、更簡單且類型安全會怎樣?

這就是創建Reason的 Facebook 開發者想要回答的問題。不過,他并沒有從頭開始構建一種新語言,而是采用了 OCaml,并將其調整為類似于 JavaScript。

Reason使用項目 BucketScript編譯為 JavaScript,并且可以訪問 80% 的 JavaScript 工具和生態系統。它還可以編譯為準系統、iOS、Android 和微控制器。

Red

Red是一種最初旨在克服 Rebol 語言限制的編程語言。Red 于 2011 年推出,受 Rebol、Lua 和 Scala 等語言的影響,對高級和低級編程都很有用。

該語言可用于開發從高級 GUI 到低級操作系統的所有方面。Red 擁有人性化的語法、低內存占用和垃圾收集等優點。

Rust

Rust解決了一些與 Go 相同的問題,如系統級別的線程和進程安全,,但Rust 更像 C 風格的語法

但Rust語言的缺點:靜態類型和缺乏垃圾收集

Rust可直接訪問內存意味著程序員可以編寫低級代碼,如操作系統內核。Rust 也非常適合嵌入式設備、網絡服務和命令行編寫。

如何評價 Kotlin 語言

總體說, 對于大部分普通程序員, 可算比較完美了(綜合考量語言自身\平臺及庫\IDE等工具\背后支持公司). 目前主要風格還是偏OO, 如果可以再偏FP一點會更好. 像是一個Scala與C#的合體, 比Scala簡單得多; 比C#更干凈, 因為沒有歷史包袱. 我多多少少寫過代碼的語言超過10種, Kotlin與F#是感覺最舒適的, 另外Kotlin是少有的和Go/Python一樣寫代碼時不需要程序員動腦的語言, 很適合開發普通項目.與Scala有根本設計思路上的不同, Scala是一切盡量自己來, 實在不夠用了再用java的; Kotlin是盡量用Java的, 不夠用了再擴展, 尤其體現在二者的容器庫上, 導致Kotlin的學習曲線極低, 這對于我這樣的普通碼農是一大優點, 而高手們可能更看重Scala強大的容器庫和完備的FP功能, 所以個人估計它很難吸引Scala程序員.比較喜歡的幾點:既有FP的everything is an expression風格, 可以直接用if等表達式賦值, 又可以用label控制return, 使得return可以用于lambda中, 進而在lambda中使用衛述句直接return, 減少巢式嵌套, 這點做的比Scala漂亮. 我個人非常喜歡使用衛述句, 一直為不能在FP語言中用衛述句而感到遺憾, Kotlin很好的解決了這個問題.可以像F#/Go一樣直接在package內寫函數, 不需要所有東西都放進一個object/class之類的, 代碼看著很舒服. 說起來, Kotlin的設計定位有點像jvm下的Go, 追求簡潔實用, 但比Go好用(主要在泛型/FP兩方面). 目前雖然沒有自己的actor庫, 但可以用akka, 這點就顯示出jvm的多語言群毆優勢了.目前編譯器和插件還不如Scala的成熟, idea下曾碰到過IDE內部錯誤之類的問題, 自動完成也經常出問題, 不過實際影響很小. 另外比較意外的是沒有union而一定要用data class或Pair/Triple, 也沒有type alias, 原來代碼里用的太多, 改起來有點煩, 但想一想Scala的編譯時間和類型系統, 忍了吧.估計會先在Android上開始流行, 慢慢擴展到server端. 但要達到Scala目前的流行程度, 短期內是不可能了, 希望今年能出1.0.以后有新感想了再說2015.06.01補充一段其設計者對于集合庫的說明:“Scala 的經驗表明,有自己的集合庫 — 總的來說很不錯 — 可以帶來明顯優勢,但在需要與Java代碼互操作時也存在缺點:所有數據都需要轉換/包裝,因此代碼有點難看,性能有時會大打折扣。鑒于此,Kotlin采用了另一種策略:我們使用簡單的Java集合,但通過提取“虛擬”只讀接口并引入聲明位置變量使它們有不俗的表現。這樣,既可兼顧兼容性,又可得到一個好用的庫。Kotlin 依賴于Java庫,但可以增強Java庫的功能,主要是通過擴展,但有時使用編譯器支持的技術(集合/數組/基元),這在保證兼容性的同時保持了語言的純凈.” -- Andrey

對比Go 語言,Kotlin 有什么優勢和劣勢

Kotlin的優勢很明顯,因為JVM是宇宙第一運行時

Kotlin的劣勢也非常明顯,就是基于宇宙第一運行時。JVM吃內存的問題這輩子感覺是沒希望解決了

如何學習Kotlin編程語言

為什么說 Kotlin 是優秀的

本文不會像一般介紹語言的文章那樣,一開頭就羅列出語言那些酷炫的特性,我們稍后再來探討這些內容。

首先我將介紹一些其它的信息,因為2013 年一項研究顯示,當開發者評估一種編程語言時生態系統要比語言特性更重要。這符合我個人的經驗,下面就讓我開始介紹吧:

Kotlin 被編譯成 JVM 字節碼或者 JavaScript 代碼。Java 開發者將會是對它最感興趣的人,不過對于使用垃圾收集運行時語言的開發者而言它也具有一定的吸引力,比如 Scala、Go、Python、Ruby 和 JavaScript 等語言。

Kotlin 來自業界,而不是學術界。它解決了開發者現今面臨的實際問題。例如它的類型系統可以幫助你避免空指針異常。

切換到 Kotlin 無需成本!它是開源的但這不是重點,重點是它提供了一個高質量的一鍵從 Java 轉換到 Kotlin 的工具,并且十分關注 Java 二進制文件的兼容性。你可以將現有 Java 項目的一次性轉換成 Kotlin 項目,而該項目仍將可以正常編譯,即使這是一個包含上百萬行代碼的復雜程序。

顯然你可以從上文得知,Kotlin 程序能夠使用所有現存的 Java 框架和庫,甚至那些依賴注解處理的高級框架。它們之間的交互是無縫的,不需要包裝或者適配層。Kotlin 可以整合 Maven,Gradle 以及其它構建系統。

它十分平易近人,語法精煉直觀,僅僅是閱讀語言參考文檔幾個小時就能學會使用。Kotlin 看起來十分像 Scala 但是更加簡潔并且兼顧了可讀性。

它不遵循特定的編程哲學,例如極度的函數式編程或者面向對象編程風格。

它不會增加運行時的開銷。Kotlin 的標準庫十分小巧緊湊:專注于擴展 Java 標準庫,編譯階段的大量內聯操作意味像 map/filter/reduce 等管道結構函數將被編譯成類似于命令式語言的代碼。

Anko 與 Kovenant 等框架的出現意味著在 Android 開發者中 Kotlin 開始變得流行起來。如果你正在從事 Android 相關的工作,相信你很快就會獲得好的工作。你可以閱讀這份 Square 公司開發者 JakeWharton 的報告,了解用 Kotlin 進行 Android 開發的體驗。

Kotlin 允許你繼續使用你的工作效率提升工具。IntelliJ 的 IDE 對 Kotlin 的支持十分完善:你可以對代碼進行重構、搜索、導航以及使用自動完成,而且 IDE 充分支持調試、單元測試、性能分析等等功能。

除了 Android,我認為 Kotlin 還非常適用于企業中 Java 的應用場景。如果你的工作是整天埋頭于大公司的代碼庫中,那么當 Kotlin 1.0 版本正式發布時你應該盡快去了解一下:

由知名公司為它提供強大的商業支持。 JetBrains 這家公司 有一個高度稱職的大團隊致力于該項目,有穩定的商業模式甚至在自己的部分旗艦產品中使用 Kotlin,這表明短期內 Kotlin 不會被放棄。

使用 Kotlin 風險較低:可以由一兩個感興趣的團隊成員在項目中小范圍的試驗 Kotlin,這并不會擾亂你的項目,因為 Kotlin 的類對外提供的 Java API 看起來就與普通的 Java 代碼一樣。

因為 Kotlin 十分注重語法的可讀性,代碼審查不會成為問題,對 Kotlin 不熟悉的團隊成員仍然能夠完成該工作。

Kotlin 基于 Java 6,所以假如你難以在項目中升級使用新版本的 JVM,你可以使用 Kotlin。

今年早些時候我向 Swiss Re 這家瑞士再保險公司的團隊(他們使用 Java 和 .NET)展示了 Kotlin。首先我定義了一個簡單的 Java 類包含一些字段以及 toString、equals、hashCode 等方法,大概有 50 行代碼。然后我將它轉換成 Kotlin 代碼(大部分是自動完成的),結果僅剩 1 行代碼,接著我還演示了其它節省時間的特性。他們看過后對 Kotlin 充滿了熱情并且認為 Kotlin 是它們項目中 C# 語言的一個潛在競爭對手。

我認為 Kotlin 正中企業 Java 開發者的紅心,所以盡管 Kotlin 是免費的,JetBrains 還是能夠通過它增加商業版本 IDE 的銷售來賺大錢。這將激勵他們根據用戶的意愿持續改進它。

與此相比,對于那些由不相關產品資助的語言開發者來說,當用戶需求與之前的設計理念沖突時,他們很少會因此作出調整。

特性

Kotlin 作為一門新的編程語言能夠脫穎而出,是因為它關注生態系統:JetBrains 懂得生產力的高低更多的取決于生態系統而不是便捷的語法。

盡快如此,Kotlin 還是有許多有用的特性能讓你編碼的過程變得愉快:

我們已經提過 null 安全(可選),它能夠讓編譯器系統的標記潛在的空指針引用。與一些語言不同的是它不涉及 option 類,因此是零開銷的,并且還有其它語言特性確保它不會造成不便。

精煉的語法:無處不在的類型推斷、簡單的函數只需要一行、簡單的結構以及 JavaBeans 也只需要一行就能聲明、真正的屬性——可以在背后自動生成 getFoo/setFoo 方法用于與 Java 進行交互、函數可以獨立存在于類之外。

異常均為非檢查型。(譯者注:感興趣的可以閱讀一下Java 理論與實踐: 關于異常的爭論)

使用 data class 關鍵字創建數據類會自動生成通用方法,例如 equals、hashCode、toString 以及 copy 和 componentN(同時聲明多個變量時會調用該方法)。這將幫助你在不使用構建器的情況下便捷的獲得不變類(immutable classes)。

但如果你需要構造復雜的結構體,借助類型安全的構建器這個特性可以簡潔的實現。如果你使用 Google Protocol Buffers 來存儲結構化數據, 通過 KBuilders 這個庫也能很輕易做到。

支持函數式編程以及零開銷的 lambda 表達式,能夠在 Java 的集合中做 Map、Filter、Folder 等處理。Kotlin 的類型系統能夠自動識別可變或者不可變的集合。

擴展函數特性能夠讓你在不改動源碼的情況下為類添加方法。乍眼一看以為是為了避免寫出像 FooUtils 這種風格工具類的語法糖,不過隨著使用的加深,你會認識到它不僅能幫你更加容易的通過自動完成使用方法,還能協助你集成現有的 Java API 以及借助其它 Kotlin 特性構建功能強大的擴展。

支持運算符重載,但是不會像 Scala 或者 Perl 那樣出現難以理解的代碼。運算符被映射成相應名字的方法,通過重寫這些方法改變運算符的行為(包括函數調用),但是不能定義新的運算符。這使得程序能夠兼顧功能與可讀性。

Kotlin 沒有宏或者其它的方式來重定義語言,但是通過這些精心設計的特性能夠使第三方庫自由的對它進行擴展,官方對集合類進行的擴展也只是小試牛刀而已,請看以下例子。

想使用 fibers、actors 和 Go 風格的 channels?一個名為 Quasar 的庫已經為你實現了。

使用 Markdown 替代 HTML 來編寫 API 文檔,這樣編寫 JavaDocs 可比以前舒適多了。(譯者注:JetBrains 提供了相應的文檔生成器 Dokka)

更好用的泛型。如果你沒有完全掌握泛型參數中 super 以及 extends 的含義,別擔心,這不是你的錯。Java 的泛型的確令人費解,Kotlin 解決了這個問題。

委托是一個大家都知道的設計模式,Kotlin 原生支持它。

== 運算符的行為符合預期(譯者注:簡單來說 a == b 相當于 a.equals(b);新增了 === 運算符,用來判斷運算符兩邊是否指向同一個對象)

想快速便捷的進行異步編程嗎?當然!

字符串插值“可以使用這樣的寫法在字符創中直接引用變量 {this.example}”

函數中的參數可以指定默認值、使用可變長度以及通過參數名傳參。

還有許多的調整與優化。假如 Java 中有某些讓你覺得困擾的問題,我相信 Kotlin 一定已經把它處理好了。

現在就來試用一下!

跟很多現代編程語言一樣,Kotlin 可以通過網頁瀏覽器來進行體驗。不過跟其他語言不一樣的是,Kotlin 的實驗網站提供了一個成熟的 IDE,包括響應很快的自動完成,實時的后臺編譯,甚至還有在線的靜態分析!

在線試用一下吧

好了,讓我們繼續接下來的內容

目前存在哪些問題?

生活中沒有什么是完美的,包括 Kotlin。以下是我嘗試這門語言時遇到的一些問題。

最大的問題是不夠成熟,因為 Kotlin 目前還處于 Beta 階段,這意味著:

每更新一個版本,語法、ABI 以及標準庫就變一次。好消息是這些變化通常比較微小,可以借助 IntelliJ IDE 來自動升級你的代碼,所以這個過程并不會太麻煩。

Java-to-Kotlin 的轉換工具(J2K)還沒有完成。它偶爾會大規模的破壞和默默地擦除 Java 8 中的 Lambdas(修改:2015 年 10 月:M13 版本的轉換工具已經可以正確地處理 Java 8 的特性了)。由它轉換而成的代碼并不總是最好的寫法,但是 JetBrains 為這個工具付出了大量努力,它已經是我用過的語言轉換工具中最好的了。所以我并不太擔心這個問題,這個轉換器正在迅速的改進中,變得越來越成熟。

你會遇到編譯器錯誤。盡管我的程序并不大,但還是會發生無法編譯的情況,甚至錯誤的編譯結果。診斷這些問題并不難,但終歸還是影響了開發的體驗。

你會遇到 IDE 內部錯誤。當這個錯誤發生時,IntelliJ IDE 會彈出一個懸浮窗口,附帶向 JetBrains 報告的選項。大部分錯誤無需理會,不過依然會使人厭煩。

偶爾會出現無法加載提示文檔的錯誤(修改:M14 版本發布后,這個問題已被修復)

目前 JetBrains 正致力于完善發布 1.0 版本而不是添加新的功能,期待這些問題能夠得到修復。

第二個我遇到的比較大的問題是,有時與 Java 的交互會受到局限。

一個典型的 Bug 是 Java 的類型系統無法防止你改變 Map 中 Key 的類型。按理來說,這樣操作應該導致編譯器報錯,例如使用類型錯誤的 Key 刪除元素。有些 JDK 中的集合使用了泛型,它們某些重要方法的泛型參數是 Obejct,所以編譯器不會提示。當在 IntelliJ IDE 中編寫 Java 代碼時會有靜態分析的警告,但是目前 Kotlin 環境還沒有這個功能。因為 Kotlin 使用的是 Java 的集合框架沒有自己實現,所以這導致了一些類型安全方面的問題,我已經遇到好幾次了。

(修改:1.0 Beta 版本中這個問題已經解決了,Java 中集合框架的類型安全缺陷在 Kotlin 已經不復存在。喲呵!)

另一個例子是,當調用或使用 Java 代碼時 Kotlin 的 Null 安全特性無法發揮作用(可以借助注解彌補)。作為 Kotlin 的初學者,剛開始你可能會寫許多調用 Java 庫的代碼,但是因為以上的問題它們并沒有你想象中那么好用。這種情況的改善只能等待 Kotlin 使用人數的增長。JetBrains 一直在嘗試使 Null 安全特性能體現在 Java 交互中,這種想法是好的,但有時考慮并太周全。(修改: 從 M13 版本開始,在 Java 代碼中將自動以 @NotNull @Nullable 等注解實現 Kotlin 的 Null 安全特性)

雖然有以上的問題存在,但同時也使得我們能更流暢的使用 Java API,我覺得這種權衡是值得的,只是在開發中要注意。

其它需要考慮的問題:

Kotlin 的社區還比較小。雖然目前沒有多少 Kotlin 的庫可以使用,但是憑借優秀的 Java 交互能力,Kotlin 可以使用現有成熟的 Java 庫。

如果你喜歡看書來學習,那么你需要等到今年晚些時候才能看到 Kotlin 開發者寫的書(譯者注:Kotlin in Action)

純粹的函數編程風格開發者可能會覺得類型系統中缺乏一些 Scala 或 Haskell 擁有的高級功能。如果你對類型系統一些功能比較看重,那么 Kotlin 可能不適合你。

Kotlin 還能編譯成 Javascript 代碼,但是比較少用,所以可能會遇到更多的問題,這是我從論壇中得到的印象。(修改: 目前 Kotlin 的開發重心在于完成 1.0 版本并使其穩定運行在 JVM 中,Javascript 方面的問題將會在 1.0 發布后著手解決)

沒有標準的編程風格指南,目前 Kotlin 提供了多種語法可供選擇。不同人寫出來的 Kotlin 代碼很可能完全不一樣。這與 Go 嚴格的風格形成了鮮明的對比。(修改: Kotlin 1.0 版本開始,一些靈活的語法已經被移除了,例如現在重載運算符以及定義中綴函數時必須分別使用 operator 和 infix 關鍵字進行標記)

Kotlin 的編譯速度稍稍慢于 Java,以及 IntelliJ IDE 的智能提示反應有點緩慢,不算嚴重而且比 Scala 快多了。(修改:Kotlin 1.0 開始編譯速度有了明顯提升)

Kotlin 有一個 Eclipse 插件,但是很明顯沒有 IntelliJ 的好用。

Kotlin 在某些方面比 Java 要嚴格。它不會自動將 Int 轉換為 Long 類型,需要開發者顯示的轉換。這是因為 Kotlin 關注正確性和試圖解決《Java Puzzlers》一書中提出的問題。JetBrains 聲稱他們已經搞定一半了。

Kotlin 基于 Java 6,因此會受到它的局限。Kotlin 與 C# 在很多領域都很相似甚至比 C# 做得更好,但是它缺少一些功能,例如 Java 平臺尚未支持的某些數據類型。

為什么應該開始考慮使用 JVM

最近一段時間我遇到了很多使用動態腳本語言(JavaScript 或者 Go —— 譯者注:Go 應該是靜態編譯型語言)的創業公司。

我在 Bitcoin Space 工作的時候,使用動態語言是非常痛苦的事情。在這些語言里沒有安全性的類型,這已經導致了巨大的貨幣損失。Go 比較少出錯,但是在基礎層面上給人的體驗依然很差,比如說缺少好的調試工具,快速 GC 機制,穩健的管理器以及可靠的分析工具。

過去 15 年或者更長時間里,Java 變得越來越健壯,越來越冗長,甚至有過度設計的跡象,這些變化很大程度上源于它的聲譽。企業級 Java 類的名字 PathVariableMapMethodArgumentResolver 就是例證。在很長一段時間里我沒有考慮 JVM,我確信這種環境并不適合我。

最終我因為 Android 被迫回到 Java,發現 Java 的開發環境已經改變了。雖然 XML 仍然不合時宜的頻繁出現在各種場合,但是一些基礎功能十分完善,令人印象深刻。 IntelliJ 是比 Eclipse 更快并且更智能的 IDE。Maven 一出現就得到了迅速的發展,擁有許多原本我想要其它構建 / 依賴系統增加的功能。較新的 Web 框架像 Ninja 和 Play 從類似 Ruby on Rails 的框架中學到了輕量簡潔。有大量的庫可供使用。硬件性能變得更高以及 JVM 變得更有效率,等等轉變。

沒有真正改變的是語言本身,Java 代碼寫起來依然是令人不快的冗長。

現在有了 Kotlin,完全無需承受離開 Java 現有的生態系統的疼苦。你可以編寫更富有表現力的代碼,但是卻比腳本語言更簡潔,同時擁有更好的性能和更少的錯誤。

如果你喜歡 JavaScript,可以嘗試 Kotlin 的 JS 后端,或者在 Nashorn JS 引擎里運行你現有的代碼。

最后,如果你喜歡 Go 語言是因為它可以編譯獨立運行的程序,那么試試 javapackager 工具。Kotlin 在本地為每個平臺創建了捆綁包,這意味著在 linux 上不需要 JRE 的依賴就可以獨立自主的獲取 DEBs(linux 的安裝包)或者壓縮包。當然,它拆包之后不是單個文件而是單個目錄,從部署的角度來看并不難操作。

簡而言之:如果你之前因為看 Java 不順眼而忽略了 JVM 的生態系統,那么你應該借著 Kotlin 這門新語言進入這個世界瞧瞧。

當前題目:kotlingo語言 kotlin語言中文
文章起源:http://www.yijiale78.com/article12/dodccdc.html

成都網站建設公司_創新互聯,為您提供響應式網站定制網站網站制作ChatGPT網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都定制網站網頁設計