Dall-E:生成的图
当我第一次写程序时,单单是一 kilobyte 的内存就被视为奢侈。
现在,我想回忆一下那些“美好”的旧时光,回顾编程这些年来的发展。而这里的“美好”,实际上是几乎在所有方面都糟糕透顶。确实糟糕,但矛盾的是,它很有价值:那些没把你打死的东西让你变得更强大。幸存下来后,我变得更强大了。
我不仅仅适应了黑暗,而是在黑暗中出生,在黑暗中成长。直到我成年,我才见到一个IDE。
我用 BASIC 在 Sinclair ZX81 上写了我的第一个程序。那是上世纪八十年代初。没错,我确实是在暴露我的年龄。还记得那些吗?那台小小的英国计算机,带有薄膜键盘和 1KB 的内存。1KB。你们这些用几GB内存玩游戏的孩子,根本无法理解。我曾花好几个小时输入程序,结果不小心踢到了电源线,程序就没了。那时候的编程可以说是原始的:编写代码时还得祈祷。
但我的数字自虐教育不仅限于家用电脑。当我高中毕业时,我也步入了编程炼狱的新层次。试着用脱机终端和8英寸磁盘在IBM 360上编写Fortran。请注意,不是穿孔卡——我总算躲过了那种程序员地狱,尽管我亲手摸过那些古老的物件。8英寸软盘算是‘现代’的替代品了。你需要在脱机终端上编制你的程序,然后将磁盘交给计算机中心,然后……等待。焦急等待一整天,结果却收到打印出的错误信息:“第42行语法错误”。多打一个逗号,或者第六列忘了加一个+号,你又得再等一天。我们那时的反馈循环是以天来计算,而不是毫秒。
IBM的打孔卡
然后迎来了“用户友好”的编程时代,我用这些引号来表达应有的讽刺意味。在早期IDE时,我对TurboPascal充满了真挚的情感。与我之前使用的单调的命令行和文本编辑器相比,TurboPascal的蓝色界面就像魔法一样。这确实是一个奇迹——即时反馈!编译错误可以在几秒钟内显示,而不是需要好几天!然而,即使TurboPascal也与今天我们所说的IDE相去甚远。它更像是一个加上了“编译”按钮的高级文本编辑器。尽管TurboPascal的界面有些刺眼,但它确实代表了真正的进步,我还是很喜欢它。
Turbo Pascal(快速开发的Pascal编译器)
然后我开始了研究生学习,又回到了那个令人困惑的世界。Vi 和 Emacs——那些能区分“真男人”和“男孩”的文本编辑器,没有新手模式,也没有友好的界面。这不再是那种有保护措施的编程,而是赤手空拳的编程。我开始熟悉并记住那些复杂的键盘快捷键。要删一行,就输入“dd”。要替换搜索内容?那就输入一连串复杂的命令吧。哈哈,你可不能随便退出,但你一旦进入,就很难退出了。
这才是真正的锻造之地,在这里。不是在舒适的IDE环境中,而是在无情的v2220终端上,每个命令都必须牢记在心,每个按键都至关重要。当时的IDE仅能进行基本的语法检查。重构?调试?集成?这些都是奢望。我们像中世纪的修道士一样,逐字逐句地编写代码,仅靠我们的智慧指引。
但是技术复兴的时代即将来临。随着面向对象编程的兴起和企业开发的标准化,工业级IDE的时代到来了。我在90年代从C++转向Java时,也不断在不同的IDE之间切换。
日月蚀
在21世纪初的某个时候,我开始使用Eclipse,并很快变得非常熟练。我会夸耀自己可以不写代码就能编程:只需几个熟练的按键、转义序列和快捷键组合,就能得到一个功能齐全的代码!真是令人愉悦。在经历了Vi那种严格的修行后,这感觉就像是变魔术一样。我不再仅仅是编写代码,而是指挥它,用手指的轻挥就能指挥方法和类的交响曲。IDE已成为我编程意识的一部分。
当我从Java切换到Python时,我也将我的IDE换成了VSCode。这并不是一个巨大的转变,而只是一个小小的步骤,而是一个通往未来变革的垫脚石。技术这辆马车永不停息,2000年代看起来像魔法的技术,只不过是今天技术革命的前兆。
快进到十年或更久之后……我们现在有了AI编码助手——与IDE配套使用的副驾、能很好地编写代码的微调模型,还有像Bolt、Replit等这些无需编码即可与AI一起编写代码的新工具,或是采用类似Cursor的混合方法。多么惊人的旅程!从在卡片上打孔到在键盘上打字,再到只需描述我们想要的内容,就能看到AI在我们眼前实现。
这几个月以来,我对一些无代码AI平台进行了尝试。我对它们的感觉很纠结。是的,我可以并且确实创建了一些功能性的应用程序,这些应用程序部署后无需了解前端知识——它们看起来相当专业,但深入代码底层则会发现一些问题:不够优化的算法、臃肿的依赖项、显而易见的安全隐患,以及冗长的代码,看起来像是为机器而不是人为设计的一样。这就像一座外表华丽的房子,内部却千疮百孔。眼前的难题也许已经被解决了,但当你深入研究时,会发现一大堆需要处理的技术问题。
我现在倾向于使用像Cursor这样的工具——在那里我有点控制权,但我也有一位能干的搭档,可以做我做不到的事情。这在自主和协助之间找到了一个很好的平衡。也许我可以成为第一个单人创办的独角兽公司,从架构到用户体验,我可以掌控所有方面,而我的AI助手则帮我填补空白。
回首我的旅程,变化真是惊人。从等待编译错误消息的那些漫长的日子,到如今AI能够在我不完成注释前就建议整个函数。但在这个由智能编码伙伴组成的新世界中,我开始珍视那些在艰难时期磨练出的技能。对底层运行原理的理解。对优雅高效解决方案的欣赏。对浪费CPU和内存的反感。
那个ZX80时代的程序员仍然活在借助AI的开发者内心深处,随时对那些浪费代码和冗余解决方案说不。那些以少胜多的宝贵教训依然存在,等待指出某些AI生成的算法小题大做。
由必要性塑造的纪律不会因为机器的帮助而消失。工具可能更先进,语言模型可能更智能,但知道什么时候代码彻底是愚蠢的这一基本技能,来自于曾经编写过每个字节都很珍贵、每个CPU周期都至关重要的程序。你必须亲身经历过,在黑暗中,一个字符一个字符地摸索代码的黑暗,最终在光明中带着艰苦获得的智慧归来,知道何时该拥抱AI,何时又该超越AI。
共同學(xué)習(xí),寫下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章