为什么很少有人用 Smalltalk

这是因为:1、缺乏标准;2、商业模型失败;3、性能差;4、与外界的交互差。Smalltalk的类并没有公认的语法,而是通过反射方法调用来定义。不同供应商的反射API差异导致了程序定义本身就不可移植,不论程序使用的其他API如何。

1、缺乏标准

Smallktalk有(到现在依然有)多种实现,其实现的数量甚至超过了曾经广泛使用的编程语言。在传统行业,一项技术有多个来源是优势。但对于Smalltalk而言,情况则截然不同。

每个供应商的版本都略有不同,并不是不同的语言,而更像是不同的平台。例如,Smalltalk的类并没有公认的语法,而是通过反射方法调用来定义。不同供应商的反射API差异导致了程序定义本身就不可移植,不论程序使用的其他API如何。

当然,人们为了解决这个问题付出了许多努力。从八十年代末,人们就致力于Smalltalk的标准化,在九十年代人们进一步为之努力。但是,他们的努力几乎没有取得任何效果。

2、商业模型失败

Smalltalk的供应商们一直有一个很奇怪的想法,那就是“酒香不怕巷子深”。他们认为他们的酒足够香,所以应该可以卖上好价钱。

这种想法在开源出现之前就有了,尽管Smalltalk的编译器、工具和库都是以源代码形式提供的,只有虚拟机是闭源的。

但是,绝大部分软件开发者宁可自己在石板上刻程序,也不愿意购买工具,不论这些工具多么精妙。有些供应商甚至不是按照开发者席位收费,而是按照软件的部署数量来收费。贪婪算法通常不是最优,而这种收费模式比其他模式更贪婪,效果也更差。后来的事实证明了一切。

有一件特别过分的悲剧,ParcPlace拒绝了Sun微系统公司在Sun的工作站上安装ParcPlace Smalltalk的橄榄枝。Sun给出的条件是按照每台机器支付版权费用,但远远不及ParcPlace通常开出的价钱。

3、性能差

Smalltalk比C慢很多,直到现在都是如此,而且需要耗费更多内存。在八十年代末、九十年代初,这个问题很严重。到了九十年代中期,我们开始开发Strongtalk,当时最有潜力的客户之一就是瑞士银行。他们已经部署了许多Smalltalk应用程序。他们能承受Smalltalk,而别的客户不行。例如,他们愿意给柜员配备强大的电脑,那些电脑都是带有32M内存的IBM个人电脑,其成本让绝大多数公司望而却步!

实现总要花很长时间才能跟上技术的进步,即使追上以后,也只有很少的语言能够享受到这些进步。这一点也非常讽刺。JIT源于APL,但Smalltalk也是这个领域的先行者(Deutsch-Schiffman的研究成果),更不用说Self语言(适应性JIT的发明者)了。

4、与外界的交互差

Smalltalk的做事方法很独特。通常(尽管并不绝对),这些方法都比主流的实践好。尽管如此,它与外界的软件环境的交互却很困难。例如:

FFI。Smalltalk的FFI很别扭、限制很多,而且非常低效。毕竟,谁愿意从那个美丽、梦幻的肥皂泡中出来,走向肮脏危险的世界呢?

我们在九十年代中期的Strongtalk和后来的Newspeak语言中完全解决了这个问题。

窗口。Smalltalk是窗口的诞生地。讽刺的是,Smalltalk依然在自己特殊的窗口系统上运行,锁在了单一的OS窗口中。

Strongtalk也解决了这个问题;其他人也解决了这个问题,但那些努力主要集中在他们自己孤立的世界中。后来,我们的Newspeak也有了原生的UI。

延伸阅读:

什么是Smalltalk?

Smalltalk,被公认为历史上第二个面向对象的程序设计语言,和第一个真正的集成开发环境(IDE)。Smalltalk由艾伦·凯,Dan Ingalls,Ted Kaehler,Adele Goldberg等于70年代初在Xerox PARC开发。

Smalltalk对其它众多的程序设计语言的产生起到了极大的推动作用,主要有:C++,C#,Objective-C,Actor,Java和Ruby等。90年代的许多软件开发思想得利于Smalltalk,例如设计模式、敏捷编程和代码重构等。

最早的Smalltalk原型由艾伦·凯于70年代初提出。类(来自Simula-67)、海龟绘图(来自MIT的LOGO)以及图形界面等概念的有机组合,构成了Smalltalk的最初的蓝图。

