The programming language after Kotlin – with the creator of Kotlin
本集內容
安德烈·布雷斯洛夫是 Kotlin 的創建者,也是新程式語言 CodeSpeak 的創始人。CodeSpeak 旨在透過以簡潔的英文描述取代繁瑣的樣板程式碼,來減少冗餘。他曾在 JetBrains 領導 Kotlin 的早期設計,塑造了該語言及其編譯器,使 Kotlin 成長為 Android 生態系統的核心部分。
在本集中,我們討論了在生產環境中設計和演進一門程式語言需要什麼。我們探討了 Kotlin 背後的影響因素、塑造它的權衡取捨,以及為何與 Java 的互通性對其成功如此關鍵。
安德烈也解釋了為何他要在 LLM 代理時代,為應對日益增長的程式碼複雜性而構建 CodeSpeak。他相信,隨著 AI 能力增強,讓人類保持在軟體開發生命週期的控制權將變得更加重要。安德烈在對話結束時,也向對 AI 持懷疑態度的軟體工程師傳達了一個訊息:
使用這些 AI 編碼工具需要相當的技巧。你可以學習它,並能大幅提升。不必完全相信社群媒體上的每個人:有些人聲稱的事情很瘋狂!然而,當你善用這些工具時,確實可以非常高效,絕對值得投入時間學習。未來,構建複雜系統的仍然是工程師。請記住這一點:我們並非都將變得無事可做。
關於 Kotlin 歷史的 10 個鮮為人知的細節,以及安德烈對下一門大型程式語言的看法
以下是關於 Kotlin 歷史中讓我感到新奇的 10 件事,以及我特別關注的安德烈的觀點:
Kotlin 的誕生是因為 Java 停滯了六年。 到 2010 年,最後一個主要的 Java 版本是 Java 5(2004 年)。Java 6(2006 年發布)未對語言進行任何更改,Java 7(2011 年發布)只做了微小改動,而 Lambda 表達式直到 2014 年才出現。與此同時,C# 已擁有 Lambda、屬性等特性——這創造了一個明確的市場機會。
Kotlin 的第一個版本不是編譯器,而是一個 IDE 外掛。 安德烈做出了一個明智的決定:先構建一個利用 IntelliJ 解析基礎設施的 IDE 外掛。這讓安德烈可以在任何程式碼能被編譯之前,就互動式地展示這門語言。正如他回憶道:「我可以展示這門語言,就好像它已經存在一樣,因為它有一些工具支援,但我還無法編譯任何東西。」
最初的 Kotlin 團隊幾乎全由應屆畢業生組成。 安德烈從他以前的學生中招聘,因為他從大學時代就知道如何與學生合作。許多人成為了構建語言基礎部分的核心貢獻者。我發現這個故事很鼓舞人心:它提醒我們,只要學習速度快,無需大量經驗也能構建出持久的東西。
Kotlin 使用了來自 C# 的解析器技巧來保留泛型的尖括號,並解決了一個「數學上無法解決」的文法歧義。 < 符號既是「小於」也是「泛型類型」。Java 採用了笨拙的解決方法(需要點字首),Scala 使用了方括號。Kotlin 和 C# 則直接在解析器中進行臨時消歧,保留了熟悉的語法。
智慧型轉換的靈感來自一門名為 Gosu 的冷門語言。 智慧型轉換是 Kotlin 中一個令人愉悅的語言特性,在其他類型安全的語言中很少見:在 if (x is String) 檢查之後,Kotlin 會自動在分支內將 x 視為 String——消除了 Java 程式碼中常見的冗餘轉換。在底層,這個語言特性隱藏了一個相當複雜的演算法,但它消除了大量的雜訊。
省略三元運算子是安德烈最大的設計遺憾。 三元運算子存在於大多數語言中。在 Kotlin 中,安德烈移除了它,因為 if 已經是一個表達式,從而釋放了 ? 和 : 用於可空類型和類型註解。但 if 作為表達式,結果證明很冗長。安德烈指出:「當我同意(移除該運算子是個錯誤)時,已經為時已晚,因為你無法在現有語法中重新引入三元運算子。」
Kotlin 加入 Android 支援是偶然的。 一位 Android 開發者直接問團隊「Kotlin 能在 Android 上運行嗎?」,Kotlin 團隊檢查後,他們的工具鏈崩潰了。Android 工具比 JVM 更嚴格,因為 Android 開發者「實際上會閱讀規範」(哈!)。諷刺的是,這種嚴格性使 Android 成為驗證 Kotlin 位元組碼正確性的絕佳測試環境,這也是 Kotlin 團隊修復 Kotlin 以使其也能在更嚴格的 Android JVM 上編譯的原因。
安德烈正在構建一門新的程式語言,但它是基於英語的。 CodeSpeak 既不是一門形式語言,也不僅僅是提示。它是為工程師設計的,而非普通用戶,目標是將典型的應用程式碼縮減約 10 倍。剩下的將是「軟體工程的本質」——只有人類獨自知曉需要發生什麼的部分,因為「其他所有事情,機器也都知道」。
2026 年將是 IDE 相對於終端工具回歸的一年。 雖然安德烈稱讚 Claude Code 是「對終端功能的徹底突破」,但他認為,作為開發者,我們可以在專門的環境中更好地工作。他期待從頭開始構建、專為代理優先工作流程設計的新開發環境。
市場需要教授如何更好地使用 AI 編碼技能。 正如安德烈告訴我的:「有些人比其他人更擅長提示它。他們不一定能說清楚為什麼他們的提示更有效,但你可以學習它。」安德烈也敦促所有軟體工程師克服最初的懷疑,投資於學習,同時忽略社群媒體上關於軟體工程未來最誇張的聲稱。
← 返回列表
👍
✅
👎