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.

When did software go off the rails?

244 pointsby jasonhanleyover 7 years ago

62 comments

perlgeekover 7 years ago
&gt; Hardware capability increases exponentially, but software somehow just bloats up, using the power and space, without providing much more functionality or value.<p>I disagree. Our baseline for software has increased dramatically. If you don&#x27;t care much about the added functionality or value of the new software, use Mosaic or Netscape 4.0 to browse the web.<p>There are obvious improvements in browsers which you are so used to that you forgot them: tabs, ability to zoom, process-level isolation for websites, support for newer protocols, CSS, Unicode support, font rendering things I&#x27;m probably not aware of, a built-in debugger and inspector in the browser, and so on.<p>Again, if you think that software hasn&#x27;t advanced much, simply use the software from 10 or 20 years ago, and see if you can stand the experience.
评论 #15035212 未加载
评论 #15035289 未加载
评论 #15035400 未加载
评论 #15035131 未加载
评论 #15036750 未加载
评论 #15036259 未加载
评论 #15035046 未加载
评论 #15035373 未加载
评论 #15034968 未加载
评论 #15034962 未加载
评论 #15036519 未加载
评论 #15041733 未加载
评论 #15037106 未加载
评论 #15045752 未加载
seanwilsonover 7 years ago
I think a lot of it is you tend to only optimise as much as you need to. When the average user only has 4MB of memory, you&#x27;re going to spend a lot of time optimising image size for example. When you can assume 4GB of memory, you&#x27;re going to put that time into other places as the effort would be very difficult to justify.<p>Wouldn&#x27;t your users appreciate more features than optimisations most of them aren&#x27;t going to notice? For the same block of time today compared to decades ago, you&#x27;re going to be creating an app that uses more memory and CPU but has a lot more features. Developer time isn&#x27;t free and needs to be justified.<p>I used to write DOS apps for 66MHz PCs and you&#x27;d spend an enormous amount of time optimising memory and CPU usage. This was similar for the initial batch of Android phones as well as you didn&#x27;t get a lot of resources (e.g. loading a large image into memory would crash the app). Now I can create more features in way less time and rarely have to think about optimisations unless dealing with a lot of data.<p>I think expecting every software developer to release software that uses the absolute minimum amount of CPU and memory possible is completely unrealistic. The people commenting that developers don&#x27;t know how to write optimised code anymore have different priorities to a typical business. I know how to make low level optimisations and have even resorted to assembly in the past but I&#x27;m only going to these lengths when it&#x27;s absolutely required.<p>For commercial projects, it doesn&#x27;t make any business sense to optimise more than is needed even if that makes software developers squirm.
评论 #15038504 未加载
评论 #15036492 未加载
wahB4vaiover 7 years ago
Organizations get what you reward.<p>Tech Debt is rewarded.<p>Doing something for the first time, almost by definition, means one does not really know what one is doing and is going to do it somewhat wrong.<p>Hiring less skilled labor (cheap coder camps for example) to implement buzzword bingo solutions gets you into a place where all the software contains large chunks of it&#x27;s substance coming from people doing it for the first time... and not 100% right.<p>As we never go back to fix the tech debt we end up building stills for the borked and less than great. When that structure topples over we start over with a new bingo sheet listing the hot new technologies that will fix our problems this time round for sure.<p>I&#x27;d think that a good fraction of the current language expansion is that the older languages are too complex and filled with broken. Green fields allow one to reimplement printf, feel great about it, and get rewarded as a luminary in the smaller pond.<p>.....<p>oh... and well the cynic in me would argue planed obsolescence at the gross level. No one buys the new stuff unless there&#x27;s new stuff.
评论 #15033014 未加载
评论 #15035572 未加载
评论 #15034591 未加载
GuB-42over 7 years ago
This is not a single thing.<p>I think the biggest culprits are abstraction layers. You use a framework that use js that use a VM in a browser that runs on an OS. The time when showing text was done by the application writing a few bytes in VRAM is long gone. Each layer has its internal buffers and plenty of features that you don&#x27;t use but are still there because they are part of the API.<p>Another one is laziness : why bother with 1MB of RAM when we have 1GB available? Multiplied the number of layers, this becomes significant.<p>Related to laziness is the lack of compromise. A good example is idTech 5 game engine (Rage, Doom 2016). Each texture is unique, there is no tiling, even for large patches of dirt. As expected, it leads to huge sizes just to lift a few artistic constraints. But we can do it so why not?<p>Another one is the reliance on static or packaged libraries. As I said, software now use many layers, and effort was made so that common parts are not duplicated, for example by using system-wide dynamic libraries. Now these libraries are often packaged with the app, which alleviate compatibility issues but increase memory and storage usage.<p>There are other factors such as an increase in screen density (larger images), 64 bits architectures that make pointers twice bigger than their 32 bit counterparts, etc...
评论 #15034028 未加载
评论 #15035295 未加载
评论 #15033268 未加载
dvfjsdhgfvover 7 years ago
To understand this, you need to read Andy Grove, especially &quot;Only the Paranoid Survive&quot;. It&#x27;s fascinating: basically everything I, as a user, see as a boon, he perceives as a threat. From his point of view, everything that allows people to buy cheap machines, run fast software etc. is negative and needs to be dealt with. Intel basically didn&#x27;t change over the years, with the recent x86&#x2F;ARM fuss showing just that. On the other end of the spectrum are companies exploiting the existing possibilities - for a long time it was Microsoft, making each version of their flagship products more and more resource hungry, so the users were forced to upgrade (&quot;What Andy giveth, Bill taketh away&quot;). What is happening now is the extension of the same story - &quot;Memory is cheap? Let&#x27;s use all of it!&quot;.<p>As a developer, you rarely care about memory usage; as a web developer, you have limited influence on CPU usage. And since most managers care only about getting the project done on time and within the budget, this is what most developers concentrate on.
评论 #15035120 未加载
jeffdavisover 7 years ago
Software is causing science is moving backward.<p>Software makes the world more complex faster than we can understand it, so even though we have more knowledge we understand less about the world.<p>We used to know how cars work. We used to know how phones work. Now we don&#x27;t, and never will again.<p>The implications are unsettling.
评论 #15034955 未加载
评论 #15036095 未加载
评论 #15037048 未加载
RcouF1uZ4gsCover 7 years ago
I think it started when we went away from native compiled languages. Visual Studio 6 was in my opinion the best version in terms of responsiveness&#x2F;functionality. After that, with .Net, Visual Studio started including more .Net code and become more and more slow over time. Over time, people slowly got used to their applications being slower and slower. Then the web came and people started writing apps in Javascript. The Javascript apps are not too bad compared to the .Net apps, so people did not notice. However, if you were comparing them to Pascal&#x2F;C&#x2F;CC++ apps, you would have noticed a big difference.
评论 #15034340 未加载
评论 #15036347 未加载
评论 #15034430 未加载
评论 #15034459 未加载
godelskiover 7 years ago
I still find it amazing that DOOM was 2.5MB. A Google search page is ~20MB (16MB in DDG). And a Wikipedia page is ~19MB. (FF 55). This is crazy to me. That even simple things take so much space now. I know space is cheap, but this does feel bloated. And while these sizes might not be noticeable on a computer, it definitely is on a mobile connection. I had figured the advent of mobile would make optimization more appealing, but it seems to go in the other direction.
评论 #15033877 未加载
评论 #15036647 未加载
评论 #15033931 未加载
d--bover 7 years ago
I think the explanation is that bloated software is cheaper to make.<p>It is cheaper to develop a .Net app than a C app. Cheaper in Development and maintenance.<p>It is cheaper to not care about efficient data management, or indexed data structure.<p>What we&#x27;re losing in efficiency, we gain in code readability, maintainability, safety, time to market, etc.
评论 #15033020 未加载
评论 #15033322 未加载
评论 #15032825 未加载
评论 #15032699 未加载
throwaway9980over 7 years ago
Software complexity increases exponentially with linear growth in features and polish. Occasionally someone takes the time to step back and rethink things, but generally you’re just adding another layer on top of the ancient ruins. Code archaeologist should be a job title in many organizations.
评论 #15034571 未加载
TheEnder8over 7 years ago
This keeps coming up every couple of years, but is just wrong.<p>In the last 5-10 years, there hasn&#x27;t been almost increase in requirements. People can use low-power devices like Chromebooks because hardware has gotten better&#x2F;cheaper but software requirements haven&#x27;t kept up. My system from 10 years ago has 4gb of ram - that&#x27;s still acceptable in a laptop, to say nothing of a phone.<p>If you&#x27;re going to expand the time horizon beyond that, other things need to be considered. There&#x27;s some &quot;bloat&quot; in when people decide they want pretty interfaces and high res graphics, but that&#x27;s not a fair comparison. It&#x27;s a price you pay for a huge 4k monitor or a retina phone. Asset sizes are different than software.<p>I won&#x27;t dispute that the trend is upward with the hardware that software needs, but this only makes sense. Developer time is expensive, and optimization is hard. I just think that hardware has far outpaced the needs of software.
评论 #15034209 未加载
评论 #15035370 未加载
AnimalMuppetover 7 years ago
It happened one step at a time.<p>We wanted multi-tasking OSes, so that we could start one program without having to exit the previous one first. That made the OS a lot bigger.<p>Eventually, we got web browsers. Then Netscape added caching, and browsers got faster and less frustrating, but also bigger. And then they added multiple tabs, and that was more convenient, but it took more memory.<p>And they kept adding media types... and unicode support... and...<p>We used to write code in text editors. Well, a good IDE takes a lot more space, but it&#x27;s easier to use.<p>In short: We kept finding things that the computer could do for us, so that we wouldn&#x27;t have to do them ourselves, or do it more conveniently, or do something <i>at all</i> that we couldn&#x27;t do before. The price of that was that we&#x27;re dragging around the code to do all those things. By now, it&#x27;s a rather large amount to drag around...
评论 #15032328 未加载
评论 #15036422 未加载
bsaulover 7 years ago
Wonder how much of it is only due to asset. I keep making my colleague notice than a single background image displayed on a high res iphone occupies more ram than the total data of their app by a factor of 100 (at the minimum). Same goes for app size on disk : it&#x27;s most often mainly assets.<p>So just loading from disk, decompressing, put on Ram then moving around and applying visual effects is probably half of the reason everything is slow. Those &quot;bloat&quot; graph should also mention screen resolution and color depth.
评论 #15034702 未加载
AndyMcConachieover 7 years ago
TFA doesn&#x27;t even load without javascript. I use noscript and this HTML file won&#x27;t display anything unless I allow JS to load from a different domain. Perhaps the author should practice what he preaches. Then again, I don&#x27;t really know what he preaches because I can&#x27;t be bothered to allow the JS to load.
评论 #15037133 未加载
评论 #15036820 未加载
评论 #15036209 未加载
PaulHouleover 7 years ago
Back in the late 1960s, see<p><a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;The_Mythical_Man-Month" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;The_Mythical_Man-Month</a><p>Note NASA controlled the moon missions with an IBM 360&#x2F;95 that had something like 5 MB of RAM, 1GB of disk, and about 6 million instructions per second.<p>Today an internet-controlled light switch runs Linux and has vastly larger specifications. Connecting to WiFi is more complex than sending astronauts to the moon!
评论 #15033038 未加载
评论 #15037150 未加载
TekMolover 7 years ago
This is what I get after starting Chromium, before opening any website. Does this mean it is using 178064 + 175208 + 92132 + 90492 + 87596 = 623492 KB = 623 MB right off the bat without having loaded <i>any</i> HTML?<p><pre><code> NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 0 979612 178064 108084 S 0,0 1,1 0:01.38 chromium-browse 0 3612044 175208 128552 S 0,0 1,1 0:01.83 chromium-browse 0 1372444 92132 67604 S 0,0 0,6 0:00.27 chromium-browse 0 1380328 90492 58860 S 0,0 0,6 0:00.62 chromium-browse 0 457928 87596 75252 S 0,0 0,5 0:00.67 chromium-browse</code></pre>
评论 #15034600 未加载
bltover 7 years ago
Software went off the rails when Java decided to store all nested nonprimitive objects on the heap, and Sun thought this was an acceptable choice in a language marketed at general purpose app development.
jeremyjhover 7 years ago
Typically as developers we let the software bloat until it hurts us directly. Since we are always using more and more powerful machines we are always going to let the bloat continue. If we get called on it we&#x27;ve got the slam-dunk in our back pocket: &quot;Premature optimization is the root of all evil.&quot;
DannyB2over 7 years ago
I&#x27;ll make three points.<p>The article is focused on machine efficiency. Human efficiency also matters. If you want to save cycles and bytes then use assembly language. Geez, we had the assembler vs fortran argument back in the 70&#x27;s. Probably even in the 60&#x27;s but I&#x27;m not that old. Guess what? High level languages won.<p>Next.<p>Hey, Notepad is much smaller, leaner, and faster than Word! Okay. But Word has a lot of capabilities that Notepad does not. So is it &quot;bloat&quot; or is it &quot;features&quot; ? Guess what, Windows is a lot bigger and slower than DOS.<p>Imagine this argument from a business person:<p>If I can be to market six months sooner than my competitor for only three times the amount of RAM and two times the amount of CPU horsepower -- IT IS WORTH IT! These items cost very little. You can&#x27;t buy back the market advantage later. So of course I&#x27;ll use exotic high level languages with GC. I&#x27;m not trying to optimize machine cycles and bytes, I&#x27;m trying to optimize dollars.
评论 #15038449 未加载
cakedoggieover 7 years ago
Ok, fair enough, but have a look at yourself. Your blog is static content not served statically, that requires javascript.
评论 #15033922 未加载
dzinkover 7 years ago
Look at any analog - real estate property, an army of people, a kitchen. Anything left un-groomed during high use becomes unusable. Grooming software needs to be either someone&#x27;s full-time job (real-life custodians), or a big constantly-enforced chunk of everyone&#x27;s job (military grooming standards).<p>At a big company could argue requirements writers need to be technical, but once you&#x27;ve done a startup you&#x27;d know that you&#x27;re in an army and not in a fixed building that needs architected once. The customer and your enemies are always on the move and you have to keep moving on new terrain as the money and your business keeps moving there. Build with code of conduct for your developers, and allow the code base to evolve with modules, or some other approach.
jankotekover 7 years ago
I love bloated software, I wish opening facebook would require 128GB RAM.<p>It makes hardware cheaper for everyone, even nerds who use terminal and lightweight WMs ;-)
评论 #15033974 未加载
andrewflnrover 7 years ago
Software was never on the rails. This whole industry has, AFAICT, been flying by the seat of its pants from Day 1 with whatever hacks get today&#x27;s job done. For a while, that meant hacks to save space and time. Now... it doesn&#x27;t.
Silhouetteover 7 years ago
I suspect this is the inevitable price for the expanding scale of the software industry. Perhaps the problem isn&#x27;t about depth, as in what a given piece of software can do, as much as breadth, as in how much software there is now and how many different things it can do collectively.<p>One cost of the increasing breadth in the industry is that if we want to have a lot more software then obviously it can&#x27;t all be written by the same relatively small pool of expert programmers who wrote software in the early days. With more software being written by people with less skill and experience, many wasteful practices can creep in. That can include technical flaws, like using grossly inefficient data structures and algorithms. It can also include poor work practices, such as not habitually profiling before and after (possibly) optimising or lacking awareness of the cost of taking on technical debt.<p>Another cost of the increasing diversity in the software world is that to keep all that different software working together, we see ever more generalisations and layers of abstractions. We build whole networking stacks and hardware abstraction libraries, which in turn work with standardised protocols and architectures, when in days gone by we might have just invented a one-off communications protocol or coded directly to some specific hardware device&#x27;s registers or memory-mapped data or ioctl interfaces.<p>There is surely an element of deliberately trading off run-time efficiency against ease of development, because we can afford to given more powerful hardware and because the consequences of easier development can be useful things like software being available earlier. However, just going by my own experience, I suspect this might be less of a contributory factor than the ones above, where the trade-off is more of an accident than a conscious decision.
jbergensover 7 years ago
Besides all other things people have mentioned there is also new requirements for ui:s. People complain if their drag-movement with a finger don&#x27;t align perfectly with a nice animation on the screen on a cheap phone. Those things did not exist 10 years ago or 20 years ago. Interfaces were simpler and easier to build and users were happy that it worked.<p>But I do agree that software could be a bit faster nowdays.
jbg_over 7 years ago
A: Around the time that a simple blog post required JS from four separate domains in order to display anything other than a blank page.
sienover 7 years ago
It&#x27;s kind of because we can.<p>I&#x27;m currently on a Mac and a PC. The Mac&#x27;s CPU is at maybe 5% when I&#x27;m doing most things.<p>The PC is at 1%.<p>I&#x27;m using half the PC&#x27;s memory and 3&#x2F;4 of the Mac&#x27;s.<p>These are no up to date, high memory or high performance machines.<p>Have a look at your own machine. Surely for most of us it&#x27;s the same.<p>And that memory usage is mostly in one application - Chrome. The only bloat that hurts a bit now is web page bloat. And on a good connection this isn&#x27;t an issue either.<p>It&#x27;s also different on phones where application size and page size seems to matter more.
评论 #15033927 未加载
Boothroidover 7 years ago
I do often wonder wth is going on with bloat. I can understand a videogame which has huge amounts of media might be large. But business apps?! It doesn&#x27;t make sense.
评论 #15032416 未加载
评论 #15036627 未加载
srssaysover 7 years ago
Software is written better.<p>In the past, computational complexity was lowered by arbitrary size limits. e.g. if you had a O(n^2) algorithm you might cap n at 10 and now you have a O(1) algorithm. Job done.<p>Now, computational complexity is lowered by aggressive use of indexing, so you might lower your O(n^2) algorithm by putting a hash table in somewhere, and now you have an O(n) algorithm. Job also done.<p>The practice of putting arbitrary size limits on everything has almost died out as a result.
divanvisagieover 7 years ago
This article is a waste of bandwidth and server storage space, the entire content is just an elaboration of the title, with not even a single consideration to what the cause is.<p>There are also a few graphs to make the author feel like he is a scientific researcher writing a paper instead of what he is actually doing , which is posting a question that quite frankly could with little extra thought fit in a tweet.
评论 #15036993 未加载
infiniteparamtrover 7 years ago
I&#x27;ve been teaching myself C, with the intention of learning how to write code for embedded applications where efficiency is key.<p>It seems to me that new languages prioritize quick iteration over effective machine operation. The easier a language is to write and interpret, the faster an outfit can churn out an application. The exponential computing power growth has been sufficient enough to absorb these collective &quot;shortcuts&quot;. Thus, it is not being taken advantage of properly.<p>The CSCI&#x2F;Engineering fields have become more of a gold rush than thoughtful trades. Boot camp management seeks profit, and trainees seek to quickly fill high paying jobs. It all culminates into this situation where code doesn&#x27;t need to be clever and thought out - just created A.S.A.P to handle whatever trending niche market or &quot;low-hanging fruit&quot; there is. The work of these products get handled server side, where electrical costs for cooling is a fundamental expense.
评论 #15033843 未加载
kensohover 7 years ago
Thanks Jason, enjoyed your thought-provoking post. I&#x27;m reminded of Parkinson&#x27;s law that &quot;work expands so as to fill the time available for its completion&quot;. It&#x27;s as if the software bloats up to fill up the available hardware capacity.<p>From a fundamental level though, my hunch would be how modern development takes modularization &#x2F; abstraction to a type of extreme. Imagine a popular Node.js module and how many dependencies it has and how many dependencies its dependencies have.<p>It&#x27;s not hard to imagine a lot more computing power is required to handle this. But that&#x27;s ok to decision makers, computing power is cheap. Saving developers time by using modularized developments brings more cost&#x2F;profit benefits, like what Dan said.<p>PS: the link on Visual Studio. Oh wow, what fond nostalgic memories it brings me :)
toyonutover 7 years ago
I would guess at least some of the issue is that most users don&#x27;t show a preference for faster smaller software, especially because it doesn&#x27;t benefit them if a product uses less RAM and CPU. Displaying a UI is better than a text mode interface. Icons that don&#x27;t look jaggy on the screen are nicer than ones that do. Anti aliasing, gradients and drop shadows make things look nice. Drag and drop that has a pretty animation is nicer than drag and drop workout. It is the same reasons people choose a BMW when a Corolla does pretty much the same job. People pay the cost they want to live with. In the trade off between functional and thrifty and pretty and feature packed, the latter nearly always wins.
评论 #15034453 未加载
bsderover 7 years ago
&quot;The Blogger tab I have open to write this post is currently using over 500MB of RAM in Chrome.&quot;<p>So, why are you using Blogger instead of emacs&#x2F;vi&#x2F;notepad to write a static HTML page?<p>Apparently the author seems to think that all that bloat <i>DOES</i> give him something, no?
kozakover 7 years ago
Software does so much more today as a baseline requirement. Think about all that internationalization, high DPI graphics, security, nice APIs and modularity: these aspects of software have never been at such a high level before.
fpgaminerover 7 years ago
I look at articles like this and the comment responses to it and I can&#x27;t help but think everyone is like the old man grumbling how &quot;things used to be built to last!&quot;<p>Have people really forgotten their computing history so soon?<p>Let&#x27;s roll back the clock. Windows 95 ran for a total of 10 hours before blue screening. Windows ME ran for -2 minutes before blue screening and deleting your dog.<p>Roll back further. IBM was writing software not for you. Not for your neighbor. They were writing software for wealthy businesses. Bespoke software. Software and hardware that cost more than you make in a lifetime.<p>Software, today, represents responses to those two historical artifacts.<p>1) At some point software became complex enough that we discovered something we didn&#x27;t know before ... programmers are really bad at memory management. Concurrently, we also realized that memory management is really important. Without it, applications and operating systems crash.<p>And yes, this point was hit roughly around Windows 95. You really couldn&#x27;t use Windows 95 for more than a day without something crashing.<p>So the programming ecosystem responded. Slowly and surely we invented solutions. Garbage collected languages and languages without manual memory management. Java, .NET, Python, etc. Frameworks, layers of abstractions, etc.<p>Now fast forward to today. I&#x27;m absolutely shocked when an app crashes these days. Even games have become more stable. I see on average maybe 1 or 2 crashes in any particular game, through my _entire_ playthroughs. And usually, the crashes are hardware bugs. I haven&#x27;t seen a Firefox crash in ... months.<p>This is leaps and bounds better. Our solutions worked.<p>The caveat, of course, is that these new tools use more memory and more CPU. They have to. But they solved the problem they were built to solve.<p>2) In the &quot;good old days&quot; software was bespoke. It was sold strictly B2B. For a good long while after that it remained a niche profession. Does no one remember just how expensive software and hardware used to be? And people scoff at $600 phones...<p>But software exploded. Now everyone has a computer and software is as ubiquitous as water.<p>With that explosion came two things. Software got cheaper. A _lot_ cheaper. And software filled every niche imaginable.<p>When software was bespoke, you could get the best of the best to work on it. Picasso&#x27;s and Plato&#x27;s. But those days are long gone. Picasso isn&#x27;t going to make Snapchat clones.<p>We needed a way to allow mere mortals to develop software. So we created solutions: Java, JavaScript, Python, .NET, Ruby, etc. They all sought to make programming easier and broaden the pool of people capable of writing software.<p>And just like before, these tools worked. Software is cheap and plentiful.<p>We can bemoan the fact that Slack isn&#x27;t a work of Picasso. But who wants to pay $1 million per seat for Slack? Instead, Slack is free in exchange for the sacrifice of 4GB of RAM.<p>The lesson here is two fold. Software today is better than it ever was, and it will continue to get better. We&#x27;ve learned a lot and we&#x27;ve solved a lot of problems. Battery constraints are forcing the next evolution. I would never have dreamed of a world where my laptop lives for 10 hours off battery, but here we are. I can&#x27;t wait to see what the next decade holds!
评论 #15037255 未加载
评论 #15035181 未加载
评论 #15035163 未加载
评论 #15035511 未加载
评论 #15035491 未加载
评论 #15034480 未加载
评论 #15034843 未加载
评论 #15035492 未加载
SomewhatUsefulover 7 years ago
Is this a projection of &quot;the next 90%&quot; issue?<p>&quot;The first 90% took 2 weeks to finish. The second 90% also took 2 weeks to finish (and now your 99% done). The next 90% also takes two weeks to finish (99.9% done)...&quot; Reapplied to another resource...&quot;The first 90% consumes 1GB of RAM. To solve the next 90% of the problem, takes 1GB of additional RAM...<p>If you continue this trend, the problems solved in the incremental steps maybe used fractionally less often, but are probably also more complex and required a greater resource investments. Our software does a lot more, but the later developed parts are usually used left often and are more complex. Talking to the <i>one and only</i> ship headed to the moon when you don&#x27;t particularly care who hears you is less difficult than securely purchasing things online over a WiFi connection. At the user experience level its just &quot;thing A talks to thing B&quot; but the later case has also had to solve n-th 90% issues of congestion and security and handshake and...<p>That being said, we rarely go back and see what in the earlier iterations are now based on false assumptions. So there probably is a fair amount of accumulated cruft with no clear detector for what is cruft and what is essential.
VarFarYonderover 7 years ago
&gt; There have been a few attempts at a Software Minimalism movement, but they seemingly haven&#x27;t gained much traction.<p>For those interested in exploring a minimalist approach, it&#x27;s worth checking out <a href="http:&#x2F;&#x2F;suckless.org&#x2F;philosophy" rel="nofollow">http:&#x2F;&#x2F;suckless.org&#x2F;philosophy</a> and <a href="https:&#x2F;&#x2F;handmade.network&#x2F;manifesto" rel="nofollow">https:&#x2F;&#x2F;handmade.network&#x2F;manifesto</a>
BatFastardover 7 years ago
Excuses excuses, most modern software developers have no clue as to how to right tight code
jsightover 7 years ago
This line caught my attention:<p>&quot;And somehow our software is still clunky and slow.&quot;<p>It is? I haven&#x27;t really noticed. It seems to me that my 9 year old desktop still runs most modern software reasonably well. My new laptop runs it much more quickly than machines from 15-20 years ago.<p>Granted, in an abstract sense, CPU usage and memory consumption has grown a bit, but the actual user experience is better.
y04nnover 7 years ago
It&#x27;s all about cost and what users can accept. If a feature costs 10 times less, takes half the time to implement and is easier to maintain but produces the same result for the end user, why would software companies bother to optimise (if the end user does not care)?<p>Also, it seems to me that the optimisation on the web is done on speed at the detriment of memory usage.
chadcmulliganover 7 years ago
Older software was written in languages you had to manage the memory in C, C++, pascal etc, it requires more skilled developers (I&#x27;m told), simpler languages like javascript require less knowledge to write applications. The cost is though higher resource usage.
foucover 7 years ago
I think a potential solution would be to encapsulate every program in their own VMs, with memory &amp; cpu limits set.<p>Put some control back in the user&#x27;s hands, prevent less run-away bad behaviour from the apps.
Sir_Substanceover 7 years ago
&gt; The Blogger tab I have open to write this post is currently using over 500MB of RAM in Chrome. How is that even possible?<p>Mate, you picked &#x2F;blogger&#x2F; as your preferred blogging platform. Blogger can&#x27;t even deliver a page title without Javascript.<p>There&#x27;s a whole world of much higher quality software out there, it may be that you&#x27;ve chosen not to use it.<p>This dude should try switching his blog to Pelican[1], it might be something of a revelation.<p>[1] <a href="https:&#x2F;&#x2F;blog.getpelican.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;blog.getpelican.com&#x2F;</a>
scarface74over 7 years ago
While application software has become more bloated, Microsoft has done a fairly good job at keeping Windows necessary footprint down.<p>After Apple stopped supporting 32 bit x86 Macs years ago, I decided to put Windows 7 on my old 2006 era Core Duo 1.66ghz Mac Mini with 1.25GB of RAM. My parents still use it occasionally. It can still run an updated version of Chrome and Office - not at the same time of course - and it isn&#x27;t painful.<p>My Plex Server is a 2008 era Core 2 Duo 2.66Ghz Dell business laptop with 4Gb of RAM.
评论 #15033080 未加载
评论 #15034668 未加载
xycodexover 7 years ago
I would posit that the decrease in price of computational resources drives a couple of things - better quality (more resolution, colors, for e.g) and ease&#x2F;cost of development.<p>You might see individual applications do the same things, and consume more resources due to the layers and layers of abstractions, BUT be cheaper to build. As a consequence, many, many, many more applications being built, for cheaper, reaching more people, &quot;eating the world&quot;.
13of40over 7 years ago
At the risk of being downflamed for not knowing something obvious, I see it as the gap between what standard runtime libraries provide (e.g. nice generic list, stack, and queue classes) and the algorithms devs implement on top of them. A part of me wants to see all of the grotesque implementations of &quot;visit every relationship in this tree&quot; that get invoked when I click the &quot;add comment&quot; button on this.
man2525over 7 years ago
Not sure about when, but I think that restrictive software licensing combined with Moore&#x27;s law guaranteed wasted computing power. Companies that sold both hardware and software had an incentive to soak up that power to encourage perpetual upgrading. It grew wasteful &quot;software ecosystems&quot;. That or testers should fail more software that doesn&#x27;t run quickly on low end hardware.
reacwebover 7 years ago
IMHO, the starting point was the requirement of 3D accelerated video cards. The last 3D games I have played (alone in the dark 1, doom) did not require any 3D card. But now, you can&#x27;t display a line of text without a huge pile of crappy layers above insane GPU. 25year ago, direct video memory mapping and bitblt operations were sufficient.
stewbrewover 7 years ago
I think the author demonstrates well the problem by using a blogger theme that requires JavaScript to be turned on instead of statically rendering the blog post that is just a few paragraphs long as HTML and serving that from a simple server.<p>He shouldn&#x27;t ask &quot;when&quot; though but who made it go off rails (sic!) and why.
alkonautover 7 years ago
This article is based on the misunderstanding that software complexity has NOT grown exponentially. It has.<p>Even though features might be added in a linear fashion (and I think that&#x27;s not true either - the teams that build large applications have grown too), the complexity the whole system might scale as the square of the number of features, or exponentially. That is: if word2017 has 10 times the number of features as Word6.0, we should not be surprised to see CPU and RAM requirements be 100 or 1000 times higher.<p>Finally, just like a memory manager in an OS makes sure all memory is actually <i>used</i>, software should be using the computers&#x27; resources. If an average computer now is 4x3Ghz then a foreground application such as a photo editor should have features that at least some times puts that hardware to good use. Otherwise there was no point in having that hardware to begin with. As software developers we should aim to scale our software to use the available hardware. We should not just let twice as fast hardware run our software twice as fast.
评论 #15035000 未加载
stephengillieover 7 years ago
Software went off the rails approximately when JavaScript became mandatory to display text on a webpage.
评论 #15033059 未加载
评论 #15034158 未加载
Waterluvianover 7 years ago
Software itself is the sacrifice of system optimization for human optimization. Give me unlimited human power and I&#x27;ll give you purpose-designed chips for each individual use case with the program encoded in the wiring of the logic gates.
jlebrechover 7 years ago
Software went off the rails following the advent of the downfall of the real IDE, the mouse and the web browser.<p>The browser is the big one, you&#x27;re running an operating system inside of another.<p>The IDE not being able to target a true cross platform binary has hampered us.<p>The mouse has made developers lazy and et them put interfaces in clunky places.<p>(contradicting myself) Not using the mouse for coding anymore (see the downfall of the IDE)<p>And OS and browser vendors should have allowed binaries to run at a higher ring level, IE run something similar to dos inside of a browser, I would much rather cross compile to the major architecture than code in HTML&#x2F;CSS&#x2F;JS.
rdiddlyover 7 years ago
The Jevons Paradox applies here: As technology improves, cost goes down, which increases demand, which causes more of a given resource to be used, not less.
kissthebladeover 7 years ago
Everybody here says that &quot;software bloats&quot; but nobody says how it bloats. Why does chrome take 500mb to render a page? Where does that memory go.
pmurTover 7 years ago
Although it&#x27;s great for campfire stories I don&#x27;t really see a problem. Resources are there to be used - the lesson from StarCraft is you don&#x27;t horde resources to victory. I think most believe this as how many of us are writing unikernel OSs purposed built for our hand tuned assembly backends
评论 #15034025 未加载
评论 #15043197 未加载
评论 #15035529 未加载
z3t4over 7 years ago
Just like roads and budgets the utilization will always grow to overflow.
Izmakiover 7 years ago
Why did a bunch of open, unintelligent questions even get to the frontpage of HN? If this is the way one should think (ask questions we all on a low, unintelligent level agree are interesting) in order to become CTO, I will never get there...<p>&#x2F;&#x2F;The Engineer
ninjabeansover 7 years ago
Ironic that your blog needs javascript to display a page.
mandieover 7 years ago
Written in a blog that does not work with javascript off.
评论 #15036787 未加载
c517402over 7 years ago
IMHO, there is no Software Engineering. There is only Computer Science. There is none of the discipline that comes from engineering, and only the messiness that comes from science. The heroes in software are Computer Scientists and everyone wants to be a Computer Scientist. No one wants to be a Software Engineer. It isn&#x27;t even clear to me that Software Engineering exists in a clearly defined way. Maybe a manager or director imposes their will on a group somewhere and engineering is done.
评论 #15033941 未加载
评论 #15035554 未加载
评论 #15033330 未加载
评论 #15034125 未加载