RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

適用于多平臺應(yīng)用的Kotlin編程語言

電子工程師 ? 來源:lq ? 2019-05-25 10:46 ? 次閱讀

1995 年 5 月 23 日,Sun 公司在 Sun world 會議上正式宣布了 Java 的到來,從此一代編程語言界的翹楚就此誕生。而在不斷地迭代與適配中,今時今日,Java以需要滿足各個層面開發(fā)者的需求與橫掃各大編程語言榜單的成績給了 24 歲的自己一張值得驕傲且滿意的答卷。不過與此同時,我們也發(fā)現(xiàn)正值本命年之際的 Java,在未來的一段時間內(nèi),或?qū)⒂瓉硪淮未罂肌?/p>

雖然在過去的一些年中,常青藤 Java 一直在被如 C++、C#、Erlang、Python 等其他編程語言挑戰(zhàn),但最終結(jié)果均不一而終。不過,近兩年間,一門新崛起的多用途編程語言——Kotlin,在硅谷科技巨頭之一的 Google 扶持下,開始逐漸蠶食 Java 的應(yīng)用市場。目前來看,Kotlin 對 Java 雖構(gòu)不成致命的威脅,但是當(dāng)未來 Google 的 Kotlin-first 政策完全落實(shí)之后,再加上 Oracle 對 Java 放任的態(tài)度,一切將變得難以輕易下定論。

而除卻以上外界因素,就 Kotlin 本身而言,其是否有抗衡 Java 的潛力?接下來,我們將從近日 Kotlin 的開發(fā)商 JetBrains 最新發(fā)布的一份《Kotlin Census 2018》的報(bào)告中尋找到答案。

注:該報(bào)告基于全球 4300名開發(fā)者(不局限于 Kotlin 用戶)。

適用于多平臺應(yīng)用的 Kotlin 編程語言

何為 Kotlin?

Kotlin 是一門靜態(tài)編程語言,可用于開發(fā)幾乎所有類型的應(yīng)用程序,包括服務(wù)器端、桌面、移動甚至嵌入式。由 JetBrains 設(shè)計(jì)和開發(fā),一直以來,Kotlin 獲得了科技巨頭和開發(fā)商們的大力支持。

2016 年 Kotlin 1.0 發(fā)布;

2017 年,Google 在 I/O 大會上宣布 Kotlin 成為 Android 開發(fā)的官方語言;

2018年,Kotlin 擁有 150 萬+ 用戶,并在 GitHub 上擁有超過 96,000 個存儲庫;

2019 年,Google 于 I/O 大會上再次宣布 Google 當(dāng)前采取的下一個重大步驟是 Kotlin-first,Android 開發(fā)將越來越多地以 Kotlin 為主。

那么當(dāng)前大環(huán)境下,有多少開發(fā)者在使用 Kotlin?Kotlin 的真實(shí)應(yīng)用現(xiàn)狀又如何?接下來,我們與大家詳細(xì)分享。

Kotlin 的商用還處于起始階段

根據(jù)調(diào)查顯示,有超過一半的受訪者表示,他們在生產(chǎn)代碼中使用了 Kotlin 語言,而這一使用數(shù)據(jù)相較于去年,也有所增長。當(dāng)下如 Gradle、Pinterest、Atlassian、Pivotal 以及更多公司和項(xiàng)目在開發(fā)中使用了 Kotlin 語言。

不過,有 13 % 的開發(fā)者稱,雖當(dāng)前正在使用 Kotlin,但尚未發(fā)布項(xiàng)目。

2018 vs 2017 Kotlin 應(yīng)用現(xiàn)狀

而基于以上數(shù)據(jù),我們也不禁好奇,相較于 Java,Kotlin 還存在哪些挑戰(zhàn)?又是什么阻礙了開發(fā)者上手 Kotlin?

對此,JetBrains 列出了幾個主要觀點(diǎn):

開發(fā)者對 Kotlin 技術(shù)知識的缺乏;

市場對于該語言的采用率低;

開發(fā)者并不想學(xué)習(xí)新的語言;

