编程与软件工程prog21.dadgum.com
Turbo Pascal 比这些还小
Things That Turbo Pascal is Smaller Than
2011 — 2022,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
这篇经典博文列举了 Turbo Pascal 编译器(不到 40KB)比哪些现代软件还要小的趣味对比,比如比某些网页截图、PDF 阅读器等还小。它以此展现早期软件在极小体积内做到完整功能的惊人效率,引发人们对软件膨胀的反思。
为什么经久不衰:它用具体数字直观呈现了几十年来软件体积的膨胀,提醒人们精简高效的工程传统依然值得借鉴。
HN 评论精选
软件行业在 80 年代中期放弃了精简高效的追求,小体积编程反而更有乐趣
Turbo Pascal 和 Leor Zolman 的 8080 C 编译器差不多大。大约七年后,我们公司评估一个约 120K 的解释型 BASIC 实现,要放进 ROM,那可是真金白银。深入检查后发现全是赘肉——十几个出于恐惧重复实现的 strlen/strcpy,无数移植层,无穷的复制粘贴。1978 到 1985 年间,软件行业在 PC 上追求精简的劲头死掉了。我甚至用 sed 脚本对 C 编译器的中间汇编做窥孔优化,很可悲。现在我用 GB 点雪茄,但按实际成本算我还是个抠门鬼。去年有机会写一段必须塞进 1920 字节的关键代码,乐趣无穷。
kabdib查看英文原文
TP is about the same size as Leor Zolman's C compiler for the 8080. Fast-forward about seven years, and my company was looking at an interpreted BASIC implementation that took about 120K. Since this was supposed to live in ROM, you could think about it as Real Money. We dug into it and found all kinds of fat -- the usual 13 fear-based reimplementations of strlen and strcpy, about a zillion porting layers, endless amounts of cut-and-paste nonsense. Somewhere between 1978 and 1985, the software industry's drive to be lean and mean on PCs died. I found myself writing 'sed' scripts to do peephole optimization on the intermediate assembly language of one of the C compilers we were using. It was pathetic. Now, of course, I light my cigars with gigabytes. But in terms of actual cost, I'm still a cheap bastard and I probably don't spend any more money per year on CPUs, memory or storage than I did 30 years ago. Had a chance last year to write a mission-critical hunk of code that /had/ to fit into 1920 bytes. I can't tell you how much fun that was.
连开创 PC 时代的 VisiCalc 都比现代应用图标还小,反差令人感慨
原版 VisiCalc 可执行文件只有 27520 字节,比现代 iOS 应用里的应用图标还小!VisiCalc 可以说是早期 PC 时代的杀手级应用。时代的进步啊。
davepeck查看英文原文
...and the original VisiCalc executable [1], at 27520 bytes, is smaller than the _app icons_ in a modern iOS app bundle! VisiCalc was, essentially, _the_ killer app of the early PC era. The march of progress. ;-) [1] http://www.danbricklin.com/history/vcexecutable.htm
Turbo Pascal 作者后来加入微软,让当年与微软编译器的对比颇具讽刺意味
考虑到 Turbo Pascal 的主要作者 Anders Hejlsberg 后来长期在微软做 C# 和 TypeScript,'比微软编译器快几个数量级'这个对比就格外有意思。
0xcde4c3db查看英文原文
> And the whole thing was lightning fast, orders of magnitude faster at building projects than Microsoft's compilers. This particular comparison is interesting when you consider that the primary author of Turbo Pascal, Anders Hejlsberg, has been at Microsoft working on C# and TypeScript for quite a while.
Turbo Pascal 带来了前所未有的即时编辑-运行体验,直到 IntelliJ 才被超越
Turbo Pascal 是一个 IDE 加上极快的编译器。1986 年我在 64K 内存的 IBM PC 上运行它,体验前所未有。在那之前我上学用打孔卡编程。它重新找回了我在 PDP-8 上跑 BASIC 时那种极快的编辑-运行循环,而且这次有 IDE 和更好的语言。它碾压了 PC 上其他一切,我那个贵得多、慢得多的微软 C 编译器根本没法比。这是一款真正神奇的软件。在我看来,直到 IntelliJ 4.x/5.x 才有东西重新捕捉到那种开发体验。
geophile查看英文原文
Turbo Pascal was an IDE and a blazingly fast compiler. In 1986, I ran it on my 64k IBM PC (8088 4MHz). It was like nothing else I had experienced previously. Prior to that, I had developed software in grad school on punch cards. I occasionally had access to a PDP-11. I don't remember what editor I used, but it certainly wasn't an IDE. It may have been line-oriented. At work, we had a VMS system, and I had access to a C compiler and my first emacs. Not too bad, but nothing as immediate and responsive as Turbo Pascal. Viewed another way, Turbo Pascal recaptured the incredibly rapid edit/run cycle that I first experienced with a PDP-8M running BASIC. Only now, I had 64k instead of my shared of 12k shared among a maximum of four users, an IDE instead of a line editor, and a far better language. Turbo Pascal also blew away anything else available on the PC. I had a C compiler from Microsoft that was far more expensive and far slower. Turbo Pascal was a truly magical piece of software. I remember that I had some initial skepticism about it. As I recall, it took some liberties with the language. But once I finally used it, I was instantly converted. IMHO, nothing has quite captured that experience of development until IntelliJ, starting with 4.x or 5.x.
历次讨论
同类还值得读
开源应用架构
The Architecture of Open Source Applications
《开源软件架构》(AOSA)是一本在线免费书,邀请知名开源项目的作者亲自剖析其内部设计,涵盖 SQLAlchemy、LLVM、Audacity、Apache、Bash 等系统。
编程与软件工程上首页 9 次 · 2011–2024aosabook.org编辑精选编程语言简史:简短、不完整且多半错误
A Brief, Incomplete, and Mostly Wrong History of Programming Languages
一篇以戏谑、故意不准确的方式回顾编程语言史的博客文章,用夸张轶事和讽刺定义串起 Lisp、C、C++、Java、JavaScript、PHP 等语言。
编程与软件工程上首页 8 次 · 2009–2021james-iry.blogspot.comSQLite 是如何测试的
How SQLite is tested
SQLite 官方文档页,系统介绍 SQLite 的测试体系:多种测试方法(TCL 测试、模糊测试、回归测试、静态分析等)和海量测试用例,展示了这个小型开源项目如何靠极致测试获得…
编程与软件工程上首页 8 次 · 2009–2025sqlite.org编辑精选高级编程语言(2009)
Advanced programming languages (2009)
Matt Might 的经典文章,按用途推荐“高级编程语言”:如果追求就业就选主流语言,如果追求表达力、学术研究或创业,则推荐 Haskell、OCaml、Scala 等函数式语…
编程与软件工程上首页 8 次 · 2009–2022matt.might.net我的 Forth 与栈机器经历
Yosefk - My history with Forth & stack machines
作者以亲身经历回顾了使用 Forth 语言和栈式机器的历程:既赞叹其简洁优雅、代码量小、可自举的优点,也坦率指出栈操作在实际编程中的痛苦,以及 Forth 社区文化中的问题。
编程与软件工程上首页 8 次 · 2010–2024yosefk.com编辑精选