追求不变性
在一般的生活场景中,好象只有顽固的保守派才追求不变性,年轻人大多追求日新月异的东西。
但是在学术研究中,研究者还是愿意追求不变性。
这从哪里说起呢?
还是从对称性说起吧。
对称性的精确数学定义涉及到不变性概念。
如果一个几何图形在某种操作下保持不变,就说这个图形在这些操作之下具有不变性。
物理学家会采用更为方便的描述方法,这种描述方法不再去旋转一个几何图形,而是问同一图形在两个相互旋转了一定角度的观察者看来是否一样。
如果我把头转过17度,正方形就偏了,而圆形依然保持不变。
在几何学中,要问一个几何体在什么操作下保持不变是完全不成问题的,但是物理学家并不是处理几何图形的。那么对称性是如何进到物理学中的呢?
象几何学家一样,物理学家可能会问,在不改变物理现实的前提下,我们能对它“做”些什么呢?
这样的提问显然不很恰当,但它的确是物理学的一个基本的问题:处于不同观察位置的物理学家眼中的物理现实是一样的吗?
假设有两个物理学家,其中一个不管是出于什么原因,总是把头偏离竖直方向31度角观察世界。两个物理学家分别把他们的观察结果总结成物理学定律,然后比较结果。
如果他们总结的物理学定律是一致的,我们则说,物理学定律在转过31度角时保持不变。
现在,那个古怪的物理学家再次把头转成另一个角度,重新开始他的研究,然后比较研究结果。
最后两人得到结果,不管视角偏离多少角度,研究结果都是一致的。
今天,物理学家已经相信,物理学定律对旋转保持不变性,因此我们说物理学定律具有旋转不变性。
显然,说物理学具有旋转对称性/不变性,是指它在空间并无特别的取向。
对具有现代意识,特别是看过星际战争电影的人来说,没有一个方向具有相对其它方向具有内在优越性这一说法,几乎成了哲学上必然的东西。
但是,事实上就在不久之前,人们都确定相信有一个特殊的方向。
有很长一段时间,人类对物理世界的认识总是摆脱不了重力的影响,意识到“上“与”“下”并无内在意义也是一个使人震动的发现。(想想我们许多人总是摆脱不了因果的影响,意识到“前因“与”后果“并无内在的意义也是一个使人震惊的发现)。
虽然古人很早就猜测地球是圆的,但是我们真正理解旋转对称性实际是从牛顿觉察到苹果不是掉到地上而落向地心开始的。
我们还得说,物理学是建立在经验基础之上的,所以旋转对称性也只能由实验来建立。
在20世纪30年代,物理学家尤金.维格纳将旋转对称性应用到象原子的光发射一类的量子现象,得出的结论可用实验测量来验证。
实验物理学家实际上并不会偏着自己的头,他们可以通过在发光原子周围放几个光检测器来达到同样的效果。记录下的光的计数率,并与维格纳用旋转对称预言的理论计数相比较。
直到现在,实验总是支持旋转不变性。
因此,物理学家把对称性的概念发展成一个判断自然设计的客观判据。给出两个理论,物理学家一般会觉得对称性更高的那一个要更美一些。
当观察者是物理学家时,美意味着对称。
区分物理定律的对称性和特定情形下的对称性,是牛顿的伟大学术成就之一,它使物理学得到以成形。
-------------
请原谅我不怀好意的打住这个话题(虽然会引起一些网友的不满)。
因为我是码农,所以我真正想要说的是:软件开发中如何追求不变性/对称性。
根据软件工程论述,软件开发涉及多个利益相关者(stake holder)。
什么时候软件能成为科学?
我认为必须是在软件中发现不变性/对称性。
我一直拒绝承认社会学/经济学研究是科学,因为有一个段子:你同4个经济学家聊天后,你会得到5个不同的经济学想法。
换而言之,社会学/经济学研究不具备旋转不变性,基于不同的立场的观察者,会得到不同的研究成果。只有在纯科学研究中才可能有对称性/不变性,涉及到现实利益的情况下,只能各说各话。
软件开发显然也是一样的,不同的利益相关者对软件的看法是不一样的。
当码农辛辛苦苦完成代码开发,并调试通过时,有的利益相关者会拒绝承认开发成果。
因此软件及相关内容并不是什么科学体系,功夫在诗外,码农的很多工作与代码编写、调试无关,是在与没有逻辑的业务逻辑打交道,是与无法形式化的人打交道,是与屁股决定立场的利益相关者打交道。
即使在这样艰苦卓绝的环境下,我仍然在追求对称性/不变性。
函数式编程显然是这样一根稻草,函数式编程是基于数学变换的不变性。
就象面对惨淡的人生,我仍然对那一抹霞光痴迷。