每天都在汆肉中醒来青梅,好男人www在线观看,少妇无码自慰毛片久久久久久,国产欧美另类久久久精品丝瓜

登錄注冊(cè)
新聞 資訊 金融 知識(shí) 財(cái)經(jīng) 理財(cái) 科技 金融 經(jīng)濟(jì) 產(chǎn)品 系統(tǒng) 連接 科技 聚焦
首頁(yè) > 金融 > > 正文

為什么 Java 后端開發(fā)沒有大規(guī)模采用 Kotlin?

2021-04-18 10:45:36來(lái)源:互聯(lián)網(wǎng)

作者 | Ivan Sanchez

譯者 | 王者

策劃 | 萬(wàn)佳

在使用了 Java 15 年后,我寫了第一行 Kotlin 代碼,到現(xiàn)在已經(jīng)差不多 5 年了。我們的團(tuán)隊(duì)用 Utterlyidle 替代 Spring,用 Totallylazy 進(jìn)行函數(shù)式編程。我們是 IntelliJ 的忠實(shí)粉絲,并試著充分利用它提供的 Java 工具。

那個(gè)時(shí)候,我們不只使用 Java。有一些團(tuán)隊(duì)對(duì) Scala 感興趣,并用它開發(fā)了一些服務(wù)。但是,因?yàn)?Scala 與 Java 代碼庫(kù)協(xié)作的復(fù)雜性以及緩慢的構(gòu)建時(shí)間,對(duì)于我們大多數(shù)人來(lái)說(shuō),它并沒有太大吸引力。

2017 年,谷歌宣布 Kotlin 成為 Android 的官方開發(fā)語(yǔ)言,另一個(gè)與我們關(guān)系密切的團(tuán)隊(duì)開始評(píng)估是否可以在他們的服務(wù)器端開發(fā)中使用它。最后,我們大多數(shù)人都去嘗試了一下。

我被 Kotlin 給代碼庫(kù)帶來(lái)的影響震撼到了。它給人的感覺是更高效、更安全,雖然開發(fā)工具沒有 Java 那么成熟,但也足夠好了。

從一門陳舊而冗長(zhǎng)的編程語(yǔ)言中解脫出來(lái),并探索哪些編碼風(fēng)格更適合 Kotlin 的特性,這本身就是一件非常有趣的事情。Kotlin 與 Java 出色的互操作性意味著我們可以增量地依賴現(xiàn)有的生態(tài)系統(tǒng)和過(guò)渡系統(tǒng),而不會(huì)對(duì)工作造成重大干擾。

很快,由于對(duì) Kotlin 的興趣,我們一起開發(fā)了 http4k,一個(gè)用于開發(fā) Kotlin HTTP 應(yīng)用程序的工具包,并組織了 Kotlin 開發(fā)研討會(huì),幫助其他團(tuán)隊(duì)嘗試使用 Kotlin。

最后,我們看到其他各種項(xiàng)目也在服務(wù)器端使用 Kotlin,也看到了一些團(tuán)隊(duì)強(qiáng)烈不愿意采用 Kotlin 的原因。

有意思的是,這種抗拒并不總是因?yàn)榫幊陶Z(yǔ)言本身。那么,為什么 Java 服務(wù)器端開發(fā)社區(qū)沒有更多地采用 Kotlin 呢?

以下是我和我的同事們看到的一些原因。

1

“我們沒有時(shí)間學(xué)習(xí)一門新語(yǔ)言”

這也就是我們?cè)谲浖_發(fā)項(xiàng)目當(dāng)中經(jīng)常看到的“忙著砍柴沒時(shí)間磨斧子”現(xiàn)象。這通常預(yù)示著更深層次問題,比如不斷增加的技術(shù)債務(wù)和開發(fā)效率問題。

健康的軟件項(xiàng)目需要開發(fā)者花大量時(shí)間去學(xué)習(xí)。一個(gè)有能力的 Java 開發(fā)者可以在數(shù)小時(shí)內(nèi)掌握 Kotlin 的基本知識(shí),并在數(shù)天內(nèi)提高開發(fā)效率。

如果采用新語(yǔ)言可以讓他們寫的代碼更簡(jiǎn)單,遇到的問題更少,那么投入就是值得的。

2

“Java 的每一個(gè)版本都在變得更好”

這是真的,Java 正在變得更好,而且發(fā)布的速度也越來(lái)越快。但是,對(duì)于處理空值這么簡(jiǎn)單的事情,仍然遠(yuǎn)遠(yuǎn)落后于 Kotlin。

也許 Java 社區(qū)已經(jīng)習(xí)慣了這種演化速度。盡管如此,Kotlin 還是提供了一種方法,可以在項(xiàng)目中用上很多 Kotlin 特性。

3

“作為 Java 開發(fā)者,我們感到很自豪”