Kotlin 并沒有價值;

生態(tài)系統(tǒng)薄弱;

......

據(jù)以下的數(shù)據(jù)統(tǒng)計(jì)結(jié)果,我們發(fā)現(xiàn),阻礙開發(fā)者學(xué)習(xí) Kotlin 最大的因素源于不少人認(rèn)為自己缺乏 Kotlin 相關(guān)的技術(shù)知識,且這一數(shù)據(jù)占比高達(dá) 55%。其次,有 18% 的受訪者表示 Kotlin語言的采用率低。

在此,針對在上手過程中缺乏專業(yè)技術(shù)知識的開發(fā)者,JetBrains 也分享了一份資源匯總,希望對大家有所幫助:

Kotlin 官網(wǎng):https://kotlinlang.org/docs/reference/

Coursera 上的Kotlin for Java Developers 視頻課程 :https://www.coursera.org/learn/kotlin-for-java-developers

Atomic Kotlin 的書和相關(guān)的學(xué)習(xí)資源:https://www.atomickotlin.com/atomickotlin/

Kotlin Playground 可以探索 Kotlin:https://play.kotlinlang.org/

JetBrains 的 Kotlin Edu,免費(fèi)工具,用于學(xué)習(xí),教授和練習(xí)編程:https://www.jetbrains.com/education/

另外,從 Kotlin 的使用來看,距離 Kotlin 1.0 版本至今已有 3 年的發(fā)展歷程,但事實(shí)上,讓Kotlin 大火起來還是源于 Google 對其的支持。因此對于 Kotlin 使用的年限,根據(jù)報(bào)告顯示,大多數(shù)的開發(fā)者還處于 1-2 年之間,這也屬于意料之中。

不過在未來,越來越多的開發(fā)者會擁有更加豐富的Kotlin 開發(fā)經(jīng)驗(yàn)。且如果他們使用 Kotlin 超過一年,看起來他們通常會堅(jiān)持下去。

Kotlin 支持的平臺有哪些?

Kotlin 最重要的目標(biāo)之一是在多平臺上共享代碼,當(dāng)前主要有四種支持環(huán)境可以幫助開發(fā)者簡化編碼過程,并為跨平臺開發(fā)提供更多機(jī)會。Kotlin 主要支持 JVM、JavaScript、Android 和 Native。這使得該語言可開發(fā)所有類型的應(yīng)用程序并在流行的操作系統(tǒng)(如 iOS,macOS,Windows 和 Linux)上運(yùn)行它們的絕佳代碼。

Kotlin 最常被用于哪些平臺中?

Kotlin 最受歡迎的用途是在 JVM 中,占比高達(dá) 67%,而在 Android 環(huán)境中,Kotlin 以 57% 的使用率排在第二位。

哪種 JDK 版本,開發(fā)者最常用?

在這一問題中,一直以來,Java 的長期支持版本都極具優(yōu)勢。這不在此次調(diào)查中,有84% 的 Kotlin 用戶選擇了 JDK 8。而第二個最受歡迎的版本是JDK 11,占 27%;與此同時,JDK 9 和 10 使用率均為 8%。

是否使用 Java 模塊?

在對以 Kotlin 開發(fā)者為主的調(diào)查中,我們發(fā)現(xiàn)有 70% 的開發(fā)者表示不會使用 Java 模塊,僅有 18% 的受訪者稱在日常的開發(fā)中會用到 Java 模塊。

常用的 Android 版本?

在以下的調(diào)查結(jié)果中,有 82% 的開發(fā)者表示使用的是 Android 8.0 Oreo 版本;其次有 78% 的受訪者表示最常用 Android 7.0 版本,而對于最新的 Android 9.0,其使用率與 Android 6.0 相同,均為 75%。

從中我們也可以看出一個問題,即當(dāng)前大環(huán)境下,Android 的碎片化依舊很嚴(yán)重。

在哪里運(yùn)行從 Kotlin 編譯的 JavaScript 代碼?

有 88% 的開發(fā)者表示基于瀏覽器的方式。

