谁是第一位程序员?


15

历史学家之间关于谁是第一个程序员有共识吗?如果是这样,那是谁,他们在编程什么?

我发现,更多地了解编程的先驱者变得更加有趣,无论他们是在可编程计算机上编程还是他们自己将计算机设计为可以执行某些计算任务。


10
足够精确地定义编程,以便我们知道是否必须考虑为提花机的织带准备磁带之类的事情。
AProgrammer

有史以来第一个编写代码的人:)))
Songo 2012年

我投票赞成提花。
2012年


那些在Mayan日历中计算过日食的人很可能是第一批程序员。您需要设计一种算法(“我们足够接近吗?”)并执行它。

Answers:


58

奥古斯塔·阿达·金Lovelace伯爵夫人(1815-1852)的被认为是第一位程序员。

第一个节目是一种算法来计算伯努利数的查尔斯·巴贝奇的分析引擎,它出现在她的翻译笔记路易吉Menabrea的回忆录“分析机由查尔斯·巴贝奇发明了素描”,更具体的说明摹。也就是说,计算伯努利数所必需的数学早在Ada时代就已为人所知,但是Ada的算法是设计为由(当时仍是假设的)机器执行的计算算法的第一个实例。

Konrad Zuse(1910 – 1995)也是“第一个程序员”绰号的坚实候选者,发明了具有有限可编程性的浮点二进制机械计算器,Z1(1936),但更重要的是Z3(1941),图灵完整的计算器 电子机械计算机。

在电子计算机方面,Atanasoff–Berry计算机(于1937年构思,1942年投入运营)被认为是第一台电子数字计算设备,因此可以将其设计师John Vincent AtanasoffClifford Berry视为编程先驱。不过Atanasoff–Berry计算机不是可编程的,第一台可编程电子计算机是ENIAC(1946)。

尽管ENIAC的设计师John MauchlyJ. Presper Eckert可能在编程方面做得相当不错,但是ENIAC的大多数编程工作都是由这些可爱的女士完成的:

ENIAC程序员,由ENIAC程序员项目提供

他们的名字从左到右依次是Kathy Kleiman 1Jean BartikMarlyn MeltzerKay Mauchly AntonelliBetty Holberton。照片中缺少ENIAC的两位女程序员Fran BilasRuth Lichterman

在数字计算机方面,第一个是Colossus(于1943年12月投入运营),该项目的负责人Tommy Flowers(1905年至1998年)也应该被视为编程的先驱,而负责人Max Maxman(1897年至1984年)当然是为了提出对机器的要求,当然还有阿兰·图灵Alan Turing,1912年-1954年),他曾设计过Bletchley Park较早的机电密码分析机Bombe(1939年),并在巨像设计中发挥了重要作用2

1 Kathy Kleiman是ENIAC程序员项目的创始人,显然不是ENIAC程序员(太年轻了:)
2 20世纪的计算机历史:巨像 -纽卡斯尔大学的B. Randell(PDF)


9
“ Brogrammers”是博客作者梦up以求的东西。
艾伦B

5
@Malcolm这是一个很好的问题。您需要记住的是,分析引擎不是在巴贝奇的一生中就建立的,而且艾达(Ada)并未发现其算法的数学运算,而是将数学运算转换为一种适用于分析引擎的形式(她的算法是软件而非数学算法)。Babbage提出了一个较早的程序,但从未对其进行记录,这并非不可想象。但是,他确实在p.1中记录了Ada的参与。哲学家一生中的 136条段落
扬尼斯

2
(续...)“然后我建议她在Menabrea的回忆录中添加一些注释,这一想法立即被采纳。我们一起讨论了可能要引入的各种插图:我建议了几种,但选择完全是她自己的。所以是解决不同问题的代数方法,除了确实与伯努利数有关的问题外,我曾为挽救洛夫莱斯夫人的麻烦而提出,这是她发现严重错误后发给我的修正案这是我在过程中所做的。”
扬尼斯

2
(续...)尽管巴贝奇似乎至少要获得一些荣誉(这是公平的,因为两人在一起工作),但他从未反对过回忆录中艾达的笔记,只带有她的名字。
扬尼斯

5
1941年,Zuse雇用了一位名叫Arnold Fast的盲数学家来对他的计算机进行编程。这个家伙可能是世界上第一个专业程序员。
Mackie Messer'5

12

阿基米德也有资格

由于他是 暂时归功于Antikythera机制的建立(早期模拟计算机的一个例子))大约2000年以前,在某个时刻,他必须做出计算特定事件的决定。

该行为可以被视为程序,因此他成为了程序员。


5
该机制是不可编程的。
奥德

4
尽管暗含了与阿基米德的联系,但声称他“暂时归功于安提凯希拉机制的建立”,这是一个大胆的尝试(是的,我暂时没有错过)。
扬尼斯

4
@Gary:就可编程性而言,一个重要的区别(至少现在已经了解到)是程序独立于硬件而存在。Antikythera机制是“硬编码的”,用于计算一件事,但是无法输入其他程序。
梅森惠勒2012年

3
看来我们正在就“什么是编程器”进行更多辩论。有人创造了一种将某种逻辑嵌入其中的机制,这不是程序员吗?我相信他是,您不能因为不能改变这种逻辑就
别说

4
我认为Antikythera机制是一台计算机,因此它并非毫无争议!尽管它是一个出色的设备,但实际上只是一个非常聪明的时钟。它的机器制造技术比其时代快了500-1000年,但绝不是“可编程的”。时钟不是计算机。
Jim in Texas
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.