29 ms·
Did we lose our way in making efficient software?
- llorislloris 2y ago[dead]
- AlfonzoCl 2y ago[dead]
- high_na_euv 2y agoPeople shit on web devs, but lower lvl things arent better either - try compiling llvm
- vinyl7 2y agoLLVM is overly complex for what it does
- logrot 2y agoWe aren't making software. Where making features (and bugs) for the next Friday deadline.
- ornornor 2y agoI think HN audience is a little luckier in that regard, some of the people here work on very interesting and technical problems. The rest of us and the vast majority of professional SE work for a marketing/sales person and “number of new features released this Friday” as you said.
- BobbyTables2 2y agoIn the early 90s, I believe MS Word came on a few floppy disks and the main executable was 2MB. It ran fine on a 16Mhz 386 with a total of 2MB RAM (let that sink in!) It did pretty much everything it does now, only lacked a grammar checker. (WordPerfect had one.) Now we measure things in GB units. 1000X bigger, but what was gained? We not only lost the way, we don’t even know the destination any more.
- teaearlgraycold 2y agoOur docker file for running some ML code at work is 6GiB. That does not include the model files. What the fuck, Nvidia? Am I downloading thousands of permutations of generated code for things I’ll never use?
- baobabKoodaa 2y ago*Docker image, not Dockerfile
- sgarland 2y agoSpoiler, they’re inlining weights with a heredoc.
- stackskipton 2y agoIf you look at the build, yea, it includes everything and kitchen sink. No one cares to parse it down because in most cases, the big GPU servers running this have plenty of hard disk space and since it's a long running container image in most cases, the pull time isn't considered big enough problem for most people to fix. Prime example of "Hardware is cheap and inefficiencies be damned"
- teaearlgraycold 2y agoIf only it was viable to analyze which files get used. Then cut down the image to just what’s needed.
- dpkirchner 2y agoI can show you some of the big, unnecessary files: all the .a files in /usr/local/cuda* (unless you're building software inside your container). That's, IIRC, at least a gig.
- nurple 2y agoLook at the stargazing snapshotter if you have access to deploy it. I pulls small blobs of the image as they're used by the host, and it tries to use heuristics to put startup data in the initial blob. https://github.com/containerd/stargz-snapshotter https://github.com/containerd/stargz-snapshotter
- jedisct1 2y agoRemember the QNX demo floppy?
- seanparsons 2y agoYup, that felt incredible even at the time, let alone now.
- nappy-doo 2y agoI recreated that in grad school, also using QNX. We set it up to run a paging (POCSAG) system that you could put the floppy into any computer, hook up a DSP board and modulator, reboot the machine and you'd have a paging system. My advisor showed it to Andrew Viterbi, and got us grant. When I went to recreate it, I contacted QNX and asked if I could speak to the guy who did the work, and he had died the year before. So, I just took apart his floppy, and figured out how he did it. The things you can do when you invest your time 100% in something.
- trollerator23 2y agoWhat's this? Now I want to know.
- tonymet 2y agoYes because we promote blog posts on “idiomatic ruby” and “premature optimization is the root of all evil”. “Performance is less important than dev time”. We used to have developers who took less time and wrote better code.
- dustymcp 2y agoI dont agree, there is way more help in terms of writing efficient code today than there was back in time, ive seen horrible code from that time which would not have been produced today.
- throwaway35777 2y agoWhat we don't teach or reward today is the behaviors and engineering process to write high quality code. A surprising number of inexperienced developers do the following: "once I get any working solution I should immediately open a PR" and let the senior engineers tell them what's wrong with it. When the big money leaves this field I hope there will be more pressure for people to adopt good engineering practices. I love to work with folks who put good effort into trying to make high quality changes. Personal initiative and ethics are how high quality software gets written.
- giantrobot 2y agoThe process you're describing is the exact thing you want to happen: junior developers are trying to learn to write better code. Why should they waste their time researching not their code base when they can instead learn off their code base from people experienced with it?
- skydhash 2y agoBecause that's what everyone does? You learn by studying other's people work and try to apply it to your own. Painters, musicians, architects, etc … all do it. Why not developers? Instead everyone's rushing to learn React without even knowing the DOM api. Or build a web app with 1000s of dependencies that could be done with a few PHP files. And then they say they need docker and k8s.
- s1k3s 2y agoI want to make native apps but Apple and Microsoft seem to be trying really hard to stop me. I have to buy developer accounts, buy certificates for signing binaries, share 30% of my revenue with them for barely any reason and so on. Not to mention the mess they've introduced in their APIs - especially Microsoft. So of course we choose the much simpler, much cheaper way of the web.
- rini17 2y agoYou can't use Qt?
- a1o 2y agoYou will still be in binary sign hell and Windows Defender may wake up one day and decide your app is a virus "when it does X", which is exactly it's business case. Complaining to MS will do nothing since their online thing will check and not find anything. Boom, entire software business gone for reason out of control. Doesn't care about your signed certificate too.
- hsbauauvhabzb 2y agoI’ve always been curious if this counts as decimation, espionage or antitrust?
- xet7 2y agoThat's why the only way to develop software is to provide URL for login. MS desktops are usually too locked down to install anything.
- injuly 2y agoQt licensing is its own mess. For commercial software, the pricing is 350-500$ per developer, per month. Seriously [1]. The company that now owns the framework doesn't seem to acknowledge the gap between big enterprises and solo developers/smaller teams. [1] Yes, one can use Qt for commercial software without buying a license (as long as it is dynamically linked), but their marketing does everything it can to hide that fact. Also, the newer additions to Qt do not fall in this category – for those, you have to pay.
- lr4444lr 2y agoI think about this a lot, and the conclusion I've come to is that the market (simply meaning the popularity) rewards features and intuitive UI above everything else. I think we've been on this trajectory for some time: getting users with less and less actual computer literacy to do more and more with computers.
- rrr_oh_man 2y agoWhile eroding that same literacy for the future generation
- ip26 2y agoI do wish fast and responsive UI was included in what’s rewarded
- mihaaly 2y agoI wonder if market rules of satisfying user needs and demands is operational here still instead of shoving down things of user's throats ... actually no need to shove, they swallow anything shiny or coming with loud fanfare. It is spectacular what users are willing to work with, wrapping their world around the needs of the poorly made and sometimes even offensive software ...
- VyseofArcadia 2y agoIt could be argued that it is similar to the way the market values Oreos and potato chips over broccoli and lentils.
- darylteo 2y agoThe market rewards VALUE. The rest are simply modifiers on that value. More intuitive UI allows users to gain value more efficiently. Performance allows users to gain value more efficiency. Efficiency is important, but Value more so.
- lr4444lr 2y agoOf course, that goes without saying. What I'm adding is the increasingly more computer illiterate expectations of the end consumer deriving the value, and the increasing functional demands he expects at his level of ability to understand the internals.
- fireflash38 2y agoWhere in that stack is the biggest loss of performance? DOM? Javascript? Browser? Or is it because everything needs to sync to the cloud as you edit it?
- brabel 2y agoI think it's just the way web apps are architectured. If you use vanilla JS you can make the browser render stuff really fast even if you change the DOM, as long as you do it efficiently (don't update ALL the DOM on every change!). But I bet Google uses some reactive framework that keeps a bloody copy of the whole DOM in memory, so when you throw 30MB of content into the DOM, that copy that was meant to make things faster starts being the bottleneck.
- jakub_g 2y agoIMO the biggest problem is simply that nothing is tested anymore on big inputs, and that frameworks and the modern way of writing code hide the complexity. Also, in the past you had to care explicitly about how much memory you allocate etc. which stopped you to think. Now you can pretend you have infinite resources because everything happens implicitly. Compounded with this [0]: > O(n^2) is the sweet spot of badly scaling algorithms: fast enough to make it into production, but slow enough to make things fall down once it gets there you get what you get. Ever opened a GitHub pull request with 2000+ files changed? It hangs the M1 MBP. The solution is probably not rocket science, if someone really prioritized the fix. [0] https://twitter.com/BruceDawson0xB/status/1120381406700429312 https://twitter.com/BruceDawson0xB/status/112038140670042931...
- mike_hearn 2y agoIt's going to be a mix of: 1. JS doesn't support multithreading, nor many other features that are useful for performance (e.g. mmap). This severely limits what you can do and makes it hard to scale up by parallelizing. 2. JS is a very pointer heavy language that was never designed for performance, so the CPU finds it harder to execute than old-school C++ of the type you'd find in Word. It's hard to design tight data structures of the kind you'd find at the core of Word. 3. The browser's one-size-fits-all security model sacrifices a lot of performance for what is essentially a mix of moral, legal and philosophical reasons. The sandbox is high overhead, but Docs is made by the same company as Chrome so they know it isn't malicious. They could just run the whole thing outside of the sandbox and win some perf back. But they never will, because giving themselves that kind of leg up would be an antitrust violation, and they don't want to get into the game of paying big review teams to hand out special Officially Legit™ cards in the same way that desktop vendors are willing to do. 4. The DOM is a highly generic, page oriented structure, that isn't well suited for app-like UIs. As a concrete example Chrome's rendering pipeline contains an absolute ton of complexity to try and handle very long static pages, like tiled rendering, but if the page takes over rendering itself like Docs does then all this just gets in the way and slows things down. But you can't opt out (see point 3).
- graboid 2y agoThe same techniques that native apps use to process large documents should be possible in JS/WASM land, no? Given, you probably won't reach native performance, but it seems to me a snappy text editing experience even for large documents should be perfectly doable using web tech.
- asvitkine 2y agoThis just sounds like an inefficiency in Google Docs. Native software can also be inefficient, even if it's written in C or asm, if the data structures or algorithms used can't handle certain types of data well. Just in this case, the native software seems to be able to handle that file better.
- oellegaard 2y agoWe recently moved an old page from plain html and everything generates by the backend to react and we had a drop down take several seconds to open with a thousand or so items in it. Was like 100ms to open the entire page before. It was suggested to only display the first 100 items and let the user type in 3 characters until it started rendering. Unfortunately this is the reality for many these days. Of course instead we just fixed the shitty react code and it rendered instantly.
- compacct27 2y agoYup. Common. With all the performance blogs focused on time to first paint and the like, React introduced a whole new category that looks a lot like this
- drewcoo 2y agoA select with thousands of options sounds like terrible UX. If the new frameworks make the problem blindingly obvious so that someone can actually justify fixing it, all the more reason to use those frameworks.
- Klonoar 2y agoI can’t believe I’m arguing this, but: it actually might be fine UX? As long as they’re sorted and I can jump with the keyboard, that bare-ass drop-down is probably going to “just work” with default behavior. Anything further and we don’t know the intended use case for the element itself, but on the surface… it could be fine.
- YurgenJurgensen 2y agoThere's another condition for that: That you can predict the first few characters of what you want to select. This is rarely true of thousand-item dropdowns; you generally find yourself having to iterate through a bunch of hypothetical naming schemes. Sure, this could be averted with rigorous enforcement of some naming convention, but if you have the discipline to do that, you're probably not making thousand-item dropdowns.
- a2128 2y agoI may be way off-base here but this is what I imagine the problem is: 1. Company executive decides their developers need top-of-the-line hardware to remain competitive in today's market 2. Developers make web apps on their company-provided M5 Ultra Pro Max 128GB RAM powerhouse laptop 3. They never test it on their father's old 2010 family PC, or at least they don't test often/thoroughly enough to realize many parts are broken or unusable
- deleted 2y ago[deleted]
- tracer4201 2y ago[dead]
- passion__desire 2y agoRelated point, do google android engineers dogfood android phones to themselves? I guess most of them would be Apple users.
- silverquiet 2y agoAndroid encompasses $80 burner phones to what... like $2K flagships? It's a big target.
- passion__desire 2y agoIsn't that the point? Make a system usable on low-spec devices.
- jwells89 2y agoNot a Google engineer, but I do keep around a device that represents “potato” specs that I test against when doing Android development. Not a perfect solution since there’s a bevy of old/low end SoCs with varying performance characteristics, but I figure it’s better than what many are undoubtedly doing which is testing against their newish flagship and calling it a day. I used to do the same on iOS, but came to find that performance differences on older devices there generally weren’t nearly as severe and that iOS users as a whole tend to use newer devices. When combined with reasonably well written Swift, performance on old devices generally isn’t a problem.
- stephc_int13 2y agoMy opinion about this is that yes, we lost our way, and the reason is very simple, it is because we could. It was the path of least resistance, so we took it. Software has been freeriding on hardware improvements for a few decades, especially on web and desktop apps. Moore's law has been a blessing and a curse. The software you use today was written by people who learned their craft while this free-ride was still fully ongoing.
- EGreg 2y agoNow imagine same but with AI killer bot swarms. Slaughterbots. Because we could ! As long as we have COMPETITION as the main principle for all tech development — between countries or corporations etc. — we will not be able to rein in global crises such as climate change, destruction of ecosystems, or killer AI. We need “collaboration” and “cooperation” at the highest levels as an organizing principle, instead. Competition causes many huge negative externalities to the rest of the planet.
- HappMacDonald 2y agoWhat we really need is some way to force competition to be sportsmanlike. EG: cooperating to compete, just like well adjusted competitors in a friendly tournament who actually care about refining their own skills and facing a challenge from others who feel the same way instead of cutting corners and throats to get ahead. Cooperation with no competition subtracts all urgency because one must prioritize not rocking the boat and one never knows what negative consequences any decision one makes might prove to have. You need both forces to be present, but cooperation must also be the background/default touchstone with adversarial competition employed as a tool within that framework.
- EGreg 2y agoI don’t see any urgency in depleting ecosystems or building AI quickly or any other innovations besides ones to safeguard the environment, including animals. Human society has developed far slower throughout all history and prehistory, and that was OK. We’ve solved child mortality and we are doing just fine. But 1/3 of arable farmland is now desertified, insect populations are plummeting etc. Urgency is needed the other way — in increasing cooperation. As we did ONE TIME with the Montreal Protocol and almost eliminated CFCs worldwide to repair the hole in the ozone layer
- pylua 2y agoThere are a lot of nuanced features that explode in complexity when joined with other features. The number of permutations is massive, and handling those combinations of requirements is what modern day software is about. Today’s software systems are more generalized, though they are solving the same business problems, just with more details / functionality than before.
- tracer4201 2y agoI’m in leadership ic role at a big tec company. We pride ourselves in engineering. hiring bar was dropped. expecting a mid level engineer to work with a byte buffer is considered “too complex” and non differentiated work. the literal goal is to pump out features written up by mba/product team. none of these mbas use the product mind you. theyre chasing stupid features they think vice presidents want, because the thinking is it will drive promotions. this is a cynical post and i will stop here. my org has problem of incentives. nothing else. you incentivize wrong things then this happens
- claytonwramsey 2y agoThere is perhaps some irony in the fact that this blog was posted to Medium, which serves 10.88 MB for a 265-word article.
- zer00eyz 2y agoAnd browsers are larger that some operating systems. And talk about a closed off ecosystem ... WASM is still crippled and JS/HTML/CSS is your only real viable option for web development. The web feels like 2005 again. Only thing is, this time the popups are embedded in the page...
- vnuge 2y agoI think I would prefer 2005 web again. I'd probably be able to see more of the internet. I use heavy DNS filtering, no javascript on untrusted sites, no cookies, no fonts, VPN and so on. With cloudflare blocking me I basically can't see the majority of websites.
- snoman 2y agoOh don’t worry. Once dns-over-https becomes standard, you won’t be able to do any dns filtering anymore.
- vnuge 2y agoWhy not? I can still mitm DOH now? I try to use DOH for everything I have. I did recently switch to self hosted recursive resolution.
- prmoustache 2y agoI don't know about other browsers but on firefox I can decide which DNS server is used for DNS over https.
- apantel 2y agoThe ads are the real content from Medium’s perspective. The article is actually the medium by which the real content is delivered, like a train carrying dark passengers. The article is not what Medium cares about delivering to your browser, but the ads. And delivering the ads requires a lot of complexity.
- anthk 2y agoA modernized Inferno for the web (with unicode) would have been much better than... this. It looks like a joke seeing an i5 choking on files opened by PC's from 2003.
- robinhood 2y agoInteresting fact that this article has been posted on Medium, resulting in a 7.32 Mb page.
- canucker2016 2y agoI got 8.3MB on page load. Then I got uBlock Origin to turn off JavaScript, remote fonts, and large media items. Result: 116KB So 98.61% of the page is extraneous...
- nwah1 2y agoOffice 365 probably would have worked. Microsoft's proprietary format is handled best by Microsoft. Also, cloud-based synchronization using CRDTs is a complex problem that is significantly more complex than just loading the document. Can't claim we are going backwards when comparing apples and oranges.
- nottorp 2y agoThat's clutching at straws tbh. I have a "native" google docs spreadsheet that has atm 4 sheets, all at 50 lines or less. No fancy formulas except sums. It just tracks hours for billing. It uses 500 Mb of ram fresh, and in a couple weeks it goes up to 1.5 to 2 Gb and I have to kill the tab and reopen it. This is the modern javascript world...
- nottorp 2y agoHey I just killed a github tab that was at 1.2 Gb :)
- eviks 2y agoIt's not a proprietary format, nor should sync take that much in resources in UI thread
- matusp 2y agoSubstack is a good example as well. Literally cannot render simple text and image articles without visible and annoying lags. If there are several hundred comments it can take tens of seconds to finish rendering. With functionality that was figured out in early 90s...
- Ekaros 2y agoI remember using Youtube with Opera GX and two adblockers not that long ago. When you scrolled deep enough in to comments writing replies to them had significant lag on input. And I mean like what felt like seconds before all presses got processed. This is flagship product of one of the largest companies, and even they cannot get UI performance right...
- ultra_nick 2y agoWe learned that efficiency is just one feature of many.
- AdrianB1 2y agoWe can write efficient software, but many times we decide not to. 1. Why bother optimizing when the developer's time is more expensive than RAM and CPU power? I see this a lot. 2. From the times that I can remember (mid '80) till now, only top developers write efficiently software that is efficient. Most developers are average (this is not bad, it is just an observation) and for the average developer software optimization is too expensive in terms of time invested. Some don't know how to do it, some are not proficient enough to do it in the constraints of the projects given to them by bean-counting managers. "good enough" quality is software management is much safer than "good enough" Boeing planes, so when Boeing is cutting corners then managers of developers cut even more.
- RetroTechie 2y ago> Why bother optimizing when the developer's time is more expensive than RAM and CPU power? The comparison should be between developer's time, and time spent (wasted) by all users combined. This depends on # of users, and how often they run the software. For a one-off, with a few dozen users running it occasionally, yes developer's time is expensive. For popular software with 100M+ or billions of daily users, developer time is practically irrelevant, and spending weeks/months to shave off 1/10th of a second for each user's run, would be a no-brainer. Most software sits somewhere in between. But... developer is paid by company not by end users. And company cares about other things than the interests of society-at-large. So it's mostly a case of bad incentives. Companies don't care about / aren't rewarded (enough, anyway) for saving end users' time. Open source developers might, but often they are not rewarded, period.
- contextfree 2y agoAlso, RAM, CPU and disk space are shared resources on PCs. If your computer is slow you don't necessarily attribute it to any particular program, let alone website. As Terry Crowley says here https://terrycrowley.medium.com/software-ecology-bb4653046fda https://terrycrowley.medium.com/software-ecology-bb4653046fd... "... the cost of bloat is not directly borne by the those introducing it. Individual efforts to reduce bloat have little effect since there is always another bad actor out there to use up the resource and the improvements do not accrue to those making the investments."
- Johnny555 2y agoOne problem is that we use a full word processor that's powerful enough to typeset a book to distribute basic text documents when simple markup would be just as readable, and more easily usable on a wide variety of devices (and easier to make accessible for disabled people) So when my doctor sends me a one page checklist of how to prepare for a procedure, I have to open it in a powerful word processor and since it's I'm not using MS Word, the fonts and formatting aren't as expected.
- rahen 2y agoNot until long ago, we had RTF, a simple and universal rich text format that was free, simple and available on all platforms. On Windows, Wordpad was plenty enough for most needs, came preinstalled for free and barely consumed any resources, but I understand it's no longer shipping with Windows. Office 365 is now where the money is, even for basic needs.
- anthk 2y agoGet ReactOS' ISO. Mount it or extract it with 7zip. Find the biggest CAB file, it weights lots of MB. Extract it. Copy Wordpad.exe anywhere else. Delete the rest if you want, or enjoy Sol.exe and friends.
- cmiles74 2y agoI wonder if it's the big software vendors who have lost their way, rather than the average software developer. We have companies like Microsoft and Adobe moving to Web based applications not because they are better but because it's easier for them to enforce licensing restrictions and push people into subscriptions. As the various App stores erode the profits of software developers any tool that will make it faster to add features, even if they are buggy, becomes compelling.
- deleted 2y ago[deleted]
- lispisok 2y agoThe real problem this guy is encountering is making interactive applications for a web browser is hammering a square peg through a round hole at its core. That's why performance is bad, that's why there is a new framework every other week trying to find a better workflow with better abstractions. There is so much inertia, such a huge ecosystem, many billions of dollars invested in it trying to make it less bad so it's not going away.
- jeffbee 2y agoNo, but apparently the arts of rhetoric and reason are completely dead. There is a big gap in this blog post somewhere between "a given program is not optimized for a specific use-case" and "we lost our way of developing optimized, efficient, and performance-wise applications".
- geor9e 2y agoGoogle Docs might be able to directly edit .docx files now, but that is pretty new feature, and it doesn't surprise me that it's slow. It's a proprietary format owned by Microsoft. The argument that software ought to be efficient is valid, but the example of editing a non-native format seems unfair. Any time you add emulation layers you should expect things to slow down. Did you consider trying Microsoft's own browser-based Word editor? It's free too. And .docx is it's native format. Or, consider doing a conversion to Google Docs native format first (you'll lose some formatting though, possibly a lot of it).
- gnabgib 2y ago.docx (office open xml) is an open published ECMA standard[0], and lots of other apps include support[1], including google which added editing without conversion in 2019[2] [0]: https://ecma-international.org/publications-and-standards/standards/ecma-376/ https://ecma-international.org/publications-and-standards/st... [1]: https://en.wikipedia.org/wiki/Office_Open_XML#Application_support https://en.wikipedia.org/wiki/Office_Open_XML#Application_su... [2]: https://www.theverge.com/2019/4/10/18304978/google-docs-sheets-slides-natively-edit-microsoft-office-word-excel-powerpoint https://www.theverge.com/2019/4/10/18304978/google-docs-shee...
- eviks 2y agoBut you're not emulating, you're just parsing a file format, so why should you expect slow downs?
- michelb 2y agoIn my MacOS Passwords I have ±3400 entries. A roughly 341KB CSV. Searching in that list in the preference panel or Keychain app is dog-slow on my M1 Pro Studio or on my M3 MacBook Air. How??
- constantcrying 2y agoIt seems obvious how you could make it slow. Just naively iterate over the entire series of objects looking up the name for each. This is the obvious low effort, low complexity solution. Of course you could make it fast, but that would take time and effort for a feature most people won't notice.
- michelb 2y agoI agree on the priority here, but this looks like an OS component that appears in other apps. Filtering history in Safari is equally slow.
- anonymoushn 2y agoYour proposed solution would run in less than 1ms though.
- skydhash 2y agoSwiftUI and Catalyst. Somebody has probably implemented that list and try to rebuild the app UI at every keystroke (I think the UI is a single thread on macOS). There are optimizations, but that requires being aware that beneath the declarative world, it's an imperative foundation.
- eviks 2y agoNo, it's been slow long before that, that's just one of the many abandoned apps from the golden age of efficiency and superior UI
- wetpaws 2y ago[dead]
- slyu 2y agoSimilar observations from the history of video game making. Historical archives like the making of Prince of Persia illustrates the art of constraint https://github.com/jmechner/Prince-of-Persia-Apple-II https://github.com/jmechner/Prince-of-Persia-Apple-II https://www.jordanmechner.com/en/books/journals/ https://www.jordanmechner.com/en/books/journals/
- vnuge 2y agoI hope to keep seeing posts like these. I believe software "bloat" is a serious issue that should be handled, however if you look at SWE job listings it's not even remotely a concern for employers IMO. Your encouraged to understand complex and heavy frameworks and performance/optimization is not even a consideration.
- skydhash 2y agoBecause those frameworks are easy at first glance. Adding some interactions with React is easier than with jQuery. Even better if you could make the whole page a React app, then you can add those 100s libraries to do…stuff. Optimizing a React app is hard and it will probably require some deep thinking about global state and its modification and we don't have time for that /s. By then, the app is built and running. Even though the code is a mess because the developer only know about React, nothing about the DOM and software architecture.
- vnuge 2y agoTo your last point, I like to think of modern professional software development as a trade, it's not much of a science anymore imo. For me it's outside looking in.
- fnordpiglet 2y agoThis seems to take a moral stance that efficient is better. However that’s not always practically true. Efficiency often means inflexible and brittle with respect to change and time. Abstraction generally trades efficiency for ease in change over time, or parsimony for the developer in exchange for expense at runtime. If it doesn’t matter - it doesn’t matter. If the goal is making a document format that is flexible enough to accommodate history, concurrent editing, various layouts and embedding, etc, all this comes with abstractions that add inefficiency. The trade off is ease in adding and changing to the format and the software that consumes and produces the format. If the consequence in the real world is effective unobservable in any material way, who cares? Maybe as a moralistic measure it’s offensive that something lacking parsimony is practical. But from any meaningful measure - the users perspective, the developer, even the company paying for the processing - if it doesn’t matter - it literally doesn’t matter. Comparing Google Docs to a program hosted on an Apollo era flight computer is obtuse to an extreme, and I would rather write my collaboratively edited documents with Google Docs than Apollo era flight computer any day no matter whether one is less parsimonious than the other.
- rpdillon 2y ago> Maybe as a moralistic measure it’s offensive that something lacking parsimony is practical. But from any meaningful measure - the users perspective, the developer, even the company paying for the processing - if it doesn’t matter - it literally doesn’t matter. Except the post you're responding to was literally in response to a user problem trying to edit a 30MB document in Google Docs. So it very much does matter, from the user perspective. > Comparing Google Docs to a program hosted on an Apollo era flight computer is obtuse to an extreme, and I would rather write my collaboratively edited documents with Google Docs than Apollo era flight computer any day no matter whether one is less parsimonious than the other. Straw man. The post compares Google Docs to LibreOffice (a competing product), and points out that LibreOffice solves the user's problem (editing a 30MB document) and Google Docs cannot.
- drewcoo 2y agoDid we lose our way in arriving at the file size non-goal? No.
- contextfree 2y agoI liked this post by Terry Crowley: https://terrycrowley.medium.com/software-ecology-bb4653046fda https://terrycrowley.medium.com/software-ecology-bb4653046fd... "The classic response to accusations of bloat is that this growth is an efficient response to the additional resources available with improved hardware. That is, programmers are investing in adding features rather than investing in improving performance, disk footprint or other efforts to reduce bloat because the added hardware resources make the effective cost of bloat minimal. The argument runs that this is in direct response to customer demand. It is most definitely the case that when you see wide-spread consistent behavior across all these different computing ecosystems, it is almost certainly the case that the behavior is in response to direct signals and feedback rather than moral failures of the participants. The question is whether this is an efficient response. The more likely underlying process is that we are seeing a system that exhibits significant externalities. That is, the cost of bloat is not directly borne by the those introducing it. Individual efforts to reduce bloat have little effect since there is always another bad actor out there to use up the resource and the improvements do not accrue to those making the investments. The final result is sub-optimal but there is no obvious path to improving things." Web pages/applications are probably even worse in this regard because I'm not sure users even conceptualize them as using resources on their local computers, so they don't get blamed for it (people seem to attribute resource usage only to the web browsers, not the sites themselves)
- KayL 2y agoWait, is it true? Did you encounter a bug? or browser extensions issues? It may not be as efficient as native, but I downloaded some sample files and repeated them until hit Google Docs limits. It is about 450 pages with some images. It is smooth and usable. There's zero delay. (and only 1000MB ram usage with many broswer extensions enabled. I think it's fair...)
- constantcrying 2y agoWho knows how exactly that word looks. Might be Features from word which it is badly emulating.
- rumad 2y agoThe doc file has images, and some simple tables but mostly texts.
- emorning3 2y agoIf AI was a real thing, instead of phony baloney probabilistic bullsh!t, then we'd already have AI-driven tools that take crappy, bloated, slow, but correctly working systems built by humans and turn them into smaller, faster, correctly working AI-enhanced systems. Right?
- patrulek 2y agoWhat if current AI is also crappy, bloated and slow?
- clircle 2y agoDad wants to work on a doc file, so why tf didn't OP install MS Word?
- zzz999 2y ago[dead]
- Zpalmtree 2y agoDude just increase your development costs 10x because apps sometimes run slow
- mihaaly 2y agoPerhap we should compare the cost of development - and maintenance - for an efficient classic software and a bloated and modern one once ... ; )) (probably the cost of making an ancient Word and the newest one... : )) but there could be lots of other examples of 'modern' ones made along current trends vs. similar feature set classic ones, I wonder how this cost characteristic would play out .... : ) )
- eternityforest 2y agoWe did lose the way, and then we found it again. Not everything has caught up yet but a lot has. Moore's law kept going, and software started getting a little bit faster, which was enough to stop undoing the gains made by hardware, and now things are back to mostly snappy. Occasionally you'll get a 30mb file that's slow... but subjectively things sure seem better than 10 years ago when you couldn't even think about optimization without someone beating you over the head with a "premature optimization is the root of all evil" quote.
- nocman 2y ago> and now things are back to mostly snappy. This is the inverse of my experience. There are few applications that have a UI that I would refer to as 'snappy'. In fact, I am trying to come up with a single example, and atm I can't even think of one.
- eternityforest 2y agoAll mainstream apps are vast on recent Android phones. Most everything on recent Ubuntu is fast. Most mobile sites in general are fast, maybe not "2kb of HTML" fast, but fast enough I don't notice or think about performance when browsing. Although, I suspect a lot of programmers can think faster than average and seem to be bothered more by small delays than the rest of us, since they're able to do things like figure out a Vim keystroke sequence instantly.
- nocman 2y agoI disagree. I use Linux (including Ubuntu), Windows and Android apps regularly, on fairly decent hardware. Most apps I would describe as having "OK" to "tolerable" performance. Some I would call "draggy", and a few I would call outright pigs. Again, off the top of my head I can't think of a single application I would describe as "snappy". Or, put another way, I can't think of an application that, in recent memory, really impressed me by how well it performed.
- zzz999 2y ago[dead]
- constantcrying 2y agoAgain and again people complain about this. But it remains a fact that essentially nobody actually wants this. Developers certainly like to have their completely integrated, connected and universal computing platform (the web). And users do not seem to particularly care about performance as long as it is good enough. And that is exactly the standard that is set, software is allowed to be so bad that it doesn't really annoy the user too much. Management doesn't care either, certainly creating good software isn't important when good enough software has already been developed. Sure, I would like things to be different, but until one group decides that a drastic departure is necessary, nothing will change. There are also no real incentives for change, from any perspective.
- impossiblefork 2y agoDo we really though? Web developers do of course, but I've hardly touched web development myself. Web interfaces etc., are a choice, but I think it's driven by commercial needs-- a desire for subscription revenue instead of one-time sales, etc. Much of the modern cloud-based or half-online world is quite unnatural from a user perspective, and where there is no need for monetisation-- for example with OpenOffice, the software can expected to remain a desktop application.
- constantcrying 2y agoCertainly there has been almost no pushback. I don't think most users really care for native applications, what they like to see is clicking on something and having it work instantly, web apps deliver that.
- jwells89 2y agoI think an overwhelming majority of users aren’t technical enough or well enough versed in UI/UX to be able to put a finger on the frustrations they experience with software, and this is something that’s important to remember when considering complaints coming from a more technically-inclined minority — even if only a small number of techy folks are unhappy, these frustrations likely exist in the larger userbase too even if most users are unable to articulate them. In addition, some percentage undoubtedly perceive these issues but are just too busy to bother with sending in feedback. With all that considered, I believe the extent of pushback that is possible is quite limited as long as the app technically works, but this is far from an accurate indicator of user happiness.
- eezing 2y agoGoogle Docs is pretty efficient. It loads incredibly fast and you never have to manually update it. But, it clear has limits… 30MB Word files.
- egypturnash 2y ago“My father told me he wanted Microsoft Word on his laptop. So I told him to use Google Docs instead. When that turned out to suck, I installed Libre Office instead.” Why didn’t you just, like, get him Word? Why did you make him try to use a shitty web app that assumes everyone’s computer is brand new, then install an open-source program that’s going to be constantly playing catch-up with Word’s updates and may cause problems down the line when Dad wants to work with someone else’s Word docs? Maybe there was a perfectly good reason for this choice. I can think of a few. Maybe you helped Dad enter The Year Of Linux On The Desktop recently. Maybe Dad didn’t want to pay for Office. Who knows. Whatever the reason, you didn’t put it in this post. And you ended it with a plug for your completely unrelated SAAS, too.
- rumad 2y agoMy dad didn't want to pay for the Office. I might ended my story badly. Sorry about that. But, I don't agree with that the SaaS is not related. It is. API optimization is also important and it can directly affect the performance of web apps and even native apps. Update: I updated the article.
- YurgenJurgensen 2y agoAren't Microsoft trying their best to turn Word (and the rest of Office) into a shitty web app?
- rqtwteye 2y agoTotally. It’s getting difficult in Outlook to figure where window boundaries are. A lot of menus also look pretty amateurish compared to native menus.
- can16358p 2y agoI think convenience is the keyword. Users (not us HN crowd, the rest of the world) don't want to struggle with installing software, most of them don't know the difference between Internet, Browser, or "app". They just open up "internet" and work on docs, and for 99% of the cases Google Docs works fine despite running in a browser that is much less efficient than a native "app". For most cases it's more than enough for the regular user who is used to "computers being slow" anyway.
- rumad 2y agoI also love to use and prefer native apps. But, in my case, I had to offer Google Docs to my dad. Because he wanted to transfer his doc file to his work computer to continue to work on it when he is at the office. So, I thought a web app might be good for him.
- can16358p 2y agoSure it's a perfectly normal thing. I'm talking about Google side of things: they're probably not caring about performance when dealing with 30MB large docs as it's not what people use in their docs anyway.
- xg15 2y agoYes.
- black_13 2y ago[dead]
- rpdillon 2y agoIt's interesting: minimal software is out there, but folks don't tend to choose it. I spend a fair amount of time thinking about how to be conservative in my dependencies, and this encourages a lightweight stack that tends to perform pretty well. These days, I'm favoring tools like Lua, SQLite, Fennel[0], Althttpd[1], Fossil[2], and the Mako Server[3] and find that great, lightweight, stable, efficient software is to be had, for free, but you have to go a bit off the beaten path. This isn't stuff you hear about on Stack Overflow. In terms of frontend, which the post focuses on (Google Docs and a 30MB doc), I guess I'm conflicted. While I tend to favor native apps + web pages, I'm also a daily Tiddlywiki user, and I really think web apps have their place (heck, one idea I'm working on is a lightweight local server that lets you run web apps like Tiddlywiki). But without a doubt, Tiddlywiki is more resource intensive than Emacs (my go-to for notetaking when I'm not on TW). My tab for a 6MB Tiddlywiki file uses 155MB of RAM, and my (heavily customized, dozens of open buffers) Emacs session uses 88MB. So I do think the author has a good point. [0]: https://fennel-lang.org/ https://fennel-lang.org/ [1]: https://sqlite.org/althttpd/doc/trunk/althttpd.md https://sqlite.org/althttpd/doc/trunk/althttpd.md [2]: https://fossil-scm.org/home/doc/trunk/www/index.wiki https://fossil-scm.org/home/doc/trunk/www/index.wiki [3]: https://makoserver.net/ https://makoserver.net/
- thefaux 2y agoLua is by far the most under-appreciated programming tool that I am aware of. Mastering Lua is one of the best ways to level up your programming skills. Of course it can be misused, but it is almost shocking how small and efficient Lua programs can be compared to most other languages.
- codingdave 2y ago> I think we lost our way of developing optimized, efficient, and performance-wise applications. I'm not going to deny that we could do better, but it is more nuanced than that: OP uses Word as an anecdotal example, but Word is not designed with a goal of being optimized. It is designed with a goal of being backwards-compatible to decades of history. We cannot assume that all software shares the same goals because they simply do not. When we look at the problem any given software is trying to solve, performance optimization is almost always important, but almost never #1... #1 is "solve the problem". Doing it fast is always secondary to doing it at all.
- eviks 2y agoSo why doesn't Excel solve the famous problem of data loss on importing dates? Also, Word (despite the general fame) isn't compatible with decades of history (remember a post that found that LibreOffice was more compatible with history (though not current designs))
- j45 2y agoThe way mislead a long time ago when too many projects selected a framework that was way more complex and heavy than what they were solving. There are some new simplified approaches that are starting to be interesting again.
- jongjong 2y agoThe answer is yes. Software developers themselves have lost the ability to recognize or value efficient architecture. Software architects have been wiped off the face of the earth and replaced by a combination of script kiddies and scrum masters. Fast forward 10 years, we can see the results. Now we just have to wait to see what happens 10 years from now. Sad for me who wanted to be a software architect. I had to watch all this unfold in real time from inside various companies and never had the ability to fix the problems. Last time I tried to prevent major architectural flaws from being implemented in software during the design phase, I couldn't convince management and had to quit the company... Then 2 years later, from the outside, I witnessed the project turn into a complete failure. They literally abandoned the whole thing and started using a competitor's platform... Which, to rub salt into the wound, is almost just as awful.
- nyarlathotep_ 2y agoNon-sarcastic question--how do you define "software architect"? Typically the "architect" title I see thrown around today pertains to gluing together some abominations of "systems", typically cloud services to do web stuff at "scale" Architect today seems == "cloud infrastructure decision maker" and has no bearing on the code written, libs/frameworks/whatever used
- jongjong 2y agoInfrastructure could be considered part of architecture but also, it should include other aspects such as how the code is organized on a per-project basis; what frameworks are used, how data should flow through the system, how the different modules are organized to form a functioning product that is resilient to requirement changes.
- quonn 2y agoThe problem is really the business side or pressure from management. 30 Years ago if the software was not efficient it would be either dog slow or just not work at all. Now it is merely not elegant or not as fast as it could be or at least fast enough initially during development and so no effort is spent on making it better. I believe this could only be fixed through regulations which either make the engineers liable (thereby empowering them to make decisions) or by regulating energy use and user experience. If we don‘t want this, then things will just be the way they are now.
- qingcharles 2y agoAnyone have good recommendation for a Web-based Google Sheets alternative that isn't killed by a spreadsheet with 50K rows?
- osigurdson 2y agoUnexamined phrase based development ("root of all evil") is likely responsible for a lot of it.
- ab8 2y agoIt is interesting to see most people lay the blame at the feet of developers. The reality is that these are all business decisions: 1) Move to the cloud because the business likes the steady payout of subscriptions. Business customers love not having to hire IT teams and demand six 9s of uptime because it is someone else’s responsibility. But performance needs to just be acceptable to end users. 2) Customers refusing to upgrade on-premises software, that led to long maintenance cycles and endless patches 3) Developing once for the web vs. Multiple times for different platforms – each needing its own developers and testers. No amount of expertise on the part of developers is going to address these fundamental forces.
- teeray 2y ago> Customers refusing to upgrade on-premises software After a certain period of time, that software worked just fine for those customers. Photoshop is a great example. Sure, you won’t get the flashiest features, but CS4 will still work for you on a Win7 machine without any additional fees paid.
- ryandrake 2y agoOnce I commit to buying a version of Software X, I'm happy with it. As a user I expect Software X to work as-installed for decades to come. I don't want new features. I don't want the UX to change on me all of a sudden. I don't want it to get slower. Bugfixes and security fixes are fine, as long as everything else remains the same. I wish more developers understood and respected this.
- wpm 2y agoDevelopers probably do. Businesses don't. Gotta find a way to sell the same shit every year.
- ehnto 2y agoThis is the real reason I use linux and open source, I want stability and flexibility not inevitably enshittifying SaaS. I am not an OSS or FOSS die hard, and I even advocate for a return to selling software as a deliverable so making small applications is a viable small business. But SaaS is the only viable business model it seems.
- bitwize 2y agoEven John Carmack has come around now to saying that the primary focus of a software developer should be delivering value to customer. If that can be done using up a gigabyte of memory, and using a gigabyte costs less to deliver than using 50 MiB, so be it. Software is a business. Development=cost, happy customers=profit. Anything that maximizes the latter and minimizes the former is a win. Deal with it.
- trollerator23 2y agoSource?
- bitwize 2y agoFor the Carmack quote? His interview with Lex Fridman. This excerpt has it: https://www.youtube.com/watch?v=rczu8kc8JZA https://www.youtube.com/watch?v=rczu8kc8JZA I think the meat starts around 6:50, but really watch the whole thing. It's Carmack talking about what Carmack does best.
- trollerator23 2y agoThanks
- xvilka 2y agoYes. And Electron is the pinnacle of this.
- darepublic 2y agoI always didn't care for google docs. I wonder though how one would go about achieving good word editor performance on a 30mb doc file in the browser.
- mif 2y agoReminds me of some of the remarks Joe Armstrong made a while ago [1], and which I came across via another submission a couple of weeks ago (which escapes me). It’s a great talk about the physical limits of computers and computation. [1] https://youtu.be/lKXe3HUG2l4?si=nMkDTMfvBK1AKCYI https://youtu.be/lKXe3HUG2l4?si=nMkDTMfvBK1AKCYI
- shpx 2y agoWeb apps are much faster to install and update. 1) Your browser is always open, whereas you need to close your current app and open the app store app 2) Google Search is better at giving you what you want in the fewest number of keystrokes than any search from any other company including app store search boxes 3) installing a "web app" is one click after the google search results or if someone posts a link. As you might know from social media, even one click is a lot and most people won't click links in a comment. In the apple app store i have to tap on the app in the search result, tap install, double click the lock button, scan my face then wait many seconds. Some websites load in many seconds but that's not that common and it's considered a bad website 4) software is reinstalled on each use, meaning it's always updated. Native apps update randomly with a big delay and I have to check if there's an update manually sometimes 5) with native software there's a risk it will not support your device. Risk is commonly expressed as a cost, so the fact that in my life I've searched for an app and found out that it's not supported on iPad or not supported in my country can be counted as every single app store download since then took me .1 seconds longer because I now know there's a risk I will waste my time looking for the app. Web apps also don't work sometimes but it's more predictable since it's usually tied to real limitations like the screen size of your device. Another risk is malware, I feel nervous and powerless when installing native software because I don't know who I'm giving access and to and to what, whereas I understand what web apps can track. and also the fact that it's HTML and JavaScript instead of opaque assembly instructions makes ad blockers possible and cheap Installation is an integral part of using software, and a big the reason the web won and continues to win.
- rTX5CMRXIfFG 2y agoLol stop putting the web on a pedestal like we don’t have to go through hoops just to reject cookies
- stack_framer 2y agoThanks to Brave[0], I can't remember the last time I had to reject cookies. [0] https://brave.com/privacy-updates/21-blocking-cookie-notices/ https://brave.com/privacy-updates/21-blocking-cookie-notices...
- prmoustache 2y agoThe big problem with the software industry, is it is working with a developer first, not customer first approach. Every technology or process is chosen for the benefit of the developers, to save them time, not for the end user. Some will argue that it is indirectly benefitting the users who can get more features quicker. But most people care more about stability and not having to upgrade their computer yet again than features.
- franciscop 2y ago> "But most people care more about stability and not having to upgrade their computer yet again than features." Gonna need some data on that assertion, since there is surely some "balance point", that probably depends on the industry/software, it's not all to one or the other. As a personal example, these days I've been using Apple Pages (or whatever is called) and it crashes around once in an hour. But it has some features that allows me to quickly iterate over some document, so I am back to cmd+s as in the old days, vs using LibreOffice interface where it would take me an estimate 2x-5x more time.
- p0w3n3d 2y agoIn my opinion, the reason is purely economic. Writing software in web frameworks (even a phone app, which is often written in javascript and runs in a separate browser which takes up to 300MB of RAM at the very start) is much faster, has a less steep learning curve, shorter test loop, and faster and easier release cycle. Additionally, recently every company has tried to move to SaaS business because it's giving more steady income (pay 60$/month or 10$/month but with a promise to pay the whole year, which vendor-locks a user) While I've been involved in releasing both types of software (a ye olde Windows standalone app written in Qt framework and the new software that's being released every 2-3 days or so) I find the new way much less painful. I couldn't imagine releasing a Qt app in such a cycle (how to do updates? maybe like Minecraft - every other launch there's a new package of 64MB downloaded)... ...but as a user, I feel much more comfortable when code is on my computer, available for me to run. While extensively using Google Docs to share documents with my wife (calendar, spreadsheets) and band (songlist, lyrics), I'm scared that if I moved everything to on-cloud (paid mail, photo enhancing (thankfully I'm a standalone Lightroom buyer), vector graphics (inkscape user), photoshop (gimp user), etc.) one day I would hit the roof in payments of my per-month-but-bound-to-year plans. In 2030 it would be also netflix, shmetflix, televisionix, phonix, car-as-a-service, heated-seats-as-a-service, air-conditioning-as-a-service, toilet-as-a-service, smartwatch-as-a-service etc. building up to an unbearable rent for something that used to be free or paid once. I don't feel like my duty is to provide a constant supply of money to my beloved corporations
- manquer 2y agoWe have always been making more efficient software than ever before . It is just a different kind of efficient, there is economic incentive in making software development process more efficient and not that much incentive for making software itself efficient . Software development is more accessible to millions and millions of new developers due to the work on higher level languages, frameworks , IDEs , libraries , low code , copilots and so on . Each of these innovations made software development more efficient (not necessarily faster ) . Nobody buys or uses software because it is faster , only cheaper .
- miyuru 2y agoDoogle Docs is mentioned in the article, but Google Drive is way worse. Try to upload a folder with 20+ small files(say a picture galley) it takes a lot of time to process and upload them. If you add a new file to the folder and try to upload the folder, it will need to upload the whole thing again.
- TrackerFF 2y agoNot sure how bad it is these days, but a couple of years ago I was training a CNN and decided to just upload the data (images for training and testing) to my google drive folder - as I used google colab for development. It was slow as molasses - unusable, really, and we're not talking about huge amounts of data either. At least then, it seemed to be the google drive i/o that was the bottleneck, and the solution was to upload the training files to the colab session / VM.
- jillesvangurp 2y agoMaking software efficiently is more valuable than making more efficient software. Making software inefficiently takes a lot of time and people's time is expensive. A good example of an expensive use of time is optimizing something that doesn't really need optimizing. I know a lot of people go OCD on this stuff and I've been there and done that myself. But it mostly does not matter a lot in terms of value of the software. Anyone that can't be bothered to update their ten year old laptop because it's slow is also not going to spend a lot on faster software. There's just not a lot of money in optimizing stuff. And if you have a modern laptop, it doesn't really benefit a lot from the type of optimizations you'd do to make things run smooth on a ten year old laptop. Especially when optimizations are simply about turning stuff off that aren't really in the way on the faster laptop. Like having some cheap 3D effects, pretty colors and animations, etc. Anyway, I'm old enough to know that this is not a new debate. We never lost our way on this front. It was always like this even when computers were several orders of magnitude slower.
- p0w3n3d 2y agothe decision to shift towards web apps and electron apps is mostly because of the cheapness of the development, and binding to service-oriented architecture thus monthly payment... in other words: money
- jillesvangurp 2y agoThat kind of is the point. That's just the latest iteration of this. You could have made the same argument about writing a business application in visual basic vs. writing something in C/C++. The latter required more time and skills. Both of which cost money. Which is why visual basic was so popular. It's also why cobol caught on in the sixties even though there were more optimal things around even then. And hardware was still really expensive.
- p0w3n3d 2y agoHowever I could see a paradigm shift towards standalone apps if there was a proper language or C++ mod increasing its usability and easiness, AND there was no pressure to do so much on cloud-based. Also interoperability I guess is a problem (html really IS a consistent UI for every platform)
- vardump 2y ago33 MB file, that's probably docx, thus it's actually a ZIP'ped collection of XML-files. Could well be 200 MB uncompressed. Once all that XML is naively loaded as nodes, we might be talking about more than 1000 MB of RAM usage.
- nrvn 2y agoTLDR; the metrics that we are missing as an industry are: - how much computing power is needed to present a single useful bit of information to the user; - how much computing power is needed to process a single useful bit of information; - how much total data transfer is needed to transfer a single useful bit of information. of course to answer the above questions you need to give the definition to the term "useful single bit". And the hint here is: if we agree that - say - rainbow has 7 colors then the information about all 7 colors would take just 3 bits of data, wouldn't it?.. long story below: this questions pops up at least twice every year by someone completely frustrated by the current state of things in the computer industry. And if you think it is limited to only software side of things, then well... ignorance is bliss. Think of it from the incentives and rationale perspective. Whenever you encounter a bloated piece of software or an over-engineered hardware box put yourself into the shoes of the author of this. Once you delve into the details of why and how was any specific tool or technology created you can understand why it looks so bad. Some notorious examples of most hated programming languages were created in a very short period of time without any strategic thinking involved by people who had not had any experience with designing programming languages. And people continue with this pattern in all types of software driven by business requirements rather than their engineering and scientific aspirations and talent (or lack thereof) most of the time. In other words, bloated software is the result of time limitations imposed on developers. Efficiency, size, quality, stability and security go out of the window when you need to pursue other, more "important" goals. "We need to go ahead of the competition and the time to market is our priority. We'll cut corners and burn cash. No thorough think through, just do it." Another perspective is resource limitation. You as a developer have access to virtually unlimited computing, networking and storage resources. Remember this "memory is cheaper than developer's time" mantra? Now put yourself in the shoes of a NES game developer. You need to squeeze in the whole universe into 32kb, with graphics, music and gameplay that will look attractive and responsive running on a 1.8MHz single-core 8-bit CPU. Or put yourself into the shoes of the Voyager 1/2 team whose objectives are to keep a small piece of metal afloat in hostile environment for the next 50 years. With remote debugging capabilities, over-the-air software updates and continuous telemetry transmission back to Earth. If Brendan Eich had not been given just 10 days to draft the javascript specs would we see something different in the frontend world today? Or we'd still see the 10MB garbage being downloaded by every other website just for the sake of keeping the cables busy? And here is one of my favorite quotes by Alan Kay: "Think about it. HTML and the Internet has gone back to the dark ages because it presupposes that there should be a browser that should understand its formats. This has to be one of the worst ideas since ms-dos, this is really a shame. it's maybe what happens when physicists decide to play with computers."
- troyvit 2y agoSeems like a post on Medium is a little bit overkill when the answer is simply "Absolutely. Yes. No question. How could you think otherwise?" Is there some sort of micro-twitter they could've used instead?
- zrn900 2y agoYes: Endless amounts of investments and inflated stock prices enabled by the zero-interest economy caused the cash-awash tech organizations to become more like research institutions, churning out interesting, promising, but esoteric and complicated concepts and software that has scarce applications in the real world and business. They became a cross between actual companies that do business and extensions of grad schools. Like a continuation of the college that you went to. And some companies openly pursued that mix and advertised themselves as such to attract talent even. Now that the zero-interest economy is over, the entire tech sector is readjusting.
- fennecbutt 2y agoI don't mind many things being written in higher level languages and being less efficient, makes turnaround time cheaper. But what are companies doing with this fast turnaround time? Features suck and are largely incomplete in modern software. For example: Sonos speakers, if the WiFi goes down they don't reconnect. Why? Why is basically every device and every bit of software chock full of obvious stuff like that? Do we really need AI or something to tell us how to build something properly?
- ags1905 2y agoIMO the author of this article is right about what he is saying. And I am glad I am not the only one who sees the increased inefficiency of software and thus computers. Different times have different fashions and programming is also very influenced by fashion. But it seems like Free Pascal survived and Lazarus and fpc seem like a sane alternative, worth taking a look at.
- matricaria 2y agoA 30 MB doc file is a problem per se.