常用的開發(fā)平臺/操作系統(tǒng)?

相比 2017 年有 48% 的開發(fā)者基于 Android 平臺來使用 Kotlin 語言,2018 年,66% 的受訪者表示最常用 Android 平臺。其次,Linux 為第二選擇。

整體而言,越來越多的開發(fā)者在基于Kotlin 進(jìn)行跨平臺開發(fā)。

基于 Kotlin 開發(fā)的 App 類型有哪些?

據(jù)報(bào)告顯示,25% 的用戶正在使用 Kotlin 開發(fā) 2 種類型的 App。

15% 開發(fā)了 3 種類型的 App,但大多數(shù)開發(fā)者仍然只在一種類型的 App 中使用 Kotlin。

Kotlin 開發(fā)了哪些類型的應(yīng)用程序?

在移動互聯(lián)網(wǎng)時代,無論是 Java 還是 Kotlin,大多數(shù)會被用于移動應(yīng)用開發(fā)。在本次調(diào)查中,有 58% 的受訪者表示,他們正在使用Kotlin 開發(fā)移動應(yīng)用,48% 的開發(fā)者稱用其開發(fā) Web 后端。此外,Kotlin 還被用于庫和框架、桌面、工具、Web 前端、游戲開發(fā)、數(shù)據(jù)分析、IoT、機(jī)器學(xué)習(xí)以及嵌入式等場景中。

Kotlin 的跨平臺實(shí)踐

在 Kotlin 1.2 版本中,首次引入了多平臺項(xiàng)目特性,可通過多平臺項(xiàng)目支持 JVM 和 JavaScript 平臺的代碼共享,隨后在Kotlin 1.3 版本中,JetBrains 的開發(fā)團(tuán)隊(duì)對其進(jìn)行了大幅改進(jìn)。彼時它包含了一組特定的庫,可幫助開發(fā)者編寫多平臺代碼。

作為 Kotlin 開發(fā)者,你是否在 Kotlin 中使用多平臺項(xiàng)目(MPP)功能?

對于這一新功能,有 89% 的受訪者表示并未用過,僅有 11% 的開發(fā)者稱使用過。

主要會針對哪個平臺使用 MPP 功能?

基于以上使用了 MPP 功能的開發(fā)者,大多數(shù)會應(yīng)用于 JVM 平臺,其次分別是 Android、JavaScript 和 iOS。

MPP 用戶所開發(fā)的 App 類型

整體而言,依舊是移動領(lǐng)域使用 MPP 最為廣泛。其次為 Web 后端,占比 56%。

在跨平臺開發(fā)過程中,主要共享哪部分的代碼?

“Write once,run anywhere”應(yīng)該是每位開發(fā)者在開發(fā)過程中最為期待的一件事。根據(jù)調(diào)查報(bào)告顯示,Kotlin 開發(fā)者在跨平臺開發(fā)過程中最常共享的代碼為算法和數(shù)據(jù)架構(gòu)部分,而這一部分相對而言,也比較復(fù)雜。

隨后 JetBrains 也對尚未使用 MPP 功能的開發(fā)者進(jìn)行了深入的調(diào)查,其中,有 41% 的受訪者希望可以實(shí)現(xiàn)算法和數(shù)據(jù)結(jié)構(gòu)的代碼共享,32% 的人表示希望數(shù)據(jù)格式能實(shí)現(xiàn)共享。

Kotlin 工具的選型

均出自 JetBrains 之手的 Kotlin 語言和 IntelliJ IDEA,這兩者的匹配應(yīng)用應(yīng)該不足為奇。

而 Android Studio 又是 Google 基于IntelliJ IDEA平臺而開發(fā)的 Android 開發(fā)工具,其為移動開發(fā)提供了出色的用戶體驗(yàn)。

根據(jù)調(diào)查顯示,有 44% 的受訪者稱正在使用 Android Studio,其次,有 37% 的開發(fā)者使用IntelliJ IDEA Ultimate 版本。

使用哪種 IDE 進(jìn)行 Kotlin 開發(fā)?

