Smalltalk和其創作人alan kay(2003年圖領獎得主)都是IT界的一個傳奇,值得後人瞭解和稱讚。什麼是Smalltalk,它取得了哪些成就呢?估計你在百度百科可以搜到,但是不夠詳細,不夠豐滿。
下面是一篇來自外國網友Richard Eng關於“what is smalltalk"的文章,他基本把smalltalk的歷史和成就都介紹了,本文把其核心思想翻譯如下:
smalltalk是一種面向對象的編程語言,它有着豐富的而傳奇的歷史。它出生於19世紀70年代,在施樂研究院(Xerox PARC),由才華橫溢的夢想家團隊(包括Alan Kay,Dan Ingalls和Adele Goldberg)創作。smalltalk是爲了調研給孩子的編程教學而創作的。可以理解,它是一種非常小而簡單的語言,是主要編程語言中最小的。
在Alan Kay的《Smalltalk的早期歷史》(The Early History Of Smalltalk)(版權所有1993 ACM)中說:
Smalltalk是對計算機本身概念的一種遞歸,而不是把“計算機材料”分成比整體強度小的東西,比如數據結構、過程和函數,它們是編程語言的常用工具,每個Smalltalk對象都是對計算機全部可能性的遞歸。因此,它的語義有點像讓成千上萬的計算機通過一個非常快速的網絡連接在一起。
Smalltalk的貢獻是一種新的設計範式,我把它稱之爲面向對象,用於解決專業程序員的大問題和使初學者製造一個個小的可能性。面向對象是一種成功的嘗試,提供了一個實質性的高效建模,使得硅爆炸所帶來的複雜的動態系統和用戶關係成爲可能。
以下是一些smalltalk的最高成就:
- Smalltalk引入了語言虛擬機世界,這是Java和Ruby的基礎。
- Smalltalk是JIT編譯器的先驅(即時編譯器)
- Smalltalk產生了第一個現代集成開發環境(IDE),包含了文本編輯器、類瀏覽,對象檢查和調試。
- 自從smalltalk-80以來,它有着一流的函數和封裝特性,奇怪的是,這使得smalltalk成爲了非常好的函數編程。
- Smalltalk引入了軟件架構模式MVC
- 在很大程度上,Smalltalk給了我們測試驅動開發(TDD)和極限編程(XP),這是現在非常流行的敏捷實踐。
- Smalltalk給了我們第一個重構的瀏覽器
- Smalltalk在開發圖形用戶界面(GUI)和“所見即所得”(WYSIWYG)用戶界面方面發揮了重要作用。
- 史蒂夫·喬布斯受到施樂PARC的GUI和WIMP(Windows、圖標、菜單、指針)的啓發,完全重新調整了蘋果的策略;GUI是Smalltalk成果的直接輸出。
Smalltalk曾經是一個非常流行的語言。
它於1981年8月在《字節》雜誌的封面上首次亮相:
此後,Smalltalk直接促進了一代面嚮對象語言的產生,包括Objective-C,Erlang,CLOS,Ruby,Python,Perl,PHP,Dart,Java,Groovy和Scala。蘋果公司甚至爲Macintosh創建了一種smalltalk。
SimalTalk的普及率在20世紀90年代達到頂峯,當時它是繼C++之後最流行的面嚮對象語言。根據IDC發佈的1995年的一份報告顯示,面嚮對象語言的市場份額爲:
- C++ — 71.3%
- Smalltalk — 15.1%
- Objective-C — 5.7%
- Object Pascal — 4.2%
- CLOS — 2.5%
- Eiffel — 1.1%
- all others — 0.2%
Smalltalk非常適合商業用途,因此在20世紀90年代,IBM選擇Smalltalk作爲其VisualAge企業計劃的中心,以取代COBOL。
在21世紀初,美國聯合軍隊使用Smalltalk編寫了一個名爲JWARS的百萬線作戰模擬程序。它實際上勝過美國空軍編寫的類似於C++的風暴模擬,這本身就是這門語言能力的驚人證明。
今天,Smalltalk依然被全球很多企業使用,其中較著名的用戶包括:
- JP Morgan(摩根大通)
- Desjardins(加拿大合作組織,北美最大的信用合作組織)
- UBS(瑞銀集團,歐洲最大的金融控股集團)
- Florida Power & Light(佛羅里達電力照明公司)
- Texas Instruments(德州儀器)
- Telecom Argentina(阿根廷電信)
- Orient Overseas Container Lines(東方海外貨櫃航運有限公司,香港集裝箱貨運)
- BMW(寶馬)
- Siemens AG(西門子)
Cincom, Instantiations, and GemTalk Systems是目前Smalltalk的主要供應商.
Smalltalk是所有主要編程語言中生產力最高
根據Namcook分析研究,Smalltalk是所有主要編程語言中生產力最高的(按“經濟生產力”衡量,提供1000個功能點所需的工作小時數評估)結果如下:
- C — 26,273
- Fortran — 22,394
- JavaScript — 15,929
- Forth — 14,636
- Haxe — 14,636
- Lisp — 14,636
- C++ — 12,697
- Go — 12,697
- Java — 12,697
- PHP — 12,697
- Python — 12,697
- C# — 12,309
- Dart — 11,620
- F# — 11,312
- Ruby — 11,312
- Erlang — 10,758
- Elixir — 9,845
- Haskell — 9,845
- Julia — 9,465
- Perl — 9,465
- Delphi — 8,289
- Objective-C — 7,848
- Visual Basic — 7,848
- Eiffel — 7,156
- Smalltalk — 6,879
原文:https://www.codeproject.com/Articles/1241904/Introduction-to-the-Smalltalk-Programming-Language
結論
Smalltalk是一項傳奇,值得人們瞭解其思想精髓