首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

为啥Smalltalk不流行

2013-08-01 
为什么Smalltalk不流行最近读到一本书,说懂Python的程序员比Java程序员聪明。同理,懂Smalltalk的程序员也比

为什么Smalltalk不流行
     最近读到一本书,说懂Python的程序员比Java程序员聪明。同理,懂Smalltalk的程序员也比Java程序员聪明。所以,我在StackOverflow上找到这个关闭很久的问题,整理了一下,跟大家分享。

     在介绍为什么Smalltalk不流行之前,你一定会想它有什么特别之处吗,以至于很多技术刊物和出版物在谈论面向对象时都拿它作为参照。我只会Java,它真的有那么重要吗,或者说我需要学习它。因此我先就这个问题作了整理。

Smalltalk可以说是OO语言的先驱之一(当时与之对应的是Simula和Eiffel),它是相当纯粹的OO语言。

一切皆对象,对象之间的通讯只能通过发送消息实现无原生对象(例如int或boolean等)无结构控制(例如for或switch等),听起来不可思议但这是真的无静态对象(static)

它甚至实现了一些现在看来司空见惯的设计:

虚拟机(JIT编译)检查式调试“Hotswapping”执行代码闭包现代IDEDuck typing基于Model-View Controller (MVC) 的UI测试驱动开发(TDD)和敏捷方法

另外Smalltalk还有很多特性让它显得另类:
基于Image的系统而不是基于文件面向对象的数据库

好不夸张的说,Java和apache-common的集合类(collections)API都极大地受到Smalltalk的影响。

我不会建议你去学习Smalltalk,但熟悉这些基本概念(目前很多语言都提供了)对你相当有帮助。

该语言的创作者Alan Kay最初的目的是儿童教育。现在人们不再大规模使用它,但这不并不是说它完全退出了。比如,JPMorgan有一个大型的管理衍生品风险的系统就是用Smalltalk语言编写的。

言归正传,回到刚才的主题,为啥Smalltalk没有流行起来。

某人说,最近几个月来我一直在看Smalltalk(VisualWorks),我越学越对它刮目相看。不过我总觉得我是不是忽略了一些东西,它现在为啥不再流行还是它从未流行过。那些抛弃Smalltalk转而学习Java或C++的人,谁能告诉我这是为什么。

一个被大家普遍认可的回答这么说,有很多原因(大部分是历史造成的)导致Smalltalk没有火起来。

与那个时代的硬件相比,它太超前了1995年,Java横空出世,Smalltalk主要的厂商(ParcPalace)正忙着呢与另一个厂商(Digitalk)合并,最终以失败告终2000年,Cincom收购VisualWork时,人们已经不再对Smalltalk感冒了此后,Smalltalk不再扮演重要角色,但它又恢复了一些市场。

总而言之,Smalltalk生不逢时,后来毁于该领域内愚蠢的厂商之手。

还有一些人提到,VisualWorks是一个伟大的产品并且费用也可以接受,被另一个公司收购之后,极其昂贵的授权费用扼杀了这个伟大产品成为主流的机会。与此同时,Sun公司大力宣传Java,它免费,可移植,并且Sun不断优化JVM,使Java语言在执行速度上逐渐被人们所接受(与C语言相比)。

热点排行