對于 Kotlin 開發(fā)者,基于不同的環(huán)境開發(fā),所使用的 IDE 均有所不同。就 JVM 平臺而言,開發(fā)者最喜歡使用IntelliJ IDEA Ultimate 版本;

在 Android 平臺下,則有 76% 的受訪者使用 Android Studio。除此之外,在 JS 和 Native 下,開發(fā)者最常用的 IDE 均為IntelliJ IDEA Ultimate。

最常用的構(gòu)建工具

無論是哪個平臺或環(huán)境,對于開發(fā)者而言,其最常用的工具均為 Gradle,整體占比高達(dá) 86%。

庫和框架

最常用的 Kotlin 庫和框架有哪些?

根據(jù)調(diào)查發(fā)現(xiàn),自 2017 年以來, Kotlin 庫的使用率幾乎翻了一番,而且最常用的庫也繼續(xù)受歡迎。其中,開發(fā)者最常使用的 Kotlin 庫或者框架為 kotlinx.coroutines。其次,令人詫異的是,有 26% 的開發(fā)者沒有使用過任何的 Kotlin 庫和框架。

Kotlin 的生態(tài)發(fā)展

在此次的調(diào)查中,Java 仍是最受歡迎的編程語言,占比高達(dá) 42%,不過相比去年,這一數(shù)據(jù)有所下降。而其中,Kotlin 的發(fā)展與其相反,當(dāng)前有 39% 的受訪者稱 Kotlin 為其主要的編程語言。

在本次受訪者中,有 86% 的用戶為程序員以及軟件工程師。

而其公司的規(guī)模主要為 51-500 人的區(qū)間。

簡而言之,當(dāng)前的 Kotlin 正被各種規(guī)模的企業(yè)以及組織使用。

Kotlin 的前景

最后,對于 Kotlin 的發(fā)展前景,根據(jù)調(diào)查顯示,Kotlin 在處理數(shù)據(jù)方面似乎更有前途。有 64% 的開發(fā)者表示,正在使用 Kotlin 來進(jìn)行機(jī)器學(xué)習(xí)、數(shù)據(jù)分析、BI 等場景中。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Google
    +關(guān)注

    關(guān)注

    5

    文章

    1762

    瀏覽量

    57504
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1942

    瀏覽量

    34707
  • kotlin
    +關(guān)注

    關(guān)注

    0

    文章

    60

    瀏覽量

    4187

