代码作为系统图像(序列化 运行 时间环境)与源代码(文本)

Code as System image (serialized run-time environment) vs Source (text)

今天几乎所有的传统语言都将程序员的意图表示为文本源,然后(为了简单起见)将其翻译成一些 bytecode/machine 代码和 interpreted/executed 由 VM/CPU .
还有另一种技术,由于某种原因,这些天并不那么流行:"freeze" VM 的 运行 时间和 dump/serialize 环境(符号绑定、状态、代码(无论那是什么))转换为图像,然后您可以传输、加载和执行。 因此,您不会以通常的方式 "write" 您的代码,而是使用新符号修改环境,而在 "run-time".
我看到这种技术的巨大优势:

问题是:这种方法有什么缺点?是否有任何我没有看到的严重严重缺点?我知道,它有一些问题,即:

但是,恕我直言,可以通过良好的设计解决这些问题。

EDIT1: 关于状态 "closed,primarily opinion-based"。我已经描述了两种现有的方法,很明显,一种方法优于另一种方法。其原因是纯粹的 "opinion-based" 还是有研究支持这一点,我不知道,但即使它们是基于意见的,如果有人列出这些意见发展的原因,它实际上,应该回答我的问题。

作为 smalltalk 的日常用户,我不得不说我没有发现任何根本的缺点并且不得不承认它有很多优点。 它使元编程、程序推理变得容易,并且更好地支持重构和代码重写。

不过,它 requires/develops 是一种查看代码的不同方式。对于对抽象不感兴趣的开发人员,Smalltalk 几乎没有什么可以提供的