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年的一份报告显示,面向对象语言的市场份额为:

  1. C++ — 71.3%
  2. Smalltalk — 15.1%
  3. Objective-C — 5.7%
  4. Object Pascal — 4.2%
  5. CLOS — 2.5%
  6. Eiffel — 1.1%
  7. 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个功能点所需的工作小时数评估)结果如下:

  1. C — 26,273
  2. Fortran — 22,394
  3. JavaScript — 15,929
  4. Forth — 14,636
  5. Haxe — 14,636
  6. Lisp — 14,636
  7. C++ — 12,697
  8. Go — 12,697
  9. Java — 12,697
  10. PHP — 12,697
  11. Python — 12,697
  12. C# — 12,309
  13. Dart — 11,620
  14. F# — 11,312
  15. Ruby — 11,312
  16. Erlang — 10,758
  17. Elixir — 9,845
  18. Haskell — 9,845
  19. Julia — 9,465
  20. Perl — 9,465
  21. Delphi — 8,289
  22. Objective-C — 7,848
  23. Visual Basic — 7,848
  24. Eiffel — 7,156
  25. Smalltalk — 6,879

原文:https://www.codeproject.com/Articles/1241904/Introduction-to-the-Smalltalk-Programming-Language

结论

Smalltalk是一项传奇,值得人们了解其思想精髓

Smalltalk的辉煌时代相关推荐

  1. Dolphin Smalltalk 7 遵循 MIT 开源

    Object Arts 的 Smalltalk 编程语言实现Dolphin Smalltalk在MIT许可证下开源,该公司在时隔9年之后发布了开源版的Dolphin 7,上个版本还是在2006年发布的 ...

  2. java的smalltalk规则,Smalltalk相当于Java的静态是什么?

    What is the Smalltalk equivalent of Java's static fields and methods? IOW, what do the Smalltalkers ...

  3. Smalltalk 语言的地位为何一落千丈?

    [CSDN编者按]"我们有这么多珍贵.优雅.给了我许多快乐的语法,为什么你们还在使用那些劣质的语法?你们怎么能这么盲目.这么愚蠢?"这类争论永远没有胜者,建议不要尝试. -- Al ...

  4. 艾伦·凯与Smalltalk语言

    为什么80%的码农都做不了架构师?>>>    艾伦·凯与Smalltalk语言 您知道左面挂着图灵奖奖章的人是谁吗?他是世界上第二个面向对象语言--Smalltalk的发明人艾伦. ...

  5. 如何阅读Smalltalk程序

    本文简单介绍了Smalltalk语言的一些语法规则,Smalltalk语言中使用MVC模式来构建用户界面,即MVC模式是起源于Smalltalk语言的,不过Smalltalk的中文资料太少,这篇翻译文 ...

  6. 什么是Smalltalk

    引用地址:http://www.smalltalk.org.cn/language/whatissmalltalk.html Smalltalk和许多程序设计语言不同,它不仅仅是一门语言.下面我们从几 ...

  7. smalltalk 上手

    在www.smalltalk.org上晃了一圈,了解一下情况,然后下载了Squeak和VisualWorks,开始还对Squeak有些好感,比较小巧,对它的评价不错,不过打开才发现Squeak的界面也 ...

  8. 学点SmallTalk

    久仰SmallTalk的大名,大概是因为很多design pattern的名著都提到它,并且一说到OOAD也都会提到它老人家.但是我并不知道它是啥子东东,就像谁关心Ada一样. 但是出来混总是需要还的 ...

  9. Smalltalk for Everyone Else

    在 ONLamp.com 上看到 Keith Fieldhouse 的<Smalltalk for Everyone Else>一文.开篇 Keith 即鼓励开发者们保持旺盛的学习欲望,努 ...

最新文章

  1. 学习使用Bing Maps Silverlight Control(五):离线使用和自定义地图模式
  2. 中秋节,送上一次非常有趣的SQL优化实战经历
  3. 使用W3C XML Schema
  4. leetcode — maximum-subarray
  5. HTML5语言教程:渐进使用HTML5语言识别
  6. [YTU]_2354 (实现复数类中的加运算符重载【C++运算符重载】)
  7. golang函数:命名返回值代码示例
  8. acf滞后数必须为正整数。_【知识点】“勾股定理”的必考点,必须掌握!
  9. ipad分屏_iPad如何分屏及常见问题
  10. 课时20:内嵌函数和闭包
  11. [html] 你有使用过IE的条件注释吗?
  12. Google Maps API 进级: GoogleMaps常用事件及应用思路1
  13. Redis解决秒杀中一人一单问题
  14. 让OSX terminal更出彩
  15. Fiddler 手机抓包详解
  16. 12864液晶显示原理(C程序)
  17. 常用软件静默安装参数
  18. 当你的Stream遇上Lambda就爱上了,超级无敌酷酷 - 第418篇
  19. web和httpd协议
  20. Unity Shader - Get Screen Pos

热门文章

  1. 06_css3中的Animation(动画)
  2. RabbitMQ【笔记整理+代码案例】
  3. ASIC加速技术的发展趋势:基于区块链和量子计算的ASIC加速方案
  4. 代理服务器的几种使用场景
  5. linux服务器CPU飙高排查
  6. Ctrl 一直被按着
  7. 【测宽仪项目】Hight-Speed Charting控件改变曲线的颜色、宽度、样式
  8. Goland 提示 Unresolved reference 错误解决
  9. TRACE32——Go.direct
  10. 智慧农业共享农场菜园土地租赁认养小程序APP源码开发功能有哪些?