newsence
來源篩選

Why Objective-C

Hacker News

The author shares his surprising return to Objective-C for building a high-performance static site generator, rediscovering the language's simplicity and speed despite its reputation as a legacy technology.

newsence

為什麼選擇 Objective-C

Hacker News
2 天前

AI 生成摘要

我分享了自己重新回歸 Objective-C 來開發高效能靜態網站產生器的意外旅程,並重新發現了這門語言儘管被視為過時技術,卻仍保有簡潔與極速的優勢。

背景

本文作者分享了他在大規模移除 Objective-C 程式碼後,卻在開發個人靜態網站產生器 SalmonBay 時重新愛上這門語言的經歷。他認為 Objective-C 本質上是具備優雅資料結構建模能力的 C 語言,且其語法雖然初看怪異,但實際上小巧易懂,且因語言特性趨於穩定,能有效減緩技術債的累積速度。

社群觀點

在 Hacker News 的討論中,社群對 Objective-C 的情感呈現出明顯的兩極化。支持者高度讚賞其 Smalltalk 式的「訊息傳遞」哲學,認為這才是真正的物件導向。這種機制讓物件能處理未定義的方法或進行動態轉發,賦予了系統極高的靈活性與運行時內省能力。許多開發者指出,macOS 至今仍擁有的強大調試與自動化能力,很大程度歸功於 Objective-C Runtime 的設計。此外,Objective-C++ 的無縫銜接也被視為一大優勢,它能輕鬆橋接 C++ 函式庫與現代系統 API,這在處理高效能圖形(如 Metal)或跨平台底層庫時,比 Swift 的橋接過程更為直觀且負擔更輕。

然而,反對意見則集中在現代開發標準的缺失。許多開發者坦言,在習慣了 Swift 或 Rust 的可選型(Optionals)與編譯期空值檢查後,很難再忍受 Objective-C 容易引發的空指標錯誤或鬆散的類型檢查。儘管後來加入了非空註解,但在開發體驗上仍顯得像是補丁。此外,繁瑣的標頭檔維護與樣板程式碼也是被詬病的重點。

有趣的是,討論中出現了對 Swift 現狀的集體反思。不少資深開發者認為 Swift 正在陷入「第二系統效應」,語言變得過於複雜且功能過載,甚至連其創始人 Chris Lattner 都曾對此表達擔憂。相比之下,Objective-C 的「簡約」反而成為一種優點,因為它讓開發者能將精力集中在解決問題,而非理解語言特性。部分留言者甚至感嘆,如果當年蘋果選擇在 Objective-C 的基礎上現代化,而非創造一門全新的複雜語言,或許現在的開發環境會更加純粹。

延伸閱讀

在討論中,開發者們提到了一些值得關注的資源與替代方案。ObjFW 是一個優秀的跨平台 Objective-C 框架,適合想在非蘋果平台使用該語言的開發者。針對網頁端,Objective-J 與 Cappuccino 框架雖然熱度不如以往,但仍維持著將 Objective-C 概念帶入 JavaScript 的獨特嘗試。此外,關於 Objective-C 訊息傳遞機制的底層原理,Mike Ash 的部落格文章提供了深入的技術剖析,是理解 objc_msgSend 運作方式的經典教材。