這種想法是最要命的。如果一個(gè)程序員把他們的專業(yè)身份和一種編程語(yǔ)言聯(lián)系在一起,那就沒有辦法了。

如果說(shuō) Java 開發(fā)者不想賭上自己的事業(yè)踏入一門新語(yǔ)言的未知領(lǐng)域,我可以理解。或者他們可能想成為一個(gè)領(lǐng)域的專家,這也很合理。

但是,我也并沒有看到哪個(gè) Java 開發(fā)者因?yàn)槭褂?Kotlin 而“落后”了。相反,這表明他們一直在尋找適合自己的工具,這是一種積極的特質(zhì)。

4

“Kotlin 是一種被炒作的語(yǔ)言,它的未來(lái)是未知的”

這是我們?cè)?2017 年經(jīng)常聽到的反對(duì)采用 Kotlin 的說(shuō)法。在那一年,谷歌宣布將 Kotlin 作為 Android 的官方開發(fā)語(yǔ)言,讓我們確信科技巨頭們對(duì)這門語(yǔ)言是感興趣的。

現(xiàn)在,Spring 和 Micronaut 等流行框架似乎已經(jīng)接受了這門新語(yǔ)言,之前的反對(duì)聲就不那么經(jīng)常聽到了。

希望這能讓更多的服務(wù)器端開發(fā)對(duì)這門語(yǔ)言有足夠的了解,并嘗試一下。

5

“我正在使用 Eclipse,不想切換到 IntelliJ”

在 Eclipse 中使用 Kotlin 的體驗(yàn)與 JetBrains 的 IDEA 不太一樣。

這是可以理解的,因?yàn)殇N售開發(fā)工具是 JetBrains 的商業(yè)模式之一,而且這種情況短期內(nèi)不太可能改變。

對(duì)于這些人來(lái)說(shuō),他們能夠期望的是 Kotlin 可以達(dá)到一個(gè)質(zhì)量臨界點(diǎn),證明 Eclipse 為它提供進(jìn)一步的支持是值得的。但在此之前,對(duì)于 Kotlin 開發(fā)者來(lái)說(shuō),最好的開發(fā)體驗(yàn)仍然是使用 JetBrains 產(chǎn)品。

我認(rèn)為,IntelliJ 已經(jīng)是一個(gè)更好的 Java IDE 了,所以它也值得一試。

6

“Kotlin 開發(fā)者太貴了,而且很難招到”

這一點(diǎn)很難說(shuō),從招聘網(wǎng)站的數(shù)據(jù)來(lái)看,Kotlin 開發(fā)者的薪資總體上略高一些。

如果我們只考慮服務(wù)器端開發(fā)者,就很難進(jìn)行比較。一般來(lái)說(shuō),Java 開發(fā)者的薪資是最高的,但在 Kotlin 方面并沒有足夠的數(shù)據(jù)來(lái)進(jìn)行比較。

有趣的是,在實(shí)際當(dāng)中,我們可以看到高級(jí) Java 開發(fā)者經(jīng)常是率先采用 Kotlin 的人,這可能會(huì)給人留下 Kotlin 開發(fā)者很“貴”的印象。

在招聘方面,我們并沒有覺得很難招到 Kotlin 開發(fā)者。我們很清楚,有些工作需要使用這門新語(yǔ)言,并允許開發(fā)者在工作中邊學(xué)邊用。

這似乎讓 Java 開發(fā)者放下心來(lái),并吸引了那些熱衷于學(xué)習(xí)新事物的人。

7

“Kotlin 太復(fù)雜了”

Kotlin 之所以成為 Scala 等語(yǔ)言的替代語(yǔ)言,其中一個(gè)原因是它在易用性和高級(jí)特性之間取得了良好的平衡,與 Java 具有更好的互操作性,所以更有可能被流行框架采用。

在實(shí)際當(dāng)中,這種反對(duì)聲與團(tuán)隊(duì)的技能、風(fēng)格和習(xí)慣有關(guān)。

初學(xué)者一般會(huì)像使用 Java 一樣使用 Kotlin,但隨著他們?cè)絹?lái)越熟悉這門語(yǔ)言,可能會(huì)深入使用一些特性 (例如擴(kuò)展和內(nèi)聯(lián)函數(shù)),從而導(dǎo)致代碼庫(kù)變得越來(lái)越難以理解。

在團(tuán)隊(duì)完全掌握新語(yǔ)言之前,我們建議盡可能長(zhǎng)時(shí)間地使用普通的 Kotlin 特性。最后,團(tuán)隊(duì)中的大多數(shù)人都會(huì)在選擇很酷的語(yǔ)言特性和保持代碼庫(kù)易于理解之間找到平衡點(diǎn)。

8

“在一個(gè)代碼庫(kù)中使用兩種語(yǔ)言讓人感到困惑”

