Squeak 6.1

Squeak 6.1 是一个现代 Smalltalk 环境,它重新激发了人们对基于镜像、具备高度内省能力的编程系统的兴趣,在这类系统中,代码、工具和 UI 都存在于一个持久的对象世界里。评论者强调了 Smalltalk 对 JavaScript 和 Ruby 等语言的历史影响、其独特的对象与 GUI(通过 Morphic)处理方式,以及实时调试,同时也指出了诸如 UI 审美过时和高 DPI 支持等实际障碍。讨论还延伸到与 Pharo、Glamorous Toolkit、Cuis 以及 Erlang 风格 actor 模型的比较,凸显这些理念如何持续影响人们对并发、持久性和开发者体验的思考。

Smalltalk 的概念性影响

  • 许多人认为学习 Smalltalk 具有变革性,类似于 Lisp 或 Erlang,有助于理解“真正的”面向对象,即把对象和消息传递贯彻到底。
  • 有些人形容那种来自实时、持久图像模型的“哇”时刻:你是在塑造一个运行中的系统,而不是反复重启程序。
  • 也有人认为,操作系统层面的抽象和静态系统仍然提供了关键保护;Smalltalk 的 VM 往往也需要恢复机制。

基于镜像的系统与持久性

  • 有几种语言/环境被提到具有基于镜像或类似语义:Common Lisp、Scheme 变体、GNU Emacs、R、LambdaMOO 风格系统、NixOS(关于类比是否成立存在争论),以及像 GemStone/S 这样的对象数据库。
  • 探讨的想法包括:持久化、内存映射的镜像;带有 git 风格哈希和增量差分的内容寻址镜像;以及能按需懒加载持久化对象的透明代理。
  • 一些人认为这种模型在当下对版本管理、代理以及减少手动序列化非常相关;也有人强调其复杂性和生态摩擦。

Morphic、UI 与工具链

  • 通过 Self 的渊源、Squeak 移植以及 JavaScript 实现(Lively Kernel、morphic.js、Snap!)来讨论 Morphic 的架构。也分享了链接和文档供深入研究。
  • Cuis Smalltalk 因其简化的、基于矢量的 Morphic、完整的高 DPI 支持以及高度交互式的 UI 操作而受到赞誉。
  • 对 Squeak 的 UI 评价不一:既有强大的内省能力和活性,也有“像停留在 90 年代”的感觉,尤其是在现代高 DPI 显示器上。有人说 Squeak 6.1 改进了高 DPI,但仍有人觉得有不足;同时也提到 Pharo/Glamorous Toolkit 和 SqueakJS 等替代方案。

JavaScript、其他语言与影响

  • 一种观点认为,JavaScript 的许多“优点”都来自 Smalltalk。也有人提出反驳,强调 Self 对原型的影响和 Scheme 对 JS 的影响,并指出 JS 缺乏真正的 Smalltalk 式根对象或纯消息传递。
  • 讨论还延伸到 Lisp、Prolog、Forth、Erlang、Elixir、Gleam、Ruby,以及 TypeScript 这类带类型语言,主旨是学习多种范式能拓宽理解。
  • 一些人预测 AI 会减少编码的“乐趣”,而另一些人则认为,在 AI 辅助的未来里,好的语言、工具和人类可读代码会变得更加重要。

实际问题与支持

  • 高 DPI 支持是反复出现的痛点;大家认为 Squeak 和 Pharo 都在改进但仍未完全到位,而 Cuis 和 Glamorous Toolkit 被提议在现代显示器上表现更好。
  • 有人询问新 Squeak 版本与 Etoys 的兼容性;绕过办法包括使用旧镜像和 SqueakJS。