我认为那时时尚的年轻人使用C语言工作。这是一种相当灵活的语言,感觉比程序集更像是一组功能性宏。我作为兼职自学了C,但只用了一小段时间。
1990 年 – C
#include <stdio.h> main (){ printf ("Hello World"); }
这个小程序,包括处理标准输入/输出,然后以它自己的方式发送文本的一个库。库是C语言如何允许我们开发跨平台——函数调用也是同一回事,无论你是在 Windows 还是 Linux 环境中,但库本身实现所有低级别的使其在目标机器上工作所需的例行程序。上面的代码是我几年后在我的 Linux 机器上鼓捣的。很难形容如果你在那个时间还没有投入计算机是什么样子,但感觉你并非一个真正的程序员,除非你构建你自己定制的 Linux 安装。我所说的通过“构建你自己”,字面上的意思是粗粗处理源之后,定制它以匹配特定的你所拥有的硬件。最有趣的是处理视频卡,和了解“dot clocks”以及所有让主板与图形芯片友好结合的细微差别。好吧,我有点离题了。
C 语言真不是我学习的一个挑战,但我很快发现时尚的年轻人正在做一些与众不同的东西,并遵循这种被称为“面向对象编程”的范式。机器代码和程序集与 OO 大不相同,因此,从程序性到面向对象的转变是我准备好要应对的挑战。那时的你还不能便捷地从网上搜索内容(当然也是可以的,但它使用不同的机制),所以我到外面去给自己买了一摞 C ++ 的书。事实证明,C ++ 支持“对象”这个想法。它甚至用对象来表示流和管道以操作对象。这个面向对象的玩意还推出了命名空间的概念,以便于更好地管理代码分区。总而言之,“Hello,World”变成了:
1992 年 – C ++
#include <iostream>using namespace std; int main (){ cout << "Hello World"; return 0; }
我上了大学,但令我失望的是,大学竟然不教我感兴趣的“现代”语言课程,例如C和 C ++。相反,我不得不蒙混过关一门家庭作业是在我们称之为“Cypher”的主机上执行的课程,使用一种有趣的编程语言,叫 Fortran,这语言实质上关注你把代码放到了哪个纵列!这是对的,当时这个语言指定纵列 1 用于注释,纵列 1 – 5 用于声明标签,纵列 6 用来标记延续,仅在纵列 7 你才可以开始编写实际的代码。总之,学得越多,我越下定决心以后再也不要使用它。
1993 年 – Fortran
PROGRAM HELLOWORLD PRINT *, 'Hello, World!' END
因为我并没有投入太多热情到主课程,所以我大多数晚上都在计算机实验室中,登陆到学校拥有的大量 Unix 机器上。就是在那里,我发现了 Internet,并学到了关于安装软件的“老派”方式:拉下源代码,构建,检查错误,调整,修复,并获得一个可工作的客户端。老实说,我不知道你在没有学习基于运行回去方式编程的情况下是如何使用 Unix 的,我只能不断地用我的方式围绕系统编辑修改、探索和学习。我经常要做的一件事是执行命令,那将导出大量的信息,然后你不得不使用“方便的”命令行工具来解析这些信息。在那段时间我学习的一种最酷的语言之一是 PERL。用这样一个简单的例子,我就可以说明它并没有得到应有的公正,请看:
1993 年 – PERL
$welcome = "Hello World"; print "$welcome\n";
同时,我很快发现了大量的 World Wide Web(是的,这就是我们当时对它的称呼……Internet 运行所有那些有趣的程序,例如 Gopher 和 Archie,而 World Wide Web 只是上面的一系列文档)。HTML 对于我而言是另一个飞跃,因为这是我第一次亲密接触创建声明式 UI。不同于加载变量或常量,以及调用某些关键字或子程序,照字面意思我就可以在页面上组织内容。你会惊讶于 20 年后,HTML 页面的基本语法真的完全没有改变。
1993 年 – HTML
<html> <head> <title>Hello, World</title> </head> <body> <h1>Hello, World</h1> </body> </html>