跳转到主要内容

编码可能是乏味、沉闷和压力的。 缩小范围以反思软件编程的非凡之处可以带回奇迹。

我们人类很有趣。 我们从对人类飞行的不可思议的壮举感到谦卑到对在机场花费多长时间感到恼火的速度有多快。 我们经常被交通所困扰,但只是偶尔会对一种叫做汽车的东西的存在感到惊讶。

最近人类成就最突出的例子之一就是我们所说的编程语言。 回顾奥林匹克精神壮举,标点其创作历史,将帮助您重新发现编程近乎幻想的本质。

程序员,就像诗人


小弗雷德里克·P·布鲁克斯 (Frederick P. Brooks, Jr.) 在他颇具影响力的“人月神话”系列中写道:“程序员就像诗人一样,只是稍微远离纯粹的思想材料。”这是一个值得反思的声明。对于正在工作的程序员和任何参与帮助他们成功的人来说,这可能有助于唤醒沉睡的灵感。

我们可以说编程是一种在精神和身体之间移动的活动。我们甚至可以说这是一种与现实的逻辑本质互动的方式。程序员愉快地跳过了让思想家如此困惑的身心鸿沟。

“这承认,我们可以建议通过机器来执行这些劳动的机械分支,为纯粹的智力保留依赖于推理能力的东西。”数字可编程计算机概念的创始人查尔斯·巴贝奇如是说。

巴贝奇在 1800 年代构思了计算。巴贝奇和他的合作者洛夫莱斯并不是在构思新作品,而是在构思一种全新的媒介。他们从以太中为我们的想法争辩出一个物理基础,一种对它们进行具体测试并以这种形式提供给其他人以供考虑和阐述的方式。

在我自己学习哲学的生活中,我发现了对橡胶永不满足的思想形式的不满。在这种情况下,布鲁克斯先生在他写道时完成了他的上述想法,“然而,与诗人的话不同,程序结构是真实的,因为它移动和工作,产生与结构本身分开的可见输出。”

几个世纪以来,一种心理和机械发展之间的慢动作舞蹈已经形成,我们现在可以通过随意轻按 F12 键在浏览器中调用它。

想想这台 18 世纪的可编程织布机,以及它在这个故事中所扮演的角色。看看一台用于算法编织的巴洛克机器,看看打孔卡是早期计算机打孔卡的精确模拟和前身,这很有趣。凝聚思想和精炼机器的相互作用最终在现代编程语言中相遇。

敬畏奇迹


要更深入地了解编程的发展,请参阅 Ron Pressler 的雄心勃勃的历史,《有限的理智》和《无限的思想》。从古代踌躇的婴儿步,到像巴贝奇和图灵这样令人叹为观止的飞跃,有一种走向某种尚未完全理解但直觉的感觉。我们正处于实现这件事的广泛前景的时代。

普雷斯勒先生的叙述坚决地进入了数学和逻辑细节的冰雹,但在开始旅程之前,他写道:“令人敬畏的奇迹是一种强大的营销工具,但它是神秘的,而不是澄清的。”在这里,我们了解警告是为了避免陷入编程时尚。这是中肯的建议。

另一方面,我们不想从悬崖上掉到另一边,陷入干涸的冷漠。

如果我们完全放弃奇迹,那对我们不利。保持灵感的活力,从工作中抬起头,缩小视野是健康和重要的。

真的没有理由将编码的乐趣与学科分开。事实上,这是导致不满的原因。 IT 行业的倦怠现象十分猖獗。需要有更多的奇迹,而不是更少。

图灵完备


编程故事中的一个关键时刻是艾伦·图灵的通用机器。这是我们可以指出的另一项壮举,承认编程是在付出高昂的智力代价(在图灵的情况下也是巨大的个人代价)的情况下实现的。很难记住一个自我参照系统的想法,该系统可以描述它自己和它运行的程序。今天,我们使用的计算机将信息和操作指令存储在同一内存空间中。

冯·纽曼(Von Neumman)的架构采用了这个想法,该架构支撑了现代计算机的工作方式。这是“一旦完成就显而易见”的事情之一:系统的数据存储能力也被用于其代码。不过,在它真正完成之前,这一切都不是显而易见的。

这里的 tl;dr 是文件既可以是数据又可以是可执行文件的想法是一个概念上的突破,它促成了一个可修改的、可扩展的系统,从那时起我们就一直在努力。

我们可以肯定地说,图灵完备的机器正在实现并普遍可用,这不仅令人印象深刻,而且直到最近,甚至还不能想象。围绕它的思想的基本概念还不是很清楚。

人际交往


到目前为止,我们所说的一切都停留在编程本身的本质上。我们必须提到的另一个重要方面是它对人类互动的影响。无论计算机是否正在向奇点发展,人类通过软件提高交流能力的整体效果都是一个分水岭事件。

从这个角度来看,支持网络的软件被视为熟悉的网络空间隐喻,一种新的交互媒介。记住我们之前所描述的——精神和身体的桥梁——这个景观提供了一个独特的机会,在可执行的逻辑基础结构的支持下,主要在思想领域相互交流。

当与系统内构建的潜在机器宇宙的图灵思想相结合时,我们看到了交互思想世界的潜力。在这里,我们可以感觉到我们仍在进步,仍然积极地感受着新的想法被带到生活中。

未来正在展开


因此,我们在编程软件方面的日常工作是不可预测的未来现实不断展开的一部分。

也许以区块链创新为基础的 Web3.0 领域中的想法将发挥作用。许多人肯定是这样认为的。其他人强烈反对。无论如何,Facebook 将其名称更改为 Meta 并非毫无意义。

也许量子计算将发挥作用。毕竟,它允许与潜在物理现实的固有不同特征进行交互,即非二进制。

使用系统,进行编程并帮助他们取得成功,所有事情都归还给人类。让我们记住,最重要的是,技术服务于人。快乐的开发人员编写更好的代码,这对底线更好,这是真的,但更根本的一点是快乐的开发人员是快乐的人。

如果可以的话,请记住打开使程序运行的代码所固有的可能性感。它被解雇的不仅仅是技术上的兴趣,而且还具有几乎梦幻般的品质。那么为何不?不到一百年前,编程语言是一种模糊的可能性,可能会或可能不会变成真实的东西。

本文:https://cio.ceo/rekindling-thrill-programming