远古程序员

来源:互联网 发布:买逆战武器淘宝买 编辑:程序博客网 时间:2024/04/29 07:30

今天周末,为了让不加班又没女朋友可陪的程序狗狗们不寂寞,老狗早早就起来写文章了。今天不写枯燥的技术,老狗特意准备了趣味性和知识性并重的编程历史以飨众狗,祝大家度过一个轻松愉快的周末!本文资料来自老狗二十年来与前辈、师长、同僚的吹牛打屁,并参考互联网上的相关文章,详尽数据及图片来自让你知道你才能知道的百度知道(维基百科今天被封了,靠一个!)和科学松鼠会等网站,特此鸣谢。

古老的中国有个好传统,各行各业都拜祖师爷。说到史上第一个程序员,我们程序狗狗们的祖师爷,大家知道是谁?下面有少年狗狗蹦蹦跳跳的喊:“我知道我知道!阿达.洛芙莱斯啊!白富美,伯爵夫人!”不错,不知为何,这两年阿达突然被炒的家喻户晓,程序员都知道。阿达是第一个编写算法的人,下面我会专门写到她。但阿达还不是第一个程序员,我们真正的祖师爷是下面这位:


嘘声一片是不是?不好意思让大家失望了,我们的祖师爷其实是这位土头土脑的大爷,约瑟夫.玛丽.雅卡尔。别看名字挺洋气(废话!人家就是个洋人!),跟超级玛丽没半毛钱关系。这位大爷从事的职业呢,不好意思,也不是高大上的数学家、科学家什么的,大爷就是个法国农村造织布机的工匠。那他做了什么被奉为程序员的始祖呢?是这样的,雅卡尔于1799年综合前人的成果,制成了一台可编程控制花纹的织布机,并且发明了用打孔卡片来控制花纹图样的编程方式。各位恍然大悟了吧,这台织布机放今天,该叫做专用计算机、或者工业控制计算机,至少也是台程控机床。打孔卡片的思路也启发了后来的程序员,在很长时间以内都是程序的主要输入方式,老狗少年时去参观省气象台,还见到过用打孔纸带的计算机。下面的图就是大爷制造的织布机:


有没有让大家想起刺客联盟里的织布机?实际上电影里用经纬线织出二进制密码的灵感就是来自雅卡尔织布机,再说个让中国人骄傲的事,把纸上的花样输入到机器中去的技术来自明清时的中国江南,叫做桃花结本,后来传到欧洲并为欧洲的工匠加以改进。所以再往前追溯,程序狗狗们的祖师可能是江南织造总局(曹雪芹他家那个)的某个灯下辛劳憔悴的织女。

至于雅卡尔大爷,在发明雅卡尔织布机后风光一时,拿破仑还授予他勋章。后来被家乡的织布工人追杀亡命他乡,因为织布工人认为这种机器让他们丢了饭碗。雅卡尔大爷把土头土脑、精于技术不通人情这些基因遗传给程序员们之后,从历史长河中消失了。1994年IBM将其操作系统命名为OS/2Warp,Warp就是纺织布上的经纬线,算是对大爷的一种纪念。

时间长河继续向前奔流了40年,1842年阿达.洛芙莱斯编写了世界上第一个程序,程序用打孔卡片的形式输入到她的朋友,英国数学家查尔斯.巴贝其(CharlesBabbage)发明的分析机中,从而成为我们所知史上第一个程序员。白富美阿达建立了循环和子程序等概念,编制了第一个可用于分析计算的程序,比雅卡尔大爷正规多了。本人还是高大上的数学家,有个更高大上的爹---英国诗人拜伦,所以这两年突然炙手可热,被程序员拜为教母。可惜本人只活了36岁,严重奠定了程序员早死的基因。下面是阿达.洛芙莱斯的画像,供程序狗狗们膜拜:

阿达.洛芙莱斯的英文是AdaLovelace(爱的蕾丝边),啧啧,她爹起名字的时候是怎么想的?顺便提一句,她爹拜伦也是史上著名的同性恋之一。说这些绝无对同性恋不敬的意思,是为了用这个话题引出史上最著名的程序员,我们光辉的祖师之一,因为是同性恋而遭迫害的阿兰.图灵。喂,阿兰!把苹果放下,过来露个脸啦!


图灵教授最大的贡献不是那个图灵测试,尽管那个更广为人知,图灵教授史上第一次明确了任何算法都是可以用自动的机器来计算的,并且设计了图灵机的数学模型,也就是现代计算机的原型。然后,教授就被军情六处抓去当007了,具体经历可以参看电影《模仿游戏》。1952年,图灵教授由于被前男友盗窃而报警(此人该获颁史上最坑前任称号),却被英国警方发现了同性恋倾向,之后遭各种不人道对待等等,最后咬了一口毒苹果挂了,留下一句著名遗言“防火防盗防前任啊!”,没有七个小矮人给他做水晶棺,也没有王子来救。

英国王室和政府在2013年才正式给图灵平反,当时英国司法部长宣布“图灵的晚年生活因为其同性取向而被迫蒙上了一层阴影,我们认为当时的判决是不公的,这种歧视现象现在也已经遭到了废除。为此,女王决定为这位伟人送上赦免,以此向其致敬。”

其实图灵教授在二战前还有一位美国老师---阿隆佐.丘奇,程序狗狗对他反而不是很熟悉,在网上都很难找到丘奇教授的照片,只有这张被百度百科打了水印的:


为了表达对百度这种盗别人的图打自己的水印行为的深深鄙视,我给这个图片又打上雷锋要炸雷峰塔的水印。

丘奇教授才是真正发明现代编程语言的人,他发明的语言叫“λ演算(lambdacalculus)”。不熟?上大学时学过Lisp吧,著名的Lisp其实就是λ演算的语言实现。

关于我们前辈的故事今天就讲到这里,在这篇文章里,时间长河从1799年奔腾咆哮着流过了150多年。从那时再到现在的60多年间,还有如约翰.凯梅尼(Basic语言)、丹尼斯.里奇(C语言,不知道请自己打脸)、高斯灵(Java语言)等诸多后辈纷纷崛起,把前辈们一个一个拍死在沙滩上。那已经不是本文要说的内容了,如果想看后文,请拼命打赏。


以上部分资料和图片来自:

百度百科:http://baike.baidu.com

松鼠科学会:http://songshuhui.net/

开源中国社区:http://www.oschina.net

按惯例在此鸣谢。



欢迎扫码关注我的微信公众号


junior9919


请用打赏点燃我的小宇宙!


0 0