前言

原文见Swimming with the Fish

这个英文标题让人想起「与狼共舞」(Dances with Wolves),于是我准备采用类似的结构 – 与鱼共游,巧的是,DeepL也是这样翻译的。

译文

有时候,很难向使用过其他软件开发环境的人,解释在Smalltalk中编程是怎样的体验。 多年来,许多语言都试图接近Smalltalk的感觉,但无一成功。 下边我们试着通过故事描述我们的感受。

想象你是一位海洋考古学家。 你系上新型潜水装备(配有不会产生任何气泡的循环呼吸器),纵身跃入水中。 当你环顾四周,看到了小鱼、鲨鱼、黄貂鱼、珊瑚礁和乌贼。 你游过珊瑚礁,发现你的目的地 – 一艘沉船。 你需要找出它沉没的原因。 你绕船转了一圈,看着船体,感受着木头的质感,最后进入桥楼(译者注: 船中部的上层建筑, 其顶层设有驾驶室、作为指挥、控制船舶航行的中心。) 你转动转轮,感觉不对–转轮自由转动,但没有感受到正常的阻力。 你打开桥楼地板上的舱门,游到下面去看看。问题就在这里! 那里应该有一个齿轮。 那个齿轮使舵机的轴和舵相连接。你环顾四周,发现齿轮落在了附近。 它看起来没坏,可为什么会掉下来呢? 它应该是由一个铰链固定的。 哦,铰链在那儿。 铰链断成了两截 ,所以船因为失去方向盘而搁浅。

往北几英里处,另一位海洋考古学家正在探索另一艘类似的沉船。他坐在船上操作着他的遥控潜水艇,盯着显示器: 那是珊瑚礁 ,漂浮起来 ,向右转10度,前进 ,放慢速度 ,再前进,那是船。慢慢前进。他努力让镜头转向船体,他在船体周围导航潜艇。停在这儿。 屏幕上的物体太近,只能显示一两块甲板。仰视和俯视都很费劲。 他得从船上退下来。 这样的话,要看清整艘船,得花上几个小时。 我们到桥楼去吧。 往上,往上,往上,停 ,现在向右转,停在那里,那是桥楼的门,门是关着的,遥控潜水艇没有可以用来开门的装置 ,而且,这艘遥控潜水艇也进不去。 于是这位海洋考古学家将遥控潜水艇浮到水面,记录事故原因为: 操作失误

作为一个Smalltalker(译者注: Smalltalk使用者),你已经习惯了 与鱼共游。 你和你要探索的对象生活在同一个世界里。 你可以伸手触摸它们, 操纵它们,转动东西,看看感觉如何。你可以去任何地方,做任何事情。 你可以掀起引擎盖去弄清楚幕后的真相。

在其他语言中,你在不同的环境中通过远程控制摆弄你的工具。 受限于工具的能力,你无法轻松地操纵环境中的事物。 你可以通过虚拟现实或更好的探头来逼近现场的感觉,但终究不会有 与鱼共游 的感觉。