程序設計有一個範式問題:就是組織程序的基本思想。它反映了程序設計者對程序的一個基本的哲學觀,也就是說,他認爲程序的本質是什麼,他認爲一個大的程序是由什麼組成的。網絡
範式目前有三種:過程範式、函數範式、對象範式。函數
後者較前者具備3個優點:設計
對象範式的兩大基本觀念:對象
爲了方便對象的構造,引入了類、繼承等概念。 smalltalk構造了更靈活和純粹的消息發送機制。繼承
它實現了一個與目標對象無關的消息發機制,無論那個對象是誰,也無論他是否是能正確的處理一個消息,做爲發送消息的對象來講,能夠毫無顧忌的抓住一個對象就發送消息過去。接到消息的對象,要嘗試理解這個消息,並最後調用本身的處理過程來處理消息。若是這個消息能被處理,那個對象天然會處理,若是不能處理,Smalltalk系統會向消息的發送者回傳一個doesNotUnderstand消息,予以通知。對象不用關心消息是如何傳遞格給一個對象的,傳遞過程被分離出來(而不是向Simula那樣明確地以成員函數調用的方式實現),能夠是在內存中複製,也能夠是進程間通信。到了Smalktalk-80,消息傳遞甚至能夠跨越網絡。進程
不妨把源自Smalktalk的消息機制稱爲「動態消息機制」。內存
把源自Simula的消息機制稱爲「靜態消息機制」。資源
對於消息轉發機制的不一樣選擇,主要是由於用途。Simula用於仿真程序開發,smalltalk用於圖形界面環境構建。開發
到了1980年代,C出現了。Bjarne Stroustrup在博士期間深刻研究Simula,因而在C語言基礎上,幾乎把Simula思想照搬過來,造成了最初的C。 大約在同期,Brad Cox根據Smalltalk的思想設計了Objective-C,但是因爲其語法怪異,沒有流行起來。只有Steve Jobs這種具備禪宗美學鑑賞力的世外高人,於1988年把Objective-C的團隊和產品一口氣買了下來。團隊協作