這是在實(shí)際項(xiàng)目中沒有嘗試過(guò) Kotlin 的人經(jīng)常會(huì)有的擔(dān)憂。

在實(shí)際當(dāng)中,當(dāng)團(tuán)隊(duì)意識(shí)到新的 Kotlin 代碼需要與 Java 共存,那么在一個(gè)項(xiàng)目中使用兩種語(yǔ)言并不會(huì)給他們?cè)斐珊艽蟮耐纯唷?/p>

這里有一個(gè)有用的規(guī)則:“如果一個(gè)變更涉及到兩種語(yǔ)言,首先將舊代碼轉(zhuǎn)換成 Kotlin”。

這樣,團(tuán)隊(duì)就可以避免大爆炸式的重寫,并將需要添加新特性的地方進(jìn)行逐步遷移。

如果需要保留一些 Java 代碼,那也沒關(guān)系。很有可能是因?yàn)檫@些代碼仍然有用,并且沒有進(jìn)行重構(gòu)的迫切需求。

9

“我們更喜歡 Java”

在實(shí)際當(dāng)中,有一些場(chǎng)景不一定要使用 Kotlin,一切仍然能夠進(jìn)行得很順利,團(tuán)隊(duì)能夠以可接受的速度完成工作。

然而,根據(jù)我們的經(jīng)驗(yàn),這是例外,而不是常態(tài)。通常情況下,這種對(duì)語(yǔ)言的抗拒源于缺少時(shí)間和興趣,而不是因?yàn)闆]有可提升的空間。

如果沒有在真正的項(xiàng)目中使用 Kotlin,是也很難體會(huì)到 Kotlin 的好處的。即使是作為一個(gè)實(shí)驗(yàn),也存在很多焦慮。

對(duì)于這種情況,我們建議“在工作中邊學(xué)邊用”(以編碼道場(chǎng)、培訓(xùn)等形式),創(chuàng)造一個(gè)可以進(jìn)行這種實(shí)驗(yàn)的安全環(huán)境。

這樣可以幫助團(tuán)隊(duì)評(píng)估他們對(duì) Java 的使用狀況,以及是否值得在 Kotlin 上投入。

10

“我看不出 Kotlin 會(huì)帶來(lái)什么好處”

有時(shí)候,Java 開發(fā)者意識(shí)不到語(yǔ)言方面存在的限制,或者是因?yàn)樗麄円呀?jīng)習(xí)慣了。有時(shí)候,他們會(huì)抗拒新語(yǔ)言,因?yàn)樾抡Z(yǔ)言會(huì)讓他們質(zhì)疑自己正在使用的語(yǔ)言。

在不深入細(xì)節(jié)的情況下,我們可以說(shuō) Kotlin 的簡(jiǎn)潔性和安全性是它的主要優(yōu)點(diǎn)。然而,有些人聲稱他們不認(rèn)為 Java 的冗長(zhǎng)有什么問題,并且寫出來(lái)的代碼也很安全。

在真正去嘗試 Kotlin 之前,人們很容易將其忽略掉。而在真正面對(duì)它的時(shí)候,一些人會(huì)繼續(xù)尋找不嘗試使用它的理由。

11

一些想法

采用一種新的編程語(yǔ)言,特別是在正在進(jìn)行的項(xiàng)目當(dāng)中,這對(duì)于大多數(shù)團(tuán)隊(duì)來(lái)說(shuō)都是一個(gè)挑戰(zhàn)。對(duì)變化的抗拒與特定的環(huán)境有關(guān),與項(xiàng)目需求和個(gè)人原因以及語(yǔ)言本身也有關(guān)。

話雖如此,我仍然鼓勵(lì)更多從事 Java 服務(wù)器端的開發(fā)者,如果有機(jī)會(huì)的話,可以嘗試一下 Kotlin。

https://medium.com/google-developer-experts/why-are-java-server-side-developers-not-adopting-kotlin-8eb53e06ee99?fileGuid=nbh1KOt8ZzMdpX2m

關(guān)鍵詞: 為什么 Java 開發(fā) 沒有

推薦內(nèi)容

熱點(diǎn)
39熱文一周熱點(diǎn)
主站蜘蛛池模板: 新郑市| 塔城市| 合作市| 磐安县| 和林格尔县| 故城县| 曲周县| 海门市| 伊川县| 仪征市| 徐汇区| 读书| 天津市| 太仆寺旗| 太康县| 云安县| 磴口县| 庆安县| 玛曲县| 合水县| 开远市| 桃源县| 江北区| 崇义县| 德惠市| 宁城县| 泽普县| 射洪县| 临朐县| 永丰县| 安岳县| 车险| 航空| 涟源市| 原平市| 盐亭县| 鸡东县| 锦州市| 札达县| 洮南市| 治县。|