90年代的氛围编程
Vibe Coding in the 90s

原始链接: https://ssg.dev/vibe-coding-in-the-90s/

1994年,一位程序员兴奋地发现了一张CD-ROM,里面装满了数千个公共领域的代码示例——从文件管理器到游戏,包含完整的项目和可重用的库。这一发现感觉是革命性的,承诺将大大简化软件开发。 开发者现在可以找到预构建的项目或组件,而不是从头开始编写代码,对其进行调整,并快速创建新的应用程序。这张CD包含了详细的文档(PROMPT.TXT、SPEC.TXT等),以帮助理解现有的代码库,使得即使是初学者也能看似轻松地进行维护和修改。 作者大胆地预测了“编程的终结”,设想未来开发者主要组装现有的部分,而不是编写新代码。他甚至声称使用这种方法在几分钟内重现了《毁灭战士》,突出了快速开发和无限创新的潜力。这张CD代表了一种范式转变,为软件创建提供了一条捷径,并重新点燃了构建应用程序的乐趣。

## 90年代编程氛围与现代对比 最近一篇Hacker News讨论,源于“90年代的氛围编程”,强调了在互联网普及之前学习编程的方式不同。用户们怀念地回忆起通过复制和修改Turbo C和QuickBasic等手册中的示例来学习,或者费力地从头开始构建项目——这个过程需要深刻的理解才能进行修改。 这场讨论与现代实践形成了对比。Stack Overflow被比作2010年代版本的这种方式,依赖于复制粘贴和调整代码片段。虽然有效,但往往缺乏基本的理解。AI编程助手(如今的“氛围编程”)的兴起被视为这一趋势的延续,引发了对真正理解与功能输出之间的担忧。 许多评论者强调了在资源有限时*必须*理解底层代码的重要性,与现代解决方案的便捷形成了对比。讨论涉及了“Cargo-Cult编程”和潜在的表面化编码实践,但也承认了可重用组件的价值以及软件开发的演变。最终,这个帖子质疑当前工具是否能促进真正的学习,还是仅仅能够更快地、但可能更浅显地创建代码。
相关文章

原文

Hey folks. You know how programming is hard in 1994. You need books, help files, manuals, references to learn about a certain feature. You read all those. Then you go through endless iteration of trial and errors to find out how to accomplish a certain task.

Well, I found a revolutionary way to write code. You see I got this CD-ROM from a friend. It's full of public domain sample code for every kind of application you could write.

You want to write a file manager like Norton Commander? Well, just browse to the fileman\ofm\nc folder in the CD. Copy all the files to your local disk. And you're done! You have a full-blown, working file manager code.

There are thousands of ready to run projects like these. All you need to do is to imagine what you want to create, and it's just a few clicks to get the project you want. CAD, drawing, accounting, games, you name it, and your project is ready in seconds.

You can even use individual components under lib folder and include them to implement new features. There are libraries for everything from parsing GIF files to playing MIDI on Sound Blaster Pro. Everything you can imagine.

That's very exciting! I think we're reaching to the end of programming because as the number of these libraries and projects grow, our need to write code will eventually disappear. All we need to do is to find the template, put needed libraries on top of it. That's going to be it. We won't be needing programmers anymore.

I mean, maintenance is still a chore, but the big part of the work will already be done when you start. So, it's only the small part of adding several lines here and there and that's it.

Obviously, to change something in the project, we first need to understand how it works and how it's designed, but that's easy too. You see there's a file in the root of every project called PROMPT.TXT that explains the project from a 10,000 feet. Then there's SPEC.TXT that we can read to understand how everything is architectured. There is also an INDEX.TXT that contains all the list of files and why they exist. After that you can go through API.TXT and WHATSNEW.TXT to entirely understand how everything fits in place. Then, all there's left is to read some of the code files to understand how it's written. As long as you know the programming language and the used techniques in the project, you should have no trouble doing that either.

Even a child can code now. You just read all these prompts, specifications, file lists, and APIs, changelogs, and completely grasp the architecture of the project that a random person wrote. When you're done with this, it's now your project, and you can go ahead and maintain it easily.

Anything more complex than a few lines, you can just copy it from lib\ folder of the CD-ROM. There's a component for everything. You want to left-pad a string? Then, go to the folder lib\str\basic\pad\left and pick one of the hundreds of libraries doing the same job. Pick a random one if you will. Most of them work fine.

If you encounter any bugs in a library, replace it with another. Or just read the prompt, read the specs, read the file listing, understand the whole architecture, grasp the architecture, and finally fix it. It's a breeze working this way. I feel like I regained joy of creating software again.

I'm actually making stuff now. Look, I just wrote Doom yesterday in minutes! It's just a matter of copying the folder games\3d\doom and pressing compile and Run! I have written a 3D game from scratch! How cool is this? The possibilities are endless!

I feel like I can create anything.

Now, what shall I create next? Anything. I can create anything. Let me just take a look at that CD. It had some good ideas in there.

The future is here, folks!

联系我们 contact @ memedata.com