與 Kotlin 一起的 Google Summer of Code 2026
這篇文章包含 Google Summer of Code with Kotlin 2026 的 專案構想列表,以及 貢獻者指南。
Kotlin 資源:
- Kotlin GitHub 存儲庫
- Kotlin Slack 和 #gsoc Slack 頻道
如果您有任何問題,請透過 [email protected] 聯絡我們
Kotlin 針對 Google Summer of Code (GSoC) 的貢獻者指南
快速入門
熟悉 Kotlin 語言:
- 官方 Kotlin 網站 是一個很好的起點。
- 閱讀官方 文件 以更深入地了解該語言。
- 看看 JetBrains Academy 上的 Kotlin 課程或 Android 團隊的 訓練選項。
- 追蹤 Kotlin X 或 Kotlin Bluesky 帳號以掌握最新的新聞與發展。
- 查看 Kotlin YouTube 頻道 以獲取教學、技巧和最新更新。
了解 Kotlin 開源社群:
- 探索一般的 Kotlin 貢獻指南。
- 加入 Kotlin Slack 頻道 以與其他開發人員聯繫,並就您可能遇到的任何問題獲取協助。
- 加入 #gsoc 頻道 提問並獲得 GSoC 團隊的支持。
如何申請
- 查看 專案構想 並選擇您想要開發的一個。
- 如果您不熟悉 Kotlin,請 閱讀 Kotlin 網站上的介紹資訊。
- 參考 GSoC 貢獻者指南。
- 透過 GSoC 網站 進行申請。
- 我們建議您撰寫一份與提議專案相關且可運作的程式碼範例。您也可以向我們展示任何您特別感到自豪的程式碼範例。
- 描述您為什麼對 Kotlin 感興趣以及您對它的經驗。
- 如果您參與過開源專案,請引用您的貢獻歷史。
- 如果您有 GitHub、Twitter 帳號、部落格或技術/科學出版物的作品集,也請一併引用。
- 若因其他事務(如考試和假期)而與 GSoC 時間線產生衝突,請予以說明。
謝謝!我們期待閱讀您的申請書!
專案構想
Kotlin 編譯器 Fuzzer (Kai) [困難, 350 小時]
近年來,fuzzing(模糊測試)已成為在軟體中尋找複雜 bug 的廣泛技術。 Kotlin 編譯器也不例外:先前的 fuzzing 努力在不同的編譯器子系統中發現了 200 多個去重後的 bug。
然而,現有的 fuzzer 實作已經過時,無法合理地進一步演進。 本專案的目標是根據以往的經驗以及現代工具與技術,從頭開始打造一個新的 Kotlin 編譯器 fuzzer,名為 Kai。
本次實習的主要目標是為 fuzzer 的未來開發建立堅實的基礎。重點領域包括:
- 設計支援外掛化 (pluggability) 的 fuzzer 架構
- 選擇用於產生、變異和處理 Kotlin 程式碼的工具
- 定義檢測編譯器失敗的可靠方法
- 設計用於收集、分類和處理已發現問題的適當工作流程
作為交付成果,我們的目標是建立一個模組化且易於演進的 Kotlin 編譯器 fuzzer 原型,而不是單體式 (monolithic) 的實作。發現真實的編譯器 bug 將是一個巨大的加分項,但這不是本次實習的首要目標。
如果您對該專案有初步疑問,請透過以下方式聯絡導師:marat.akhin [at] jetbrains.com
預期成果
一個具有外掛化架構、支援未來演進的 Kotlin 編譯器 fuzzer 原型。
必備技能 (must-have)
- 精通 Kotlin 或其他基於 JVM 的語言
- 技術英文能力足以閱讀相關論文和文件
- 對編譯器有基本了解
加分技能 (nice-to-have)
- 熟悉 fuzzing 或其他形式的程式分析
- 具有 Kotlin 編譯器外掛程式、IDE 外掛程式或其他可外掛系統的經驗
- 具有從零開始 (greenfield) 的開發者工具專案經驗
您將學到什麼
- 編譯器 fuzzing 的實務經驗
- 內部開發者工具是如何設計和建構的
- 如何設計和實作可外掛系統
可能的導師
Marat Akhin, JetBrains
此專案包含一個測試任務。請傳送電子郵件至 [email protected] 以獲取詳細資訊。
Swift 到 Kotlin 的互通性 (PoC) [困難, 350 小時]
現代軟體專案很少只存在於單一語言生態系統中。在 Apple 平台上,Swift 是主要語言,而 Kotlin 則廣泛用於共享和跨平台的業務邏輯。然而,目前還沒有直接將 Swift API 匯入 Kotlin 的簡單方法。
在此專案中,您將基於現有的開源 Swift–Java 橋接器,並加入 Kotlin/Native 作為目標執行時。這包括設計 Swift API 如何暴露給 Kotlin/Native、呼叫如何跨越 Swift/Kotlin 邊界,以及如何跨執行時管理物件生命週期。
目標是為 Swift 到 Kotlin/Native 的互通性建立一個概念驗證 (PoC),記錄設計決策和權衡,並評估限制與未來方向。
預期成果
一個 Swift 到 Kotlin/Native 互通性的概念驗證,並附有記錄的設計決策、權衡、限制和未來方向。
必備技能 (must-have)
- 目前正在攻讀或最近完成了電腦科學或相關領域的學位
- 熟悉 Swift
- 對程式語言和互通性感興趣
加分技能 (nice-to-have)
- 熟悉 Kotlin
可能的導師
Artem Olkov, JetBrains
此專案包含一個測試任務。請傳送電子郵件至 [email protected] 以獲取詳細資訊。
Kotlin/Wasm 後端的尾呼叫支援 [中等, 90 小時]
此專案專注於將尾呼叫 (tail call) 提案整合到 Kotlin/Wasm 後端。實習生將設計並實作尾呼叫支援,並透過效能基準測試評估其影響。
預期成果
Kotlin/Wasm 尾呼叫支援的設計與實作,並附帶效能基準測試與評估。
技能要求 (偏好)
熟悉直譯器與編譯器,並對優化和效能基準測試感興趣。
可能的導師
Charlie Zhang, JetBrains
Kotlin 教育現狀報告 [中等, 175 小時]
Kotlin 在全球的教育環境中被教授和使用。此專案旨在針對 Kotlin 在何處以及如何被教授,建立一個結構化且最新的概覽。
預期成果
- 一份強調趨勢與差距的「Kotlin 在教育中」報告
- 可供內部和公開使用的可重複使用資料集
- 為未來策略提供輸入
技能要求 (偏好)
- 研究與資料分析技能
- 對程式設計教育與開發者生態系統感興趣
可能的導師
Ksenia Shneyveys, JetBrains
