什么是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是一项传奇,值得我们了解其思想精髓