我们人类一直在寻找某人来做我们沉重而不必要的提升。首先是简单的机器,然后是蒸汽驱动的野兽,最后是一堆半导体和石英。

但是,你如何得到一个简单的石头来做你想要的?你如何向电路解释你想从中得到什么?当然,通过编程语言。

这些编程语言是从哪里来的,是谁编造的?一切都从理论开始,编程也不例外。

让我们用分析引擎开始我们的故事。它是Charles Barbbage设计的一种机械计算机,它使用齿轮和弹簧而不是电线和芯片。在1843年,巴贝奇的作品被某个阿达·洛夫莱斯翻译。

阿达没有停止翻译。在本书的最后,她添加了自己的笔记,说明如何使用建议的引擎来计算伯努利数。虽然远非正确的编程语言,但它是朝着正确方向迈出的第一步。

下一步是图灵机 - 再次不是计算机而是一个数学模型。可以对图灵机的物理模型进行编程,以进行一些有限的计算,例如求解数学函数,但它太简单了,远离我们称之为编程语言的任何东西。

语言应该是可读和富有表现力的。如果我们只能说“ga-ga”和“go-go”,它有什么用?因此,这个主题被搁置到1940年的神奇时期,当时早期版本的现代计算机大而充满电,栩栩如生,开启了一大堆理论和实践。

带有一堆有用命令的第一种编程语言是汇编语言。它令人困惑,看起来很疯狂,有时候非常可怕,但它允许程序员以相当直接的方式与给定计算机的硬件进行通信。

这有点像建房子,但根本没有任何工具。你必须一砖一瓦地组装它,并在你的手掌上进行测量。不是很容易制作,但它确实产生了一个非常快速和轻便的可执行应用程序 - 如此轻巧,它仍然在今天用于非常精细的操作,虽然汇编语言的艺术只有灰胡子巫师和巫师知道。

汇编语言很有用,但人们想要更多。他们想要更“高级”,更容易理解和友好的东西。

他们想要的东西speak.

需要一些思考和努力,但在1952年,为曼彻斯特大学的一台大型计算机开发了自动编码编程语言。

Autocode是第一种使用编译器的编程语言,这是一种特殊的软件,可以将您的程序直接转换为机器代码以便快速执行。这样,没有人必须再次使用机器代码,感谢全能。但Autocode确实使用非常有限,因为它是专门为特定计算机设计的。现在你正在建造一个带有一些基本手工工具的房子,如锤子和弯曲锯。

编程语言用于编写软件。但是你知道他们自己也是软件吗?

每种编程语言都有一个编译器,通常使用另一种编程语言编写。编译器可以读取您的程序,并将其转换为您的计算机可以理解的机器代码。

例如,Autocode编译器是使用汇编语言编写的,但其编译器的下一次迭代是使用Autocode编写的,然后使用第一个编译器进行编译。令人困惑,不是吗?

好吧,编译器是一个软件,它被编写然后编译成机器代码,失去了它与语言的联系。因此,您可以使用编译器编写更好的编译器,因为在编译之后它只是一个机器代码。这就像用一套简单的工具制作更好的工具,直到你有自己的电锯。

下一件大事是FORTRAN(公式翻译)。它于1954年在IBM设计,是第一个用于通用和通用的高级编程语言。它绕过并迅速成为人群的最爱,并且在某些圈子中仍然存在,特别是在你需要闪电般快速的表现但是你害怕旧的汇编语言。 FORTRAN给你一些简单的,类似英语的命令,如IF,ELSE和READ - 仍然没有动力,但现在你有一个手钻和一些钉子。

1959年对编程语言非常有成效。首先是COBOL(面向公共业务的语言),由美国国防部创建和赞助。从头开始,它被设计用于大型企业,因此它最终出现在ATM,电话,信用卡服务,医院和其他大型基础设施等系统中。

然后是LISP,策划用于人工智能研究,但后来倾向于更普遍的使用。它是最早的函数式编程语言之一,简单来说意味着你只使用函数来构建软件,没有任何永久状态。

现在这些语言实际上给了你一些电动工具来建造你的房子,而不是很多,但你确实得到了电锯。

60年代和70年代初带来了变革之风。计算机变得越来越便宜。他们的金属外壳遍布世界各地,在许多大学甚至一些家庭中找到了位置。

越来越多的人想要使用计算机,但并不是很多人能够克服早期编程语言的复杂性。直到达特茅斯大学的工程师提出BASIC--初学者的通用符号指令代码 - 才能帮助他们的学生进入日益增长的编程和计算领域。

