我的第一门编程语言和早期的冒险

1988 年在波兰的一名学生被邀请到一个计算机实验室。
48 位读者喜欢这篇文章。
Old UNIX computer

Opensource.com

几天前,Opensource.com 的贡献者被要求分享我们关于如何入门编程的个人故事。收到了许多有趣且引人入胜的回复。量化这些数据随时间变化的情况会很有意思。有趣的模式出现了。70 年代的人们怀念 Fortran、穿孔卡片和拨号访问共享大型机。80 年代的孩子们(我属于其中之一)分享了关于 C、BASIC 或 Pascal 以及他们挚爱的 Atari 和 Commodore 电脑的故事。来自 90 年代的故事出人意料地少。几乎就像存在代沟一样。也许青少年们正在惊恐地逃离 C++、MFC 和可怕的匈牙利命名法,而这在当时是很常见的。然后,最年轻的一代却奇怪地沉默了。也许我们年轻的 Raspberry Pi 爱好者正忙于制作东西

以下是更多关于我的编程之路。

我的第一门编程语言

我的第一门编程语言是 Microsoft BASIC。我是在强大的 MSX SpectraVideo 738 家用 PC 上学习的。MSX 标准是一种基于 Z80 CPU 的家用电脑架构。它由微软在 80 年代开发,并由索尼、飞利浦、先锋、夏普、雅马哈和许多其他供应商生产。我的祖国是波兰,当时我们仍然处于共产主义统治之下,由于对我们实施经济制裁,与现代 IT 技术隔绝。但变革之风在 80 年代后期到来,MSX Spectravideo 进入了我的学校。

当时我是一名学生,所以没有工资。我对编程如此着迷,以至于我愿意自掏腰包来获得这种乐趣。谢天谢地,当时所有学校和大学都是免费的。想象一下,你的 IT 职业生涯从零债务开始!我从高中早期,也就是 1988 年在波兰开始。我当时留着长发,弹吉他,听着 Black Sabbath,希望有一天能组建一支摇滚乐队——一直以来都错过了电脑。我有一个朋友,我叫他 “公文包先生”。他是另一名学生,也是一个有名的电脑迷。有一天他走进房间,问你好吗? 他不得不听我唠叨一会儿,因为如果你问波兰人,他们告诉你他们的情况。然后他说:“嘿,我要去计算机实验室。你可以和我一起去。今天除了我,那里没人。” 我兴奋地跳了起来:“整个晚上吗?” 他回答:“当然。我会很忙,但你可以玩游戏之类的。”

当我们第一次进入实验室时,感觉就像《星球大战》中的 “歼星舰” 指挥中心。以下是可用的硬件

  • 一台漂亮的 IBM PC 兼容机,Spectravideo SVI-838 xPress-16,配备出色的咔哒作响的键盘——现代机械键盘至今仍未能复制那种体验。不幸的是,它对像我这样的新手来说是禁用的。
  • ZX Spectrum——我不太喜欢这些,因为它们看起来像玩具,配有橡胶键盘。
  • 具有未来感的 MSX SVI-738 电脑,配备彩色屏幕和精工舍点阵打印机。

选择已经很明显了。我玩了一会儿,但很快就感到厌烦了。我问了 “公文包先生”

你在做什么?

公文包先生编程。

你是怎么做到的?

公文包先生给你。

然后他扔给我一本手册。

你好,世界

我浏览了 “hello world!” 示例,然后偶然发现了关于计算机图形的章节。事实证明,我们的 MSX 具有令人印象深刻的图形功能。在费力地理解英语(对我来说仍然是外语)一个小时后,我的第一个用 BASIC 编写的计算机程序诞生了。我激动、震惊,并且完全着迷。我可以命令这个计算设备做事。美好的事。极其愚蠢的事。无聊的事。它都会毫不犹豫地去做,一行接一行,只是偶尔会回复 Syntax error!

这简直是魔法!第二天,我就报名参加了计算机实验室。

计算机图形

