关闭。这个问题是opinion-based .它目前不接受答案。
想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.
6年前关闭。
Improve this question
今天几乎所有的传统语言都将程序员的意图表示为文本源,然后(为了简单起见)将其翻译成一些字节码/机器代码并由 VM/CPU 解释/执行。
还有另一种技术,由于某种原因,现在并不流行:“卡住”你的 VM 的运行时并将环境(符号绑定(bind)、状态、代码(无论是什么))转储/序列化到一个图像,然后您可以传输、加载和执行该图像。
因此,您不会以通常的方式“编写”代码,而是在“运行时”使用新符号修改环境。
我看到了这种技术的巨大优势:
问题是:这种方法有什么缺点?有没有我没有看到的严重的严重缺点?我知道,它存在一些问题,即:
但恕我直言,这些都是可以通过良好的设计解决的。
EDIT1:关于“封闭,主要基于意见”的状态。我已经描述了两种现有的方法,很明显,一种方法优于另一种方法。其原因是纯粹的“基于意见”还是有研究支持这一点,我不知道,但即使它们是基于意见的,如果有人会列出形成这种意见的这些原因,它实际上,应该回答我的问题。
最佳答案
作为 smalltalk 的日常用户,我不得不说我没有发现任何根本的缺点,并且不得不承认有很多优点。
它使元编程、推理程序变得容易,并且更好地支持重构和代码重写。
不过,它需要/开发一种不同的方式来查看您的代码。对于对抽象不感兴趣的开发人员,Smalltalk 几乎没有什么可提供的
关于lisp - 代码作为系统镜像(序列化运行时环境)与源代码(文本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36739076/