如果没有人在某个地方编写代码,互联网就不可能运行,但在互联网历史上,有几种特定的语言为我们今天所知道的网络的构建奠定了基础。 这五种语言帮助塑造了现代互联网。 (要进行一些背景阅读,请查看计算机编程:从机器语言到人工智能。)
口齿不清
这种语言实际上并没有在互联网上广泛使用,但在许多方面负责构建互联网。 Lisp 由约翰·麦卡锡 (John McCarthy) 在 1950 年代后期发明,尽管它的名字很奇怪,但它把帮助创建互联网的研究社区联系在一起。
从麻省理工学院传播开来,Lisp 首次提供了一些现代特性,例如条件语句。 但 Lisp 真正令人惊叹的是它不区分代码和数据。 Lisp 可以将代码视为数据,将数据视为代码。 Lisp 使得以其设计者从未想过的方式扩展语言成为可能,从而产生了术语“可编程编程语言”。
Lisp 成为人工智能社区的通用语言,DARPA 呼吁该社区在 1960 年代后期建立最终成为互联网的社区。 随着 20 世纪 80 年代后期的“AI 寒冬”,Lisp 的命运有所下滑,尽管它仍然拥有自己的粉丝。 其中之一,保罗格雷厄姆,后来创立了创业孵化器 Y Combinator,用它建立了最早的电子商务公司之一,Viaweb,后来被雅虎收购。 格雷厄姆将自己编写强大软件的能力归功于其成功的原因之一。 流行的社交新闻网站 Reddit 的第一个版本也是用 Common Lisp 构建的。
C
当今最有影响力的编程语言可能是 C。它于 70 年代在贝尔实验室发明,是最早使用操作系统编写的高级编程语言之一。 而那个操作系统恰好是 Unix。 因为它是用 C 编写的,所以可以将 Unix 移动到不同的平台。
用 C 重写 Unix 是一个重大突破。 以前,操作系统是用汇编语言编写的,因为它们必须非常接近硬件。 另一方面,C 是一种高级语言,但仍然足够接近硬件,可以在其中编写操作系统。这使得 Unix 成为最早的可移植操作系统之一。 一个 C 程序可以编译运行在不同的操作系统上,但由于大多数早期的 C 程序员恰好也是 Unix 程序员,他们倾向于假设他们的程序将在 Unix 下运行并相应地开发他们的代码。 因为将 Unix 移植到其他计算机上相对容易,所以很多人都这样做了。
C 显然在 Unix 之外取得了很大的成功。 与许多其他应用程序一样,Windows 是用 C 编写的。 正如 C 语言的创造者 Dennis Ritchie 所写,“C 是古怪的、有缺陷的,但却是一个巨大的成功。虽然历史上的偶然事件确实有所帮助,但它显然满足了对一种系统实现语言的需求,这种语言的效率足以取代汇编语言,但又足够抽象和流畅,可以描述 各种环境中的算法和交互。” (要了解有关 C 的更多信息,请参阅 C 编程语言的历史。)
Perl
Perl 不像 90 年代那样被广泛谈论,但它仍然是互联网的重要组成部分。 事实上,它的流行归功于互联网。 Perl 是 80 年代末 Larry Wall 在 NASA 的喷气推进实验室工作时发明的,正如一本名为“Programming Perl”的书所述。 Wall 需要一个配置管理系统来与对岸的几台 Unix 计算机进行通信。 现有的 Unix 工具都无法完成这项工作,因此他采取了偷懒的方式,发明了一种全新的编程语言。
正如所叙述的那样,Wall 于 1987 年通过 Usenet 发布了它,它在不断发展的互联网上吸引了一个即时的开发者社区,这是在 Linux 之前获得关注的首批主要开源项目之一。 当 Web 起飞时,Perl 找到了一个利基市场,作为开发动态网页的首选语言之一。 在句法上,它类似于 C,但在更高级别实现,无需手动管理内存。 这意味着开发人员可以快速编写、测试和调试程序。 Perl 非常灵活,导致一些丑陋的代码。 它既丑陋又实用,因此获得了“互联网胶带”的绰号。
尽管 Python 和 PHP 抢了 Perl 的风头,但它对互联网传播的重要性是不可否认的。 (在 Perl 101 中学习 Perl 的基础知识。)
PHP
说到 PHP,这种语言已经取代 Perl,成为现代动态网页的主要构建块之一。 与 Perl 一样,它以让人们编写丑陋的代码而闻名,但它仍然运行着许多人们每天都使用的网站,包括 Facebook。 它由 Rasmus Lerdorf 于 1994 年创建。 (在 PHP 101 中学习 PHP 的基础知识。)
PHP 可能会让计算机科学家嗤之以鼻,但如果您想作为 Web 开发人员被认真对待,这是您简历中应该具备的一项技能。
它变得如此流行的原因是 PHP 代码可以直接嵌入到网页中。 这意味着您不必将 PHP 脚本放在单独的程序中并使用 Perl 或 C 生成 HTML 代码。这使得已经了解 HTML 的人可以很容易地学习 PHP 并向他们的页面添加交互性。 将 PHP 与 SQL 服务器(如 MySQL)集成也很容易。 这导致…
数据库
SQL 代表结构化查询语言。 这是一种形成关系数据库查询的方法。 它也相对容易学习,因为它使用类似英语的命令。 有很多实现,例如 MySQL 和 PostgreSQL,它们是流行的开源关系数据库服务器。 SQLite 是许多应用程序中使用的较小变体,例如 Apple 的 iTunes。
尽管由 Edgar F. Codd 在 1970 年代发明,SQL 和关系数据库还是花了一段时间才流行起来。 甲骨文首先普及了关系型数据库,而后MySQL使其成为建站必备技术。 关系模型提供了一种简单有效的方式来管理大量数据。
您可以使用任何语言创建优秀的 Web 应用程序或服务,但选择影响 Web 发展方式的语言之一是不会出错的。 (继续阅读有关编程的历史:计算机编程的先驱。)