文章摘要
文章指出Smalltalk的四窗格系统浏览器虽已沿用40年,在提供上下文方面依然出色,但核心问题可能不在于浏览器本身,而在于其周边工具缺乏组合性。作者认为这种看似"老旧"的系统其实开创了许多现代IDE的功能。
文章总结
Smalltalk的浏览器:无可匹敌,但仍显不足
四窗格系统浏览器的持久魅力
Smalltalk的四窗格系统浏览器已主导该语言开发环境四十年。它通过以下结构提供无与伦比的上下文感知能力: - 类列表窗格 - 协议/方法分类窗格 - 方法列表窗格 - 代码编辑窗格
这种设计在Pharo和Glamorous Toolkit等现代实现中依然保持核心架构,仅在外观上有所调整。
核心优势:上下文保留
浏览器成功的关键在于其保持代码结构上下文的能力: 1. 方法始终显示在所属类环境中 2. 类始终关联到所属包 3. 通过命名体系、继承关系和协作模式展现类间关联
这种结构化展示方式,使得开发者能始终把握代码在整体系统中的位置,这是单纯消息流视图无法替代的。
现实困境:工具协作的缺失
实际开发中暴露出更深层问题: - 窗口泛滥:追踪简单功能调用链时,常需打开十余个独立窗口 - 工具割裂:调试器、检查器、Playground等工具间缺乏有机联系 - 上下文丢失:跨工具跳转时难以追溯探索路径
用户调研揭示的主要痛点: - 难以回溯操作历史 - 工作区组织困难 - 工具间交互不符合现代IDE预期
系统级问题分类
- 弗兰肯斯坦工具:功能堆砌导致界面复杂化(如重复的代码/调试菜单)
- 孤岛工具:系统浏览器与文件浏览器等工具重复造轮子
- 异质工具:与操作系统惯例的兼容性问题(如Iceberg版本控制工具)
- 环境过载:Pharo14包含10,750个类,远超Smalltalk-80的223个,探索成本激增
未来方向:从工具改进到工作流重构
根本解决方案不在于替换浏览器,而需重构IDE的工作表示方式: - 将工作空间建模为工具关系图 - 记录调查线程(investigation thread)的完整轨迹 - 实现工具间的动态上下文传递
如同Pharo13的Cavrois有机窗口管理器所做的尝试,需要通过增强工具组合能力来解决动态上下文缺失这一核心矛盾。最终目标应是让IDE能够像浏览器维护静态上下文那样,有力地维护开发者的动态探索过程。
本文探讨的实质是:当四窗格浏览器仍完美胜任"画框"功能时,我们如何让整个IDE更好地承载"画面"?
评论总结
以下是评论内容的总结:
代码浏览器设计理念
- 有评论认为代码浏览应像分形一样多层次(评论1:"browsing code is like browsing a fractal")。
- 另有用户提到历史工具Whisker的横向设计适合宽屏(评论2:"primary orientation was horizontal... an advantage")。
Smalltalk的现状争议
- 批评者指出Smalltalk已过时,工业界很少使用(评论3:"smalltalk became obsolete... no one use smalltalk")。
- 支持者认为其开放性仍是理想范式(评论5:"Smalltalk is how computing should have been")。
IDE功能改进需求
- 用户指出传统四窗格浏览器的不足:扁平化包列表和项目切换不便(评论6:"left-most 'package' pane is a flat list... 'project' view needed")。
- 建议补充多视图而非取代传统界面(评论7:"complemented by other views... shown alongside")。
Smalltalk的历史价值
- 有用户赞赏其界面设计经久不衰(评论8:"has been around for so long... amazingly similar to Pharo")。
- 但也有人认为生态系统已落后(评论7:"fallen decades behind the state of the art")。
抽象与层级设计的争议
- 部分用户坚持层级结构的必要性(评论9:"unable to like anything... different than a hierarchy")。
- 另一些用户强调现有工具已支持灵活交互(评论4:"can run any smalltalk code from workspace-style frames")。
关键引用保留:
- 评论5:"Smalltalk is how computing should have been: an open book"
- 评论7:"why would it need to be 'surpassed' rather than complemented"
- 评论9:"Abstractions have to be earned... questioned or exuding their properly valued"