BASIC语法简化了许多循环的流程,IF得到了,FOR得到了TO和NEXT,DO得到了UNTIL。现在你不必处理奇怪的逗号和点,只要你知道一些基本的英语,你就能理解发生了什么。

BASIC取得了巨大的成功,成为许多学生的第一语言,如果你熟悉微软,你会发现它的分叉版本成为他们的旗舰产品。这更类似于建造宜家家具,你有预制零件,清晰的指示和一些工具,你只需要弄清楚如何将它们放在一起。

随着这些更高级别的编程语言的兴起,可以编写更加结构化和优雅的代码,并且在许多情况下,人们把它放在心上,试图为他们的工作增添一丝美感。它可能意味着什么,有些人为自己编写最短的代码感到自豪,其他最令人困惑的代码可行,有些人喜欢在他们的软件结构中添加自己的风格。

另一种为许多人打开大门的语言是Pascal,专门用于向学生讲授神秘的计算机艺术。它很容易上手,但很难掌握。它仍然存在,在许多组织中使用有些过时的基础设施。 Pascal在Apple电脑中发挥了重要作用,并且是80年代的主要语言。

在70年代,发生的事情永远改变了我们所知道的世界。这一切的盛大,所有伟大而强大的C编程语言都是由着名的Dennis Ritchie在贝尔实验室开发的。它很快,很优雅,很简单,功能强大,它是多平台的,它具有最好的语法。

是的,我说过 - 如果你愿意,请打我。

与Unix一起,它像野火一样传播,在之前和之后的一切都胜过一切。它至今仍在使用,对许多人来说,这是他们最爱和最珍惜的伴侣。

C也受到影响,并被用来编写当前重量级的一半,如Ruby,C#,Java,PHP以及许多其他人。今天我们周围的大多数设备可能都有一点C。它为您提供了所有最好的手动工具,无论是动力还是无动力,但如果您想建造一座三层高的豪宅,您仍然需要弄脏手。

80年代随后推出了更多C风格的语言。第一个Objective-C被创建为C的扩展,以支持,您可能已经猜到了,面向对象的编程,这个概念将代码分解为具有数据和函数的对象来操纵所述数据。虽然它从未达到主流,但它确实进入了Apple的macOS和iOS操作系统。

然后是着名和喜爱的Bjarne Stroustrup的C ++。它是一种庞大的语言,掌握了C的力量并将其扩展到各个方向,使其成为整个世界中使用最广泛的语言之一。从游戏引擎到操作系统和高性能软件,今天无处不在。现在你有起重机和挖掘机,重型机械和精细工具,你可以建造一个小屋或摩天大楼,C ++让你做到这一切。

当90年代滚动的东西开始加速。计算机走得越来越远,成为游戏机,网络服务器,娱乐设备和任何你能想到的东西。

每个解决方案都需要特定的编程语言,因此语言开始左右弹出。受到其前辈的影响,但旨在服务于更窄的目的。 Haskell于1990年作为纯函数式编程语言出现,旨在处理大量复杂的计算和数字运算。 1991年的Python采用了轻巧快捷的代码。 Visual Basic引入了一种支持图形用户界面的拖放式编程。

1995年,Java由Sun Microsystems开发用于小型手持设备的场景,后来横扫整个万维网。然后是PHP,网络开发大师。 JavaScript增强了我们的浏览体验。 C#让C ++变得更友好(甚至太友好了)并且将黑客应用程序混合在一起,然后轻而易举地降温。

Scala将功能与面向对象的编程融合在一起,制作了一个热门但非常方便的混乱。这个名单还在继续,随着每年新语言的出现,它将不断发展壮大,带来新的解决方案并解决新的问题。这些,让我们称它们为较小的语言,更像是窗户制作,地板铺设,墙壁绘画的特定工具,很难用一个人建造一个房子,但你可以用它们铺设一些漂亮的瓷砖。

这些天很难预测编程语言的去向。有更多的计算机,模式设备和更多的机器。程序员知道单一语言的日子已经一去不复返了,今天如果你想在某个高层组织中找到一个低级职位,你最好知道十个。语言获得专业化,计算机编程领域成为一项重大的工程努力。

我们不知道最终会在哪里结束,但会有计算机,并且会有编程语言。它们可能是书面的,口头的,心灵感应的或自我产生的。但他们会在那里,根据我们的需求和需求弯曲机器。

想和我们一起写吗? 为了使我们的内容多样化,我们正在寻找新作者在Snipette上写作。那意味着你!有抱负的作家: 我们会帮你塑造你的作品。成立的作家: 点击这里开始.

Curious for more? 可以找到本文的来源和参考资料 here.

英文原文: Building Code