文章标题:为什么很少有人用 Smalltalk,发布者:小编,转载请注明出处:https://worktile.com/kb/p/39267

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年2月22日
下一篇 2023年2月22日

相关推荐

  • 仓管erp系统如何操作

    仓管erp系统操作步骤:一、客户订货业务;二、生产排程业务;三、采购业务;四、委外业务;五、生产加工业务;六、销售发货业务;七、财务制单业务;八、期末处理。客户订货业务包括报价管理和销售订单,主要协助销售部门处理报价单和客户销售订单。 一、客户订货业务 业务流程均以用友ERP为例。 输入报价单 审核…

    2023年3月18日
    82400
  • 什么是测试覆盖率,如何有效地测量它

    测试覆盖率乃衡量软件测试工作质量的关键指标,它直接关联到了软件产品质量及其潜在风险。该指标的有效测量可以归纳为以下要点:1、代码覆盖率;2、功能覆盖率;3、路径覆盖率;4、分支覆盖率。测试覆盖率考察了测试用例对软件代码的覆盖程度。它揭示了那些经过测试的代码区域以及尚未执行的代码部分,这有助于评估软件…

    2023年11月22日
    52100
  • 什么是JVM(Java虚拟机)

    Java虚拟机(Java Virtual Machine 简称JVM)是运行所有Java程序的抽象计算机,是Java语言的运行环境,它是Java 最具吸引力的特性之一。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息…

    2023年5月29日
    32900
  • 什么是NSGA-II多目标遗传算法

    NSGA-II,也称为非支配排序遗传算法II,是一种用于解决多目标优化问题的遗传算法。我们可以从以下几点去深入了解:1、算法的背景与特点;2、核心步骤与算法流程;3、主要应用领域;4、与其他遗传算法的对比;5、算法的优势与局限性;6、未来的发展趋势。 1、算法的背景与特点 多目标优化:在许多实际问题…

    2023年7月30日
    1.0K00
  • sql和oracle的区别是什么

    sql和oracle的区别在于以下几个方面:1、开放性;2、可伸缩性,并行性;3、性能;4、客户端支持及应用模式;5、操作;6、使用风险。开放性是指,SQL Server 只能在windows上运行,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。 一、开放性 SQL Server 只能…

    2023年2月18日
    1.7K00
  • 项目延期常见原因有哪些

    在项目管理中,延期是一个通常需要避免的问题,但它受多种因素的影响。1、资源分配不当是项目延期的常见原因之一。这涉及到资金、人力、以及设备等资源的安排和管理过程中的失误。详细描述时,资源分配不当会导致执行阶段出现短缺和冗余,从而干扰项目进度,增加工期。 一、概述资源分配不当的影响 未能妥善安排资源会对…

    2023年12月26日
    45900
  • 手机devops是什么意思

    手机DEVOPS是什么意思? 在当下科技迅速演进的时代背景下,1、软件开发和运维的紧密结合成为了行业新范式,2、手机DevOps就是这种趋势在移动端的具体体现。 特别是在移动应用日益广泛的今天,快速迭代和高质量交付成为了各大企业的追求。DevOps翻译为“开发运维”,是一种强调软件开发人员(Dev)…

    2024年3月26日
    1500
  • Redis 在 SNS 类应用中的优异实践有哪些

    Redis 在 SNS 类应用中的优异实践有:1、消息队列(通知类、延迟更新类);2、热点数据的实时缓存(比如feed,数据库、缓存同时写);3、热点列表数据缓存(首页、热门话题等);4、counter(计数器,大多是用缓存实现的)。 一、Redis 在 SNS 类应用中的优异实践 二、Redis适…

    2023年1月8日
    33400
  • Java中的身份验证和授权如何实现

    在Java Web开发中实现身份验证和授权的手段有很多,以下是一些流行的方法:1、使用JAAS(Java Authentication and Authorization Service),2、Spring Security框架,3、容器管理安全,4、标准API如Servlet规范的安全扩展。本文将…

    2024年1月8日
    22200
  • 绩效考核管理系统设计方案

    绩效考核管理系统的设计旨在提升组织效率、增强员工激励、改进人力资源管理流程。该系统核心要素包括:1、明确目标与指标体系、2、实时性的绩效数据追踪、3、灵活的反馈与沟通平台、4、集成的绩效评估工具及5、个性化发展计划。在这些要素中,实时性的绩效数据追踪对于促进系统有效性至关重要,它确保管理者与员工能够…

    2024年1月10日
    31600

发表回复

登录后才能评论
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部