在接下来的几个月里,我在计算机图形方面玩得很开心。这些机器在教育年轻人学习计算机方面非常高效。编程语言解释器是与之交互的唯一方式。它启动后,你必须输入命令才能做任何有用的事情。如果你足够好奇,你不可避免地会问——还有更多命令吗?最终,你在不知不觉中沉迷于编程。入门门槛非常低。

Code

图片 CC0 Alan Smithee

例如,要在屏幕上画一个圆,我所要做的就是

  • 启动电脑并等待几秒钟。是的,启动只需几秒钟!
  • 输入 10 CIRCLE 100,100,50 并按下 ENTER 键。是的,我们必须自己给行编号。
  • 输入 run 并按下 ENTER 键。

在那些日子里,编程有一种简洁性。今天,在你编写一行代码之前,你有很多选择要做。你必须选择你的开发平台(Web、桌面,或两者兼有)、你的编程语言、你的框架等等。

当然,总是有选择要做,但当所有你需要的只是一些资源,并且当你的电脑只有 64kB 内存时,感觉更简单——这在 8 位机器上很常见。为了让你对规模有一个概念——我 Pop_OS Linux 电脑上的一个高分辨率桌面图标可能比这还大。然而,在这微小的内存中,它可以运行操作系统和一个学术级编译器。它可以运行图形程序,实现完美无瑕的雪碧图动画和碰撞检测。它可以通过可编程噪声发生器播放打击乐音轨。我不得不承认,我知道这是可能的,但我几乎不知道今天该如何开始进行这些活动。

Pascal 及其他

我的 MSX 配备了一个 3.5 英寸软盘驱动器——这在当时是一件了不起的事情。有一天,我们收到了装有 CPM 2.2 操作系统和 Turbo Pascal 3.0 编译器 的软盘。这就是我体验我的第一个真正的编程语言的方式,同时避免进一步接触 BASIC。Turbo Pascal 非常出色:表达力强、简洁、安全且结构化。关于为什么中欧和东欧的程序员拥有如此备受推崇的技能,有一个轶事理论。在西方国家,C 和 C++ 是当时的主流,它们充满了有趣的怪癖和特性。但在我们这里,我们从 Pascal 开始。它是中小学和大学首选的编程语言。这两者之间的差异是巨大的,该理论认为,它们以截然不同的方式塑造了我们年轻的心灵。

Turbo Pascal

Pascal 比 C 更加严谨,并且尽可能 “贴近底层硬件”。Pascal 拥有指针、直接内存操作,甚至 asm ... end 块用于汇编代码注入。然而,指针不像 C 中那样随处可见,并且通过空字符结尾的字符串进行的缓冲区溢出攻击也不存在。Pascal 中的字符串只是一个字符数组,只有第一个条目包含显式的字符串长度。就这么简单!它还拥有完善的模块系统、预编译库、严格的类型控制,以及一个极速编译器。

Turbo Pascal 对我的编程思维方式产生了巨大的影响。最终,它实现了面向对象编程,并顺利地为我准备好应对复杂的软件架构和使用 Borland Delphi 在 Windows 上进行编程。我只在别无选择的情况下才接触 C 和 C++。

几十年后,我意识到在我的整个职业生涯中,我都在不知不觉地追随 Anders Hejlsberg 的脚步。他和他的团队是 Borland 旗下非常成功的 Turbo 编译器系列的创造者。然后他们创建了 Delphi,这对于苦苦挣扎于 Visual Basic、WFC、MFC、Charles Petzold 的书籍和匈牙利命名法的 Windows 程序员来说是一种解脱。在离开 Borland 之后,他继续在微软工作,并创建了 .NET,我欣然投入其中。最后,他创建了 TypeScript,它成为了现代企业级 Web 开发的骨干。

如今,我正忙于为企业架构和开发大型 Web 应用程序。JavaScript 和 TypeScript 是目前的主流,后端运行在 NodeJS、.NET 或 Python 上,并使用 Python 和 Bash 编写小型实用程序和脚本,以及应对云计算和 YAML 的复杂性。经过这么多年,我仍然享受这种兴奋感。我无法想象还有什么比这份工作更令人满意,它不断挑战我,并且永远不会变得枯燥乏味。

接下来阅读

评论已关闭。

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.