原文標(biāo)題:Java 24歲!Google加持的Kotlin真能取代它?

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    專業(yè)提供適用于MTK平臺的矢量引擎、矢量字庫、輸入法(支持多國語言

     專業(yè)提供以下產(chǎn)品:1、適用于MTK平臺矢量引擎及多款矢量字庫2、適用于MTK平臺的平滑點(diǎn)陣字庫3、適用于各種手機(jī)
    發(fā)表于 06-22 10:22

    專業(yè)提供適用于MTK平臺的矢量引擎、矢量字庫、輸入法(支持多國語言

    專業(yè)提供適用于MTK平臺的矢量引擎、矢量字庫、輸入法(支持多國語言)專業(yè)提供以下產(chǎn)品:1、適用于MTK平臺矢量引擎及多款矢量字庫2、
    發(fā)表于 07-22 10:28

    專業(yè)提供適用于MTK平臺的矢量引擎、矢量字庫、輸入法(支持多國語言

    專業(yè)提供適用于MTK平臺的矢量引擎、矢量字庫、輸入法(支持多國語言)專業(yè)提供以下產(chǎn)品:1、適用于MTK平臺矢量引擎及多款矢量字庫2、
    發(fā)表于 07-22 10:28

    專業(yè)提供適用于MTK平臺的矢量引擎、矢量字庫、輸入法(支持多國語言

    專業(yè)提供適用于MTK平臺的矢量引擎、矢量字庫、輸入法(支持多國語言)專業(yè)提供以下產(chǎn)品:1、適用于MTK平臺矢量引擎及多款矢量字庫2、
    發(fā)表于 07-29 15:15

    專業(yè)提供適用于MTK平臺的矢量引擎、矢量字庫、輸入法(支持多國語言

    專業(yè)提供適用于MTK平臺的矢量引擎、矢量字庫、輸入法(支持多國語言)專業(yè)提供以下產(chǎn)品:1、適用于MTK平臺矢量引擎及多款矢量字庫2、
    發(fā)表于 08-05 10:45

    專業(yè)提供適用于MTK平臺的矢量引擎、矢量字庫、輸入法(支持多國語言

    專業(yè)提供適用于MTK平臺的矢量引擎、矢量字庫、輸入法(支持多國語言)專業(yè)提供以下產(chǎn)品:1、適用于MTK平臺矢量引擎及多款矢量字庫2、
    發(fā)表于 08-07 10:08

    專業(yè)提供適用于MTK平臺的矢量引擎、矢量字庫、輸入法(支持多國語言

    專業(yè)提供適用于MTK平臺的矢量引擎、矢量字庫、輸入法(支持多國語言)專業(yè)提供以下產(chǎn)品:1、適用于MTK平臺矢量引擎及多款矢量字庫2、
    發(fā)表于 08-07 10:08

    專業(yè)提供適用于MTK平臺的矢量引擎、矢量字庫、輸入法(支持多國語言

    專業(yè)提供適用于MTK平臺的矢量引擎、矢量字庫、輸入法(支持多國語言)專業(yè)提供以下產(chǎn)品:1、適用于MTK平臺矢量引擎及多款矢量字庫2、
    發(fā)表于 08-07 10:09

    專業(yè)提供適用于MTK平臺的矢量引擎、矢量字庫、輸入法(支持多國語言

    專業(yè)提供適用于MTK平臺的矢量引擎、矢量字庫、輸入法(支持多國語言)專業(yè)提供以下產(chǎn)品:1、適用于MTK平臺矢量引擎及多款矢量字庫2、
    發(fā)表于 08-12 09:53

    專業(yè)提供適用于MTK平臺的矢量引擎、矢量字庫、輸入法(支持多國語言

    專業(yè)提供適用于MTK平臺的矢量引擎、矢量字庫、輸入法(支持多國語言)專業(yè)提供以下產(chǎn)品:1、適用于MTK平臺矢量引擎及多款矢量字庫2、
    發(fā)表于 08-25 10:56

    專業(yè)提供適用于MTK平臺的矢量引擎、矢量字庫、輸入法(支持多國語言

    專業(yè)提供適用于MTK平臺的矢量引擎、矢量字庫、輸入法(支持多國語言)專業(yè)提供以下產(chǎn)品:1、適用于MTK平臺矢量引擎及多款矢量字庫2、
    發(fā)表于 03-29 14:23

    3種適用于人工智能開發(fā)的編程語言

    了3種比較適用于人工智能開發(fā)的編程語言,希望能夠?qū)δ阌兴鶐椭?。PythonPython由于簡單易用,是人工智能領(lǐng)域中使用最廣泛的編程語言之一
    發(fā)表于 09-12 10:45

    適用于英特爾性能設(shè)備平臺的RMC

    適用于英特爾性能設(shè)備平臺的RMC
    發(fā)表于 08-20 07:53

    適用于PDA的PLC編程系統(tǒng)開發(fā)

    適用于PDA的PLC編程系統(tǒng)開發(fā):傳統(tǒng)上調(diào)試PLC通常采用手持式PLC編程器,且只能適用于相應(yīng)型號的PLC,上位計(jì)算機(jī)上的編程軟件無法
    發(fā)表于 12-29 23:49 ?35次下載

    USB標(biāo)準(zhǔn)適用于哪些應(yīng)用

    USB標(biāo)準(zhǔn)適用于哪些應(yīng)用 通用串行總線 (USB) 外設(shè)接口已廣泛應(yīng)用于所有個人計(jì)算平臺及眾多工業(yè)和基礎(chǔ)設(shè)施平臺。不過,與此同時,人們對適用于
    發(fā)表于 04-19 14:31 ?1807次閱讀
    RM新时代网站-首页