编程语言有机会在用户界面方面具有最大的灵活性。你可以让电脑做任何你想做的事。硬币的另一面是,如果你打错了一个字符,它可能不知道你的错误是沿着哪个轴或在哪里犯的。
灵活性较低的系统为解决问题提供了更多机会。如果您在 Lisp 编译器中键入 (abc) 并且它不知道 a 是什么,那么它与许多有效代码行非常接近,以至于它无法准确地建议一个修复。如果您在 COBOL 程序的开头拼错了“IDENTIFICATION DIVISION”,编译器会相对容易地发现错误并帮助您。大多数其他语言介于这些极端之间。
在他们的职业生涯中,程序员倾向于从功能较弱且结构化的语言转向功能更强大且更灵活的语言。(至少,这是我在 Javascript 成为如此热门的新手语言之前所看到的情况。)这意味着他们的纪律提高到能够使用提供强大功能的工具,而无需被告知要做什么。我使用的可以告诉我要修复什么的环境往往是我不喜欢使用的环境。
它与任何其他艺术没有什么不同。看看音乐家、画家、武术家、演员、作家或厨师,甚至学习说西班牙语的人:当他们年轻且缺乏经验时,他们会被置于一个有很多结构的系统中,如果他们犯了错误有人可以很容易地纠正它们。随着他们变得更加熟练,他们需要并且想要的支持越来越少。当他们自己成为专家时,他们根本不需要任何支持,但硬币的另一面是你不能轻易指出什么是对或错。如果你的孩子在线条之外涂色,你可以解释这个问题,但如果毕加索或波洛克画得不好,你会怎么说?或者如果菲利普·格拉斯把一张纸条放在不合适的地方,还是李小龙把他的身体变成了一拳?谁愿意以如此有限的艺术形式工作,以至于世俗的事情是不可能的?如果有人真的想要 COBOL 编译器,它们仍然存在,但更多的人花钱购买糟糕的画作,而不是精湛的按数字颜色打印。
更直接地说,有一个站点ErrorHelp (nee bug.gd),它可以让您输入错误消息并获得结果,它比 SO 更老,但没有人使用它。我试过了。除非您所处的环境只有一个可能的答案,否则在建议解决方案字典中遇到的简单问题是行不通的,因此在任何创意领域都是完全失败的。