所以你想寫一個應用程式(2025)
我透過在各個平台上建立一個簡單的擲骰子程式,親自體驗不依賴 Electron 等網頁技術的開發者環境。這篇文章反思了平台整合的挑戰、POSIX 等老舊標準的局限性,以及當前開發文件碎片化的現狀。
背景
這篇文章源於一位資深開發者的實驗,他試圖在不依賴 Electron 等 Web 技術的前提下,探索 2025 年各個原生平台的開發體驗。作者透過開發一個簡單的隨機骰子程式,測試了從標準 C、POSIX 到現代 GUI 框架的工具鏈與文件完善度,並對當前開發環境的破碎化與複雜性提出了反思。
社群觀點
Hacker News 的討論主要圍繞在「原生開發」與「Web 技術」之間的權衡。部分讀者對作者關注「開發者體驗」與「人體工學」表示共鳴,認為在現今技術更迭極快的環境下,如果工具的學習曲線過於陡峭或文件匱乏,往往會導致開發者中途放棄。特別是針對微軟頻繁更換 UI 框架的現象,社群中存在不少負面評價,認為這種不穩定性讓開發者更傾向於選擇長壽且穩定的工具,如 Qt 或靜態網站。
然而,也有觀點對作者的實驗方法提出質疑。有評論指出,作者將「工具的穩定性」與「開發者體驗」混為一談,認為對於專業開發者而言,工具的能力與規格遠比儀表板上的介面設計重要。這派觀點認為,Web 技術之所以在過去十年勝出,正是因為 W3C 標準與大型科技公司的官僚體系最終提供了更具普適性的解決方案。一位留言者詳盡列舉了 Web App 的優勢,包括無需安裝、跨平台分發、自動填充與更清晰的安全模型,認為除非需要調用特定的作業系統 API(如 HealthKit),否則原生開發的誘因已大幅消失。
在具體工具的推薦上,社群展現了多元的偏好。有人推崇 Lazarus 作為跨平台桌面開發的隱藏瑰寶,認為其在 Windows 與 Linux 上的表現依然穩健;也有開發者分享了使用 Python 解決工廠自動化問題的經驗,強調生態系統與函式庫的支持才是選擇語言的關鍵。針對行動端開發,Flutter 被提及是目前「一次編寫,到處執行」最成熟的競爭者,而新興的 Rust 框架如 Dioxus 雖然受關注,但其商業永續性仍讓部分開發者感到擔憂。此外,也有資深開發者建議,若追求極簡與高效,傳統的 Tcl/Tk 在處理簡單 GUI 程式時依然具有難以超越的優勢。
針對作者在 Android 開發中遇到的 Jetpack Compose 挫折,有熟悉該技術的讀者提供了技術性解釋。他認為現代開發框架如 Kotlin 的協程與 Flow 概念雖然對初學者有門檻,但其反應式設計是為了處理複雜的非同步狀態,這反映了現代 App 開發已從單純的指令式邏輯轉向更複雜的聲明式架構。
延伸閱讀
- Lazarus IDE:基於 Free Pascal 的跨平台視覺化開發工具,被社群認為是 Delphi 的優秀替代品。
- Flutter:由 Google 開發的 UI 工具包,在討論中被視為目前原生跨平台開發的首選。
- Tcl/Tk:經典的腳本語言與圖形介面工具箱,適合快速開發輕量級桌面應用。
- Dioxus:基於 Rust 的新興 UI 框架,雖然處於早期階段但受到技術愛好者關注。