TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Code Inflation (2015) [pdf]

82 pointsby saretiredover 8 years ago

11 comments

mpweiherover 8 years ago
Excellent analysis.<p>I&#x27;d like to add that &quot;growth over time&quot; also solves the &quot;No Silver Bullet&quot;[1] paradox: while Brooks&#x27;s analysis[2] seems obviously correct, we also obviously have code that seems orders of magnitude larger than it has any business being[3].<p>As far as I can tell, Brooks doesn&#x27;t consider cumulative effects of growth over time, but only a single iteration of analysis → development. So a 20% difference in efficiency is just a 20% difference in outcome. However, that same 20% inefficiency per iteration yields a 40x difference in outcome over 20 years. Compound interest.<p>[1] <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;No_Silver_Bullet" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;No_Silver_Bullet</a><p>[2] &quot;there is no single development, in either technology or management technique, which by itself promises even one order of magnitude [tenfold] improvement within a decade in productivity, in reliability, in simplicity.<p>[3] MS Office is &gt;400MLOC. Xerox PARX had &quot;personal computing&quot; in ~20KLOC. Even assuming MS Office is 100x better at &quot;officing&quot;, that leaves 99.5% of the code unaccounted for. Similar analyses can be done for web browser (WWW.app, 5KLOC, Mozilla 15MLOC) and other operating systems etc.
评论 #13205705 未加载
评论 #13205607 未加载
TeMPOraLover 8 years ago
Code inflation nicely cancels out gains from Moore&#x27;s law. But there&#x27;s also another interesting phenomenon seen in embedded <i>hardware</i> - it seems that each generation of devices has more (exponentially more?) computing power on-board, while the user-facing functionality stays the same or even slightly degrades. For example, the functionality of today&#x27;s fridges, kettles and washing machines is equivalent to those made 20 years ago, but today&#x27;s versions will break down faster and in ways nigh impossible to fix by yourself.<p>We&#x27;re about to have <i>Android</i> running on toasters. And I can&#x27;t stop myself from asking the question - <i>why</i>?
评论 #13205980 未加载
评论 #13207261 未加载
评论 #13206381 未加载
评论 #13208479 未加载
mwcampbellover 8 years ago
Some days I&#x27;m inclined to rant about software bloat. I&#x27;ve often quoted or paraphrased a bit of dialogue from the Scott Meyer novel _Off to Be the Wizard_ that&#x27;s kind of funny but also pretty sad:<p>Phillip (time traveler from 1984): What on earth can a person do with 4 gigabytes of RAM?<p>Martin (from 2012): Upgrade it immediately.<p>But on the other hand, some of what might be perceived as bloat is really useful, even <i>necessary</i>, to someone. For example, show me a &quot;light&quot; desktop operating system, Unix desktop environment, or web browser, and I&#x27;ll probably tell you that many of my friends couldn&#x27;t use it, because they&#x27;re blind. (As for me, I&#x27;m legally blind, but I have enough sight to read a screen up close, so I don&#x27;t <i>need</i> a screen reader, but I often use one.) Accessibility requires extra code. In Windows 10, UIAutomationCore.dll is about 1.3 MB, and will no doubt get bigger as Microsoft continues to improve the accessibility of Windows. But you can&#x27;t write that off as bloat.<p>Elsewhere on this thread, there was some discussion of microcontroller software versus Android. A user interface written for a microcontroller with a screen is inaccessible to a blind person, except by memorizing a sequence of button presses, if the UI is simple enough and the device has physical buttons in the first place. But if the device is running Android, the infrastructure for accessibility is there; just add a text-to-speech engine and TalkBack (edit: and make sure the application follows accessibility guidelines). That ain&#x27;t gonna fit in 1 MB or less of flash and 512K or less of SRAM. So sometimes we may be inclined to rant about bloat, but there&#x27;s actual progress, too.
评论 #13206945 未加载
评论 #13207132 未加载
mannykannotover 8 years ago
There is a small irony here in the author&#x27;s use of histogram plotting that performs meaningless perspective rendering - one of the features that has contributed to document-creation software bloat.
评论 #13206011 未加载
grigjd3over 8 years ago
I work on some pretty heinous legacy code and build systems. I often measure my success by the amount of code I remove rather than the amount I write.
cLeEOGPwover 8 years ago
&gt; It sometimes seems as if [software] has just gotten bigger, but not safer. So why is that?<p>The premise for the article. But it provides no proof of it. And I can just as well say &quot;for me it seems software in general have gotten much safer over the years, because I barely remember a time a program crashed.&quot;
burstmodeover 8 years ago
Results of code review of false.c:<p>* Use of undocumented magic numbers (1)<p>* No use of getter&#x2F;setter pattern<p>* Inflexible design (datatype of result is fixed, no template pattern implemented)<p>* Manual memory management (no garbage collection used)<p>* No infrastructure for automated testing included<p>* No unit tests available<p>* Code has not changed for Years (code smell!); Probable stale code, to be removed in next release.
akkartikover 8 years ago
The article briefly mentions <i>cat</i>, but there&#x27;s more to say there: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=11341175" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=11341175</a>
tonyedgecombeover 8 years ago
&quot;the probability of non-trivial defects increases with code size.&quot;<p>Intuitively this feels correct, I wonder if anybody has studied it.
评论 #13205833 未加载
评论 #13206562 未加载
hyperpapeover 8 years ago
In what circumstances is it still useful to have a true&#x2F;false executable in addition to the shell builtin?
评论 #13206430 未加载
jayajayover 8 years ago
<i></i>TLDR<i></i><p>Author rants about how the size of the executable for the Unix `true` command has increased &quot;exponentially&quot; from 0 to 22KB over ~30 years, for no apparent reason other than &quot;because it can&quot;, referring to cosmology, of course.<p>&quot;...true and false commands also don’t need an option that can invert the result, or one that would allow it to send its result by email to a party of your choice.&quot;<p>The article is humorous in nature, but not without a point.<p>OP, thanks for sharing the article.