现在的科学家通过基因的研究证明目前生活在地球上的人类都是同一个男性祖先和女性祖先的后代。男性有一个独特的Y染色体,Y染色体有一个特性,后代的染色体基因序列完整的包含了上一代的基因序列,同时每一个个体又都具有自己基因特征,基于这一点,通过全世界各地的各个人种的采样分析,这些男性个体都有一个共同的父系祖先,称之为Y染色体亚当。同样的,所有女性都有一个称为线粒体的遗传物质,只有母女相传,类似的研究发现,所有的女性都有一个共同的女性祖先,称为线粒体夏娃。
亚当夏娃的传说
西方宗教传说有上帝创造亚当和夏娃说法,所有人类都是亚当和夏娃的后代,上面的情况似乎印证了这个传说。事实是不是这样呢?我们不妨还原一下当时的情景,假设由于环境变化或者其他情况,有两个原始人男女发生了基因突变,使得他们在智力水平和生存能力都有了大大的提高,使他们在与其他原始人的竞争中处于有利地位,他们的后代形成的部落越来越强大,最终把其他部落的人都消灭,唯有他们这一支流传下来。但稍微有些头脑的话,这事是有问题的,亚当夏娃的后代直接结合那可是兄妹结合,如果你有一点现代医学知识的话就知道,这种结合的后代往往有遗传问题,是有缺陷的,在自然界中难以生存,如何能想象他们的后代会如此强大,此其一也;基于发生重大的变化,同时在两个男女身上同一时期发生,而且这两个人还能结合,这个概率实在是太小了,此其二也;早期的人类并没有稳定的婚姻关系,一个男人可能会和几个女人有下一代,一个女人也是如此,那些和其他人结合的后代又去了哪里?此其三也。
也许我们可以假设,当时发生巨大的自然灾害,比如小行星撞地球之类的,人类只剩下这一对男女,所以他们就只能这样繁衍了。基因进一步研究告诉我们,这个亚当和夏娃就根本不是生活在一个时代,夏娃要比亚当大好几万年。亚当和夏娃根本不可能直接生育。这怎么解释呢?
同一个父亲和同一个母亲的遗传假说解释
基因研究只能告诉我们一个结果而不会告诉我们这个结果产生的原因,我这里部分做一个假说,试着解释这一个结果。亚当和夏娃的基因变异是完全独立完成的,比如夏娃的变异使得她更漂亮了,亚当的变异使得他更加聪明了。因为他们生活在不同的时代,这个假设应该可以成立的。不论在亚当生活的年代还是夏娃生活的年代,都同时存在不止一个男人和一个女人。这个也很好解释,用反证法,因为亚当和夏娃不可能组建家庭,一个亚当至少面对好几个女人,一个夏娃也至少面对好几个男人。我们可以确认当时至少有两个人类的部落(村落)存在。
夏娃比亚当年长好几万年,我们先从夏娃开始分析。夏娃身上发生了某种变异,使得夏娃比别的女性更加漂亮,比如毛少了,面皮白净了,那么她就有可能被部落的首领看中,她就有可能有更多的子女,她的女儿因为继承母亲的基因,也很漂亮,又会嫁给其他的部落酋长,虽然当时还有其他的女人,但因为在性选择上不受欢迎,他们的后代只能配上一般的部落成员,在生存竞争中处于不利地位,时间久了,也就慢慢被淘汰了。要知道,早期人类的生存竞争是非常残酷的,种族屠杀司空见惯。
亚当的情况要比夏娃更加容易,亚当由于基因变异,更加聪明,取得部落首领的地位,他可以娶很多的妻子,这样他的子女要比夏娃多得多。同时因为他更加聪明,所以他的部落也更加强大,他会去消灭其他的部落的男人,掠夺其他部落的女人为他生儿育女。我们可以找一个比较近的例子来说明,有人曾经对成吉思汗的后代进行研究,最后得出成吉思汗在世界各地的后代有上千万之多。成吉思汗不过距今才800年而已。这种遗传情况的不同也能解释为什么亚当比夏娃要晚生几万年。
软件编程语言遗传假说
我们分析亚当和夏娃的遗传假说,目的不在讨论人类遗传问题,而是想借此来说明一下软件编程语言的遗传假说。软件编程语言是从计算机诞生那一个产生的。计算机是一个硬件,如果没有然间运行,它就什么也不是,所以计算机是有硬件和软件组成。有软件就得有编写软件的语言,最早的语言是机器码,是物理信号的映射,由01组成,实在难记,就产生了汇编语言,汇编是对机器语言的映射,有一定的可读性,但任然难懂,后来就发明了高级语言,而高级语言已发布还不是一种,是好几种,有fortran,cobol、C、pascal、basic等等,开始流行的并不是后来占统治地位的c,而是Fortain和cobol这类语言,basic是对fortran的改进的语言,java是从C发展起来的,我们看到在这些高级语言的竞争中,c语言脱颖而出,占据了统治地位,同时c又发展出C++,java,c#,ObjectC等新的语种,这些还存在于传统领域,随着数据库的兴起,针对数据库操作的语言也随之兴起,有Dbase2,Dbase3,FoxBase等,这些语言同时也是一种产品,是附着在产品之上的一种解释性语言,随着这些产品的消失,也逐渐消失了。而在数据库产品之上的SQL语言却留存下来了。随着互联网的兴起,建立在浏览器之上的脚本语言兴起,javascript,vbscript等,他们取名java和vb,但与java和VB是完全的两回事,是java和VB的变异。他们也是依附于产品(浏览器)的解释性语言,但由于浏览器标准化定义的好,他们没有像Dbase2等消亡,特别是javascript焕发出更顽强的生命力。
我们从编程语言的遗传变异和人类基因的遗传变异放在一起比较,高级语言时期是物种繁衍比较多的时期,出现了很多高级语言,但最终,只有C语言得以流传下来,c语言自身有会产生新的变种,物种仍然繁多,但祖先却只有一个,那就是C语言。