今天几乎所有传统语言都将程序员的意图表示为文本源,然后(为简单起见)将其转换为某些字节码/机器代码并由VM / CPU解释/执行。
还有另一种技术,出于某种原因,它并不是流行的日子:“冻结”VM的运行时间并将环境(符号绑定,状态,代码(无论是什么))转储/序列化为图像,然后您可以传输,加载和执行。
因此,您不能以通常的方式“编写”代码,而是在“运行时”中使用新符号修改环境。
我认为这种技术有很大的优势:
问题是:这种方法的缺点是什么?我没有看到任何严重的劣势吗?我知道,它有一些问题,即:
但是,这些是,恕我直言,可以通过良好的设计解决。
EDIT1:关于状态“已关闭,主要是基于意见”。我已经描述了两种现有的方法,很明显,一种方法比另一方更受欢迎。我不知道其原因是纯粹的“以意见为基础”还是有研究支持,但是即使他们是以意见为基础的,如果有人将这些意见列为开发的原因,那么实际上应该回答我的问题。
答案 0 :(得分:2)
作为smalltalk的日常用户,我要说我没有发现任何根本的缺点,并且必须同意有很多优点。 它使元编程,对程序的推理变得简单,并且更好地支持重构和代码重写。
但是,它需要/开发一种不同的查看代码的方式。 Smalltalk几乎没有给那些对抽象不感兴趣的开发人员提供