天天看點

objective-c的文法詳解(objective-c的曆史)

現在開始做iphone應用,開始接觸objective-c語言。對于經曆過VC,java的我來說,objective-c的文法給了很多新鮮感。現在就由最基礎的方式來學習objective-c吧。在網上找到一篇介紹Objective-C曆史的文章,現翻譯後的内容如下。

在介紹一個新的錯綜複雜的程式設計語言之前,我們很值得花一部分時間來了解語言的曆史和它的價值。在這一章節(Objective-C2.0)的要領中,我們将要簡短的介紹Objective-C的由來和它的商業上的進展,這使它最終被選擇為Mac OS X和iPhone上的程式設計語言。

C語言

Objective-C是基于一種相當輕便的函數調用的程式設計語言C。C語言的曆史來源幾乎可以追溯到40年,那時兩名工程師(Dennis Ritchie,Ken Thompson)在非常有名的貝爾實驗室工作。當時,他們倆一直緻力于開發在PDP-7和PDP-11系統上的UNIX作業系統。在嘗試用彙編語言寫作業系統後,他們認識到要想處理複雜的作業系統例如UNIX,需要一種更進階的,更友善程式員程式設計的語言。他們第一次嘗試設計出來的是B語言,該語言是基于BCPL語言,但是被發現有漏洞。基于BCPL的字母順序,C語言被建立出來,然後被用來編寫UNIX作業系統的核心和架構。C語言是非常成功的,以至于後面的P和L語言從來就不需要誕生。

Smalltalk程式設計語言

C語言是面向過程的語言。是以,這意味着它缺少面向對象語言的一些特性。面向對象語言倡導小型的清晰定義的代碼對象,這些對象可以被組裝和重複使用來建立更加複雜的系統。一個小組在1970年代很早的做了面向對象語言的嘗試,該小組成員包含Alan Kay(他最後去了蘋果工作)和Dan Ingalls,該小組的工作地點在Xerox PARC。該小組設計出來了Smalltalk。

C和Smalltalk的關系

到目前為止這是個很有趣的曆史教材,但是這和Objective-C有什麼關系呢?當然,在1980年代,兩個開發者(Brad Cox和Tom Love)擴充了C語言來支援具有面向對象特征的Smalltalk。C語言的擴充最終演變為Objective-C。Objective-C随後被Free Software Foundation采納并且在GNU Public License(GPL)課題下釋出。

Objective-C和蘋果

Objective-C,一個有40年曆史的程式設計語言,最後變成Mac OS X和iPhone的首選程式設計語言。要想了解這一點,有必要挪開技術一會兒并且讨論一下商業。在1980年代,Steve Jobs和Steve Wozniak發明了蘋果電腦。經過了幾年的成功後,Steve Jobs從PepsiCo雇傭了一個有市場頭腦的人John Sculley來幫助把蘋果推向下一個商業上成功。長話短說,在一個辦公室鬥争中Steve Jobs被公司開除,John Sculley來管理公司。Jobs離開公司後創辦了叫做NeXT的新公司來設計新一代電腦系統。由NeXT開發出來的作業系統在電腦上運作被稱為NeXTstep。為了發展NeXTstep,NeXT公司遵循Objective-C語言。NeXT随後聯手Sun微系統公司設計出來了标準化的NeXTstep新版本,該新版本叫做OPENstep,并且OPENstep被Free Software Foundation作為GNUstep所采用。在1990年代,John離開了蘋果,一系列的CEO來來去去。在這段時間,蘋果公司失去了市場佔有率,并且一直與其它公司的将要取代MacOS的新的作業系統做鬥争。經曆了很多失敗的嘗試和合作夥伴,公司最終決定與其盡力寫一個新的作業系統,不如采用公司已經有的這個作業系統。在Gil Amelio作為CEO來管理公司的期間,兩個公司被提到名單中要收購。其中一個公司是Be,Lnc,由前蘋果員工(Jean Louis Gassee)創辦。另外一個公司就是NeXT。最終,NeXT被選擇并且Steve Jobs重新回到蘋果。在另外一個辦公室鬥争中,Steve Jobs趕走了Gil Amelio并且重新當上了這個他建立了好多年的公司的CEO。 NeXTStep形成了Mac OS X的架構,并引用了Objective-C。随後,Mac OS X被修改成了一個很成功的複雜的作業系統iPhone。

繼續閱讀