Objective-c for Java程式員 第一部分1

來源:互聯網
上載者:User
Objective-c for Java 程式員 第一部分Java的設計構想大都來自Objective-C,但許多人發現學習過Java後再學習Objective-C是困難。在第一個由兩部分組成的系列“ChisnallCocoa編程開發手冊”中, 作者大衛著眼於兩種語言的語義的相似性和差異進行了分析和研究。

早在1986年建立的Objective-C,但是非常高效的語言。在過去十年出貨量的總和只有50000台電腦的NeXT公司的影響下,大大限制了語言的發展。當蘋果電腦買下了NeXT,這種狀況開始有所好轉。Objective-C在Mac上發展成為主要的語言,它佔據5-10%左右的案頭應用開發的市場份額。Objective-C中沒有OS
X上雖然只支援的開發語言,和很多開發商使用的東西,他們比較熟悉。相比之下,iPhone的,不支援任何第三方開發除了Objective-C以外。

如果你來自一個Java背景兩種平台,那麼你可能會發現變化艱巨。Objective-C中看起來非常不同與Java。幸運的是,一旦你過了文法這關,語言是非常相似的,你會發現,過渡並不困難。

一些Java的設計者不得不使用Objective-C的經驗,包括一些曾OPENSTEP規範“下一步工作。很多想法在Java的Objective-C直接被取消,或採取從Smalltalk,這激發了兩種語言。這並不是說,一切是在Objective-C相同。有一些重要的差異,這在下一篇文章中,我將探討。

語言哲學

Objective-C的設計帶來Smalltalk中享有的C語言的封裝支援。它的設計者之一,作為一種混合語言描述它作為一個指示從C代碼過渡的標誌的方括弧文法,對象土地。“

Java的目標是使平均程式員可用的語言。這種結合的Smalltalk般的語義與C + +文法。後者決定了營銷比技術的原因更多。C + +中有一個大的市場份額(現在仍然存在,一些奇怪的原因),它使開發人員切換到一種語言,看著看著不同的類似更容易。

不幸的是,這是一些人的重大問題交換或從Java開發的原因。Java的看起來像C + +,但這樣的Objective-C的行為很多。Java和Objective-C的有像Smalltalk中的語義,而C + +增加了類似Simula的語義C. Java和C +涉及Smalltalk和Simula的語義之間切換,沒有任何相應的變化在文法。

之間進行中的C + +和Objective-C很容易在文法的變化,伴隨著語義上的變化。之間的Objective-C和Java是有點混亂。在文法上有一個大的變化,但只有在小的語義變化。

在少數地方,在目標的差別是顯而易見的。Java的目標是要成為隱約類似於C和容易為C或C + +程式員學習,但不介意打破東西時C方式做事不理想。的Objective-C是一個純C的超集,每一個有效C程式是一個有效Objective-C程式。Objective-C的主要設計目標之一就是要製作成可重用的組件很容易parceling C庫的語言。

Objective-C的最初並沒有拿出一個標準庫。您預計使用C庫。現在作為一個Objective-C的標準庫是常用的設計,的OPENSTEP規範,由Sun和NeXT,如可可或GNUstep的大多數平台上執行。的Java沒有可以很容易地重用現有的代碼,所以它從一開始就需要一個全面的標準庫。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.