Kotlin發佈10週年,JetBrains的Roman Elizarov專訪

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "},{"type":"link","attrs":{"href":"https:\/\/kotlinlang.org\/lp\/10yearsofkotlin","title":null,"type":null},"content":[{"type":"text","text":"JetBrains在2011年7月發佈了Kotlin"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",旨在創建一種在JVM和Web上運行的現代通用編程語言。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Kotlin是一種跨平臺的靜態類型語言,具有現代簡潔的語法,旨在克服"},{"type":"link","attrs":{"href":"https:\/\/en.wikipedia.org\/wiki\/Java_version_history","title":null,"type":null},"content":[{"type":"text","text":"Java開發停滯時期"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"的Java缺陷。Kotlin的關鍵特性包括null安全性、協程、數據類型、擴展函數等。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"在2011年發佈後,Kotlin花了一年時間"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/news\/2012\/02\/kotlin-opensourced\/","title":null,"type":null},"content":[{"type":"text","text":"實現了開源"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",又花了四年時間纔在"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/news\/2016\/02\/kotlin-10-released\/","title":null,"type":null},"content":[{"type":"text","text":"2016年1.0版本"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"中實現了穩定。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"僅僅三年之後,谷歌就將其作爲Android開發的首選語言,這很快導致"},{"type":"link","attrs":{"href":"https:\/\/developer.android.com\/kotlin\/","title":null,"type":null},"content":[{"type":"text","text":"超過60%的專業Android開發者採用了它"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"。最近,"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/news\/2021\/08\/jetpack-compose-1-0\/","title":null,"type":null},"content":[{"type":"text","text":"Jetpack Compose 1.0"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"的發佈再次證實了谷歌對Kotlin的承諾。Jetpack Compose 1.0完全使用該語言開發,並充分利用了其語法功能。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Kotlin不僅僅是一種用於移動應用程序開發的語言,儘管它在這個領域取得了巨大的成功,"},{"type":"link","attrs":{"href":"https:\/\/developer.android.com\/kotlin\/stories","title":null,"type":null},"content":[{"type":"text","text":"在Play Store的前1000個應用程序中有80%以上使用Kotlin"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"。事實上,據JetBrains稱,超過"},{"type":"link","attrs":{"href":"https:\/\/kotlinlang.org\/lp\/10yearsofkotlin\/present\/","title":null,"type":null},"content":[{"type":"text","text":"480萬名開發者"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"已經將Kotlin用於服務器端、移動多平臺、Android和前端開發。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"《"},{"type":"link","attrs":{"href":"https:\/\/insights.stackoverflow.com\/survey\/2020#technology-programming-scripting-and-markup-languages","title":null,"type":null},"content":[{"type":"text","text":"Stack Overflow Developer Survey 2020"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"》也證實了Kotlin的日益普及,該調查發現JetBrains的語言僅次於Go和C\/C++。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"InfoQ藉此機會,與JetBrains的Kotlin項目負責人Roman Elizarov進行了交談,以瞭解更多關於其過去、現在和未來的信息。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"InfoQ: Kotlin很快就取得了巨大的成功,最引人注目的是在Android平臺上,它幾乎取代了Java。你怎麼看待這些?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Roman Elizarov"},{"type":"text","text":": 我們從最初發布的時間算起已經有10年了。如果你仔細考慮一下,就會發現它並沒有迅速取得巨大的成功。事實上,你會看到一種不同的模式,它極大地促進了Kotlin後來的成功。Kotlin並不是閉門開發的。在Kotlin 1.0於2016年發佈之前,其一半以上的時間都是在根據早期採用者的真實反饋不斷進行測試和調整。2016年曝光的穩定語言與2011年提出的最初想法大不相同。這是Kotlin成功的第一個組成部分——Kotlin是務實的。它不是一種基於一小部分設計者的理論、哲學或假設的語言,而是一種基於實際使用數據的語言,旨在簡化從事大型項目的專業開發人員的日常工作。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"使Kotlin脫穎而出的不是單一功能,而是它們的結合。從null安全和不變量的友好性,到對集合進行簡潔高效的功能操作,它們都是爲了解決Java開發人員當時所遭受的具體痛苦而設計的。然而,儘管當前的目標是設計更好的Java,但"},{"type":"link","attrs":{"href":"https:\/\/www.youtube.com\/watch?v=Ljr66Bg--1M","title":null,"type":null},"content":[{"type":"text","text":"靈感"}]},{"type":"text","text":"來自各種語言,包括生產型語言和實驗型語言。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"自2016年Kotlin穩定發佈以來,團隊非常重視向後兼容性,這也是Kotlin真正增長和採用的開始。這是Kotlin之所以獲得成功的第二部分。作爲一種行業語言,團隊對確保向後兼容性的強烈關注隨着時間的推移獲得了回報。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"事後看來,Kotlin在Android的快速增長是合乎邏輯的,儘管它從未被計劃過。2017年,當谷歌正式採用Kotlin時,它已經是一種成熟、穩定且經過戰鬥考驗的編程語言。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"InfoQ: 展望現在和不久的將來,Kotlin的進一步發展似乎與它作爲服務器端或全棧語言的採用有關。在這些環境中,Kotlin達到了什麼成熟度級別?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Elizarov"},{"type":"text","text":": Kotlin在服務器端的前景是光明的。這是Kotlin的主場——這個語言最初就是爲服務器端開發而設計的。服務器端相當複雜,需要維護大量現有代碼。這就是爲什麼Kotlin設計優先考慮並將繼續優先考慮與現有Java代碼和庫的良好互操作性。我們高興地看到我們的努力得到了回報。根據"},{"type":"link","attrs":{"href":"https:\/\/snyk.io\/jvm-ecosystem-report-2021\/","title":null,"type":null},"content":[{"type":"text","text":"Snyk最近的JVM生態系統報告"}]},{"type":"text","text":",18%的Java開發人員已經使用了Kotlin。我們預計這一數字將穩步增長。當然,由於領域的特殊性,服務器端的增長不會像Android那樣快,但Kotlin會長期堅持,我們並不着急。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"作爲一種全棧、多平臺的語言,Kotlin纔剛剛起步。整個Kotlin multiplatform於2017年發佈,目前仍處於試驗階段。然而,我們看到我們的社區產生了巨大的興趣和參與度,這與我們在Kotlin 1.0之前得到的反饋非常相似。因此,我們再次採取了一種慎重的方法,在它們通過時間考驗並獲得現實反饋之前,我們不會急於穩定任何東西。基於過去的歷史,隨着我們從"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/articles\/kotlin-multiplatform-ios-developers\/","title":null,"type":null},"content":[{"type":"text","text":"Kotlin Multiplatform Mobile"}]},{"type":"text","text":" (KMM)開始穩定Kotlin multiplatform的各個部分,我們預計對Kotlin multiplatform的採用會大大加快步伐。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"InfoQ: Kotlin沒有像JVM那樣在不同的虛擬機實現上運行相同的字節碼,而是通過編譯到不同的平臺來實現跨平臺支持。你認爲,隨着Kotlin和其它語言採用相同的方法,Java對“一次編寫,到處運行”的理解現在是否已經過時?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Elizarov"},{"type":"text","text":": Java的“一次編寫,到處運行”的思想在服務器端取得了成功,但在前端——無論是Web端還是移動設備端——都沒有成功。有太多特定於平臺的東西是Java太慢而無法適應的。即使在技術上可以運行JVM字節碼的Android上,也不是每個JVM庫都能開箱即用。因此,你可以在任何地方運行任何東西的想法確實已經過時,但在平臺之間共享源代碼的願望仍然存在。這是一個不同的目標。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在我看來,Java的主要錯誤是變得太大了,試圖將太多東西標準化並嵌入到平臺中,比如動態代碼加載、XML解析、甚至UI庫,這些東西經不起時間的考驗,結果只是曇花一現的時尚,而不是基本的東西。Java模塊化來的太晚了。在Kotlin,我們正採取一種更爲慎重的方法來擴展核心語言和核心庫。我們正在確保Kotlin在未來幾十年內保持相關性。此外,我們並不會幻想任何代碼都可以在任何地方運行。我們的願景是,開發人員將明確地在腦海中保留他們希望代碼運行的平臺列表,並且平臺之間總會存在一些需要偶爾考慮的差異。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"InfoQ: 作爲一種服務器端語言或全棧語言,Kotlin必須面對更激烈的競爭,(比它在Android平臺上贏得的競爭更激烈),包括最近引入的Rust和Swift等語言。你如何看待Kotlin在這個競技場上的表現?它的相對優點是什麼?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Elizarov"},{"type":"text","text":": Rust和Swift在各自的方面都是偉大的語言,但我不認爲Kotlin在正面直接與它們競爭,只是在某些領域。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在我看來,Rust更像是一種系統語言,更安全地替代了C和C++。在Rust中,你可以精確地控制內存和其它資源,並且與Kotlin相比,具有更多的低級別代碼性能調優能力。你可以用Rust編寫出色的應用程序軟件,但它將爲開發人員帶來更陡峭的學習曲線、需要更多的努力和更詳細的代碼,來告訴Rust編譯器你到底想做什麼。Kotlin的做法完全相反。Kotlin的目標是從代碼中完全刪除任何儀式,包括內存管理,並讓應用程序開發人員專注於他們代碼的實質——他們正在編寫的業務邏輯,即使這意味着犧牲一些運行時性能。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Swift則不同。Swift擁有現代的外觀和感覺,但它仍然延續了蘋果Objective-C的傳統,擁有許多蘋果生態系統之外的現代語言很少具有的功能和獨特的設計選擇。僅憑這一點,它就成爲一種特殊市場定位的語言。此外,作爲Swift的創造者,蘋果似乎對Swift在其它平臺上的未來並不感興趣,或者在外部觀察者看來是如此。對於Kotlin來說,這意味着在蘋果平臺上與Swift激烈競爭開發者們的意願,但幾乎不擔心Kotlin瞄準的所有其它平臺。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"InfoQ: 你希望看到Kotlin在未來10年內如何發展?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Elizarov"},{"type":"text","text":": 我們未來10年的主要重點是多平臺生態系統。我們仍然需要穩定它的核心部分,包括編譯器和工具,然後幫助社區提供生態系統繁榮所需的所有領域特定的庫。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"就語言本身而言,這一切都是爲了保持相關性,跟上所有現代趨勢和創新。我們目前正在經歷一場UI革命。響應式框架處於領先地位,Kotlin正追趕潮流,全面採用Jetpack Compose作爲Kotlin的現代UI範式。隨着響應式編程在開發人員中流行,處理不可變數據的工效學成爲該語言的首要關注點,這也是我們計劃在未來10年大力投入的領域之一。我個人確實可以預計,在這10年的晚些時候,服務器端也會發生類似的變化,重點將從可變數據轉移到不可變數據,從命令式代碼轉移到更具功能性的響應式代碼。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"處理數據是這裏的總體趨勢。隨着我們的信息系統變得越來越複雜,我們經常發現自己不得不處理更不結構化的變化更大的數據結構。到目前爲止,像Python和JS這樣的動態語言通過爲開發人員提供一種任意數據的更簡單的方法而獲得了這種轉換的好處,但代價是生成在工業規模和複雜度上更難擴展和支持的代碼。我們正在尋找將其中一些方法與Kotlin強大的靜態類型相結合的方法,以便爲開發人員提供更好的工具來滿足他們所有的數據操作需求。我們對不斷增長的數據科學領域特別感興趣,並將在這一領域繼續改進。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"隨着Kotlin擴展到服務器端和移動設備及其之外的更多領域,我們不能忽視支持更好的元編程功能的需求。許多領域都希望有自己獨特的特定領域的調整或擴展,這些調整或擴展根本不適用於常用庫的嚴格框架。Kotlin最初被設計爲非常適合領域特定語言(DSL),具有接收器、構建器和內聯函數。但我們現在正在超越這一點。既擴展了Kotlin的內聯函數的功能,又爲編譯時計算提供了便利,還開發了編譯器插件API,用於對該語言進行更激進的領域特定擴展。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"幾個月前,"},{"type":"link","attrs":{"href":"https:\/\/blog.jetbrains.com\/kotlin\/2021\/05\/kotlin-1-5-0-released\/","title":null,"type":null},"content":[{"type":"text","text":"Kotlin達到了1.5版本"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",引入了對一些最新Java特性的互操作支持,包括記錄類、密封接口、內聯類。此外,Kotlin編譯器切換到一個新的JVM中間表示,目的是提高性能,併爲新的語言特性提供基礎。Kotlin可以作爲"},{"type":"link","attrs":{"href":"https:\/\/www.jetbrains.com\/idea\/download","title":null,"type":null},"content":[{"type":"text","text":"IntelliJ IDEA"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"和"},{"type":"link","attrs":{"href":"https:\/\/developer.android.com\/studio\/","title":null,"type":null},"content":[{"type":"text","text":"Android Studio"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"的一部分安裝,也可以通過克隆它的"},{"type":"link","attrs":{"href":"https:\/\/github.com\/JetBrains\/kotlin","title":null,"type":null},"content":[{"type":"text","text":"GitHub倉庫"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"安裝。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"heading","attrs":{"align":null,"level":5},"content":[{"type":"text","text":"嘉賓簡介:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"Roman Elizarov "},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"是JetBrains的Kotlin項目負責人,目前以首席語言設計師的身份專注於Kotlin語言設計。在2000年,Roman Elizarov從聖彼得堡ITMO畢業,開始了專業軟件開發生涯。在本科學習期間,他參加了國際大學生編程競賽(ICPC)。自1997年至今,Roman擔任ICPC北歐地區首席法官。他還保持學術聯繫,並在ITMO教授併發和分佈式編程課程。Roman Elizarov的職業生涯的大部分時間都在Devexperts工作,他在那裏爲領先的經紀公司和市場數據交付服務設計和開發了高性能的交易軟件,這些服務通常每秒處理數百萬個事件。他是Java和JVM方面的專家,特別是在併發、實時數據處理、算法和現代架構的性能優化方面。自2016年以來,他一直在JetBrains從事Kotlin方面的工作,併爲Kotlin協程的設計和Kotlin協程庫的開發做出了貢獻。"}]},{"type":"heading","attrs":{"align":null,"level":5},"content":[{"type":"text","text":"作者簡介:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"Sergio De Simone"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" 是一名軟件工程師。Sergio在一系列不同的項目和公司擔任軟件工程師超過15年,包括西門子、惠普和小型初創企業等不同的工作環境。在過去的幾年中,他一直專注於移動平臺和相關技術的開發。他目前在BigML,Inc.工作,負責iOS和OS X開發。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"heading","attrs":{"align":null,"level":5},"content":[{"type":"text","text":"原文鏈接"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/articles\/kotlin-ten-years-qa\/","title":null,"type":null},"content":[{"type":"text","text":"Kotlin at Ten. Interview with JetBrains’ Roman Elizarov"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章