什麼是Smalltalk,它有哪些過人之處?現年40歲以下的程序員瞭解它的應該不多,smalltalk巔峯時代是在上個世紀80、90年代,如今熱度已經消退,上期2020年2月TIOBE流行榜上在第93位,現有用戶還是非常多的,還有很多專門爲Smalltalk提供服務的供應商,很多開源的Smalltalk版本。Smalltalk是國外編程語言教科書,尤其是面向對象的教科書中出現的高頻詞彙,因爲它有很多傳奇,創造了很多編程方面的第一,以至於網友在stackoverflow上問“smalltalk有什麼特別之處?smalltalk這麼重要,我要學嗎?”。
下面是被採納的回答,譯文如下:
Smalltalk是最早的面向對象編程語言之一(與之相似的有Simula和Eiffel)而且被認爲是極純粹的OO(object-oriented):
- 一切皆對象,而且對象之間只通過消息通信。
- 沒有基礎類型(沒有 ints,booleans等)
- 沒有控制結構(沒有for,while,if等).聽起來不可能,但是真的。
- 沒有靜態類
它開創了很多如今看來已經很普遍的東西:
- 虛擬機(和JIT編譯器,即時編譯器)
- 調試檢查(debugging inspection)
- 熱部署運行代碼(類似熱插拔)
- 現代開發環境IDE
- 封裝(有人翻譯爲閉包,類似於private,protected)
- 多態類型(Duck typing)
- 爲UI的MVC架構設計
- 測試驅動開發(TDD)和敏捷開發方法
還有其他與smalltalk相關的事情:
- 基於圖像的系統而不是文件系統
- 面向對象的數據庫
另外,Java集合API和apache commons集合API都受到了Smalltalk的影響。雖然我不認爲你應該學Smalltalk本身,但是熟悉這些特點的基本原理對你肯定是有利的。
smalltalk最初是作爲一種教育語言(即針對兒童)被它的創造者艾倫凱設計的。雖然它不再被大量使用,不是說沒用。例如,摩根大通(JPMorgan)就有一個大型的外來衍生品風險管理系統。
---------------以上爲譯文---------
原文地址:https://stackoverflow.com/questions/1821266/what-is-so-special-about-smalltalk#
Smalltalk的以上創作和超前思想對蘋果和微軟的戰略決策都產生了重要的影響,Smalltalk的主要創作人alan kay獲得了2003年圖領獎,撇開Smalltalk語法和工具本身,其思想理念是十分爲後人所稱道的,因此它作爲教科書典範毫不爲過。
結論
Smalltalk是一項傳奇,值得我們瞭解其思想精髓