【譯】Objective-C的特性(The Disposition of Objective-C)

來源:互聯網
上載者:User

原文地址:http://amattn.com/2011/10/15/the_disposition_of_objective-c.html

        筆者經過十年的Objc編程,在此談一些對Objc的評論。

冗長(Verbose)

        這是最顯然的Objc特性。Objc編程中總會用到極為冗餘的文法,你只能對此習以為常。有經驗的Objc程式員相當倚賴於IDE等多種工具來輔助編碼。若你要熟練而美觀地書寫Objc代碼,就得動用大量工具來對付該死的文法,如程式碼片段(snippets),鍵盤宏,定製的模板等。這些技巧用將出來,將一發不可收拾。幸好標準的訊息傳遞機制便於閱讀,為Objc挽回不少分數。

醜陋(Ugly)

        Objc是一種醜陋的語言。把C語言拿來,又在類結構的裡外充斥著@指令——這就像一個流浪漢穿著一個垃圾袋。再把Smalltalk硬塞進去。然後發明屬性(Property)來善後。最後空降個^ 代碼塊(Block,iOS4之後推出的特性,相當於第一類值的C函數,譯者注)來完成這門語言。

        我深愛Objc,但依然認為Objc的文法既不簡潔,亦不美觀。

易讀(Readable)

        優秀的Objc代碼尤其易讀。這部分得益於Objc命令式的文法傾向。通常而言,訊息傳遞機制是程式錯誤的溫床。但能夠在訊息的各參數前加入說明,使訊息體能夠自我說明,非常易讀。

        訊息傳遞機制是Objc的最大亮點。

編譯型語言(Compiled)

        這有兩個顯著的好處:

        得益於編譯器和靜態分析器,許多錯誤不必由程式員來捕捉。於是Objc程式員不為那些無聊而機械的錯誤所困。

        第二個好處是優異的程式效能。於是時至今日,iPhone 3GS之後的裝置依然效能優異。

生態系統(Ecosystem)

        蘋果公司包攬了Objective-C的IDE,語言實現,以及主流的庫。Xcode,LLVM,Cocoa彌補了很多語言上的缺陷。由於對語言結構上的擴充,諸如子類化,類別是在運行時完成的,自己寫Objc的SDK,架構,庫的話,會遇到很多麻煩。

靜態類型,動態類型,基礎類型(Static, Dynamic or Duck Typed)

        在實踐中,土鱉的筆者(your ostentatioulay humble author)偏愛靜態類型和原始類型,因為它們很少導致錯誤。當你確實需要支援多種類型,id是一個動態而方便的工具。正式和非形式協議是id的用武之地。

趨勢(Momentum)

        好酒曆久彌香,Objc同樣在成長中。我們已經得到了屬性,塊,GCD以及最近的ARC。只有傻瓜才會認為Objc沒有前途。你日常使用的的程式設計語言會越來越易用嗎?

Objc真正缺少什嗎?

        我提一句箴言:

        Objective-C:易擴充,易讀的符號式(punctuation-based)程式設計語言。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.