科幻作家克拉克曾经说过, 任何技术在不懂的人眼中都无异于魔法. 埃及人建造金字塔的技术, 是古代魔法的一个实例.
魔法虽然抽象, 却是很具体的东西. 如果你们觉得对使魔下令帮助你们写作业算是魔法的话, 那就全然误解了魔法的实质. 我指的是, 使魔压根就没有办法帮助你们写作业, 因为这个命令不够具体.
魔法的核心是抽象, 这与数学类似. 在物理中, 串联一万个放大器是荒谬的. 然而, 在魔法学中, 串联一万个魔法是相当合理的. 这是魔法相当与众不同的特点. 换句话说, 如果在现实世界中抽象是一种原理的话, 在魔法世界中, 抽象就是一种法则. 它全然就是精确的, 而不是在某种限度内近似精确的.
魔法学最重要的分支是程序设计学与魔法语言学. 前者的重要性历来被人们忽视, 而后者在魔法学中, 出于历史原因, 相当小众. 不过, 本书主要就是关于这两个领域的.
程序设计学被人们忽视的原因其实很简单, 因为写程序太简单了. 任何人都能写程序, 但不是任何人都是魔法师. 许多想成为魔法师但并不是魔法师的人们写了许多关于魔法的垃圾, 他们经常向希望学习魔法的人灌输一种错误的想法, 即要成为魔法师必须精通数据结构和算法. 数据结构和算法当然是重要的, 但并不是最重要的, 而且不是首先应该学习的. 一个新人, 最开始应该学习的东西, 应该是如何组织他的程序.
魔法语言学小众的原因其实也相当简单, 那就是这个学科有很长时间的混沌期. 那时的研究者完全不知道在做些什么, 其中偶尔有些非常聪明的人, 是他们的专著逐渐塑造了现代的魔法语言学, 那些作品至今仍有阅读的价值. 然而, 的确因为那个很长的混沌期, 使得许多人, 甚至是魔法大师, 也对于魔法语言学充满了偏见. 比如, 一些门外汉以为句法学是魔法语言学的核心, 魔法语言学不外乎是关于句法分析的学科. 魔法语言学的研究者经常怀有令人讶异的傲慢, 或许正是与这些人有关, 但这也使得魔法语言学至今很小众.
我的书试图同时讨论这两个分支学科, 并希望将它们安于适当的位置. 同时, 我也希望我的作品能够拥有永恒的价值, 而不像许多人评论道的那样, "魔法是一种每年翻新的时尚".