[HN Gopher] Fast machines, slow machines
       ___________________________________________________________________
        
       Fast machines, slow machines
        
       Author : _dain_
       Score  : 458 points
       Date   : 2023-06-28 08:53 UTC (14 hours ago)
        
 (HTM) web link (jmmv.dev)
 (TXT) w3m dump (jmmv.dev)
        
       | guy98238710 wrote:
       | Perhaps what's needed is hibernation for apps? Just let all apps
       | run forever and swap them out to disk when not in use. Hibernate
       | the whole system instead of shutting it down while at it.
        
       | davegauer wrote:
       | "Retrofitting performance into existing applications is very
       | difficult technically, and almost impossible to prioritize
       | organizationally."
       | 
       | While this may not be the _only_ explanation for why this trend
       | continues, I think it 's *spot on* to explain why this continues
       | in commercially-funded software.
        
       | mmazing wrote:
       | A few years ago, I was working with a team that was trying to
       | convert an entire API for a fairly straightforward application
       | into REST api microservices.
       | 
       | The architect wanted to break everything up into extremely small
       | pieces, small enough pieces that many were dependent on each
       | other for every single call. Think "a unified address service" to
       | provide an physical address via an identifier for anything that
       | had an address (customers, businesses, delivery locations, etc).
       | 
       | The problem was that it turns out when you're looking up a
       | customer or business, you always need an address, so the customer
       | service needed to hit the address service every time.
       | 
       | Disregarding the fact that this whole thing was a stupid design,
       | the plan was that when you hit the customer api, the customer
       | code would make internal http calls to the address service, etc.
       | 
       | I pointed out that this was a ton of unnecessary network
       | overhead, when all of this information was sitting in a single
       | database.
       | 
       | The whole team's argument was effectively - "it's 2015, computers
       | and networks are fast now, we don't need to worry about
       | efficiency, we'll just throw more hardware at it".
       | 
       | The whole thing ended up being scrapped, because it was crippled
       | by performance issues. I ended up rewriting the whole thing as a
       | "macroservice" which was 60000% faster for some particularly
       | critical backend processes.
       | 
       | Anyway ... I think that mentality is prevalent in a lot of people
       | involved in technology creation, technology has improved so much,
       | moore's law etc etc etc.
       | 
       | So let's not worry about how much memory this thing takes, or how
       | much disk space this uses, or how much processing power this
       | takes, or how many network calls. Don't worry about optimization,
       | it's no big deal, look at how fast everything is now.
        
       | pradn wrote:
       | It's clear that the biggest problem is companies prioritizing
       | their cost, at the expense of user experience.
       | 
       | But after that, the biggest problem is clearly the
       | framework/language you use. The maxim "premature optimization is
       | the root of all evil" has done damage here. The problem with
       | frameworks/languages is that by the time you finish your features
       | and profile your code, you're already doomed. There's no way to
       | speed up the entire framework/language, because it's part of
       | everything you do - death by a thousand cuts. Nothing you do can
       | improve upon the fundamental fact of running in an interpreter,
       | with a garbage collector, with complex layout calculations (a la
       | HTML/CSS instead of Win32), or with major choices like processes
       | over threads, sync IO over async IO.
        
         | ruuda wrote:
         | Actually I suspect unnecessary use of async IO is what makes
         | many Rust applications slow. It surely makes things slower to
         | compile (+100s of crates dependencies for the Tokio ecosystem),
         | it makes the binaries bigger, which in turn makes the
         | application slower to cold start and download.
        
         | Nimitz14 wrote:
         | Isn't all this stuff written in C++? I suspect the slowness is
         | bad system design.
        
         | syntheweave wrote:
         | Well, there is a step beyond framework hell that can work,
         | which is "living inside your own black box"[0]. This strategy
         | intentionally supersedes the lower-level abstraction layers
         | with a higher-level, application-focused one that eases
         | rewriting the underlying stack "sometime down the road". It's
         | nearly the only way you can get that.
         | 
         | But it does require a good understanding of what the
         | application is and does, and a lot of software isn't that: it's
         | just more stuff that has a behavior when you click around and
         | press keys.
         | 
         | [0] https://prog21.dadgum.com/66.html
        
       | jeffbee wrote:
       | Not that I disagree with the core point that some software gets
       | worse over time, but I don't think it is valid to say that users
       | have not benefitted from the ease of development afforded by
       | Electron. Spotify has maintained its nominal price at $9.99 for
       | 12 years, meaning its real price has fallen by one third. I don't
       | know anything about Spotify or why they spend over a billion
       | dollars in R&D each year, but if lack of attention to UI
       | performance has helped cut their development costs then users
       | might be benefitting through lower prices.
        
         | mrkeen wrote:
         | > I don't know anything about Spotify or why they spend over a
         | billion dollars in R&D each year
         | 
         | Standups, one-on-ones, team fika, NIH, retros, agile retros,
         | incident post mortems, cross-team fika, town halls,
         | pool/billiards, table-tennis, and testing-in-prod.
        
       | qsantos wrote:
       | > For example: you might not want to use Rust because its steep
       | learning curve means you'll spend more time learning than
       | delivering
       | 
       | Related to that, it might not actually be the case:
       | https://news.ycombinator.com/item?id=36495667. Key takeaway:
       | 
       | > Rumor 1: Rust takes more than 6 months to learn - Debunked !
       | 
       | > All survey participants are professional software developers
       | (or a related field), employed at Google. While some of them had
       | prior Rust experience (about 13%), most of them are coming from
       | C/C++, Python, Java, Go, or Dart.
       | 
       | > Based on our studies, more than 2/3 of respondents are
       | confident in contributing to a Rust codebase within two months or
       | less when learning Rust. Further, a third of respondents become
       | as productive using Rust as other languages in two months or
       | less. Within four months, that number increased to over 50%.
       | Anecdotally, these ramp-up numbers are in line with the time
       | we've seen for developers to adopt other languages, both inside
       | and outside of Google.
       | 
       | > Overall, we've seen no data to indicate that there is any
       | productivity penalty for Rust relative to any other language
       | these developers previously used at Google. This is supported by
       | the students who take the Comprehensive Rust class: the questions
       | asked on the second and third day show that experienced software
       | developers can become comfortable with Rust in a very short time.
        
         | kohlerm wrote:
         | Builds are unbelievable slow ...
        
           | qsantos wrote:
           | That's not the point from the quote, and it is actually
           | discussed in the Google article
        
         | Teckla wrote:
         | > All survey participants are professional software developers
         | (or a related field), employed at Google.
         | 
         | This is not even remotely a good representational sample of
         | software engineers.
        
         | escape-big-tech wrote:
         | This is also my experience. I was ok in rust after using it for
         | 2 weeks, I still had the weird issues here and there, sometimes
         | but after just using it for as little as one month I started
         | feeling confident enough in it where I could develop anything
         | given enough time. Now after almost a year, there is no
         | language i'd rather use than rust
        
       | sacnoradhq wrote:
       | Windows 2000 was later corrupted by XP-ification. The primary
       | difference was 2000 was "NT 5", where the Explorer UI appeared to
       | be split between foreground and background components. XP threw
       | this away and went with the Windows 9x/ME shitshow as late as
       | Vista. Windows Server 2003 (Whistler Server) was better than XP
       | (Whistler) and was mostly an improved Windows 2000 (originally
       | named NT 5 in the source code). I would generally consider using
       | Windows Server 2003 for workstations instead of Windows XP
       | because of its close compatibility with the latter. Windows XP
       | Professional x64 (amd64) and Windows XP 64-Bit Edition [ia64]
       | existed but didn't find many takers except in retro systems and
       | niches where they had HP Itanium machines.
        
       | louismerlin wrote:
       | These kinds of realizations have made me look into permacomputing
       | [1], suckless [2] and related fields of research and development
       | in the past few months.
       | 
       | We should be getting so much more from our hardware! Let's not
       | settle for software that makes us feel bad.
       | 
       | [1] http://www.permacomputing.net/
       | 
       | [2] https://suckless.org/
        
         | lofatdairy wrote:
         | I use Suckless terminal myself, but if I'm not mistaken it's
         | actually not the fastest terminal out there, despite its
         | simplicity[^1]. My understanding is that many LOCs and complex
         | logic routines are dedicated to hardware/platform-specific
         | optimizations and compatibility, but admittedly this type of
         | engineering is well beyond my familiarity.
         | 
         | Also, OpenBSD's philosophy is very similar to Suckless. One of
         | the more notable projects that come to mind is the `doas`
         | replacement for `sudo`.
         | 
         | [^1]: This is based on Dan Luu's testing
         | (https://danluu.com/term-latency/). I don't know when this
         | testing was done but I assume a few years ago because I
         | remember finding it before.
        
           | systems_glitch wrote:
           | I love that Alpine Linux adpoted `doas`
        
           | juped wrote:
           | I'm somewhat offended on behalf of OpenBSD! doas is a good
           | program written for good reasons (cf.
           | https://flak.tedunangst.com/post/doas). Suckless sudo would
           | ensure it was as painful as possible to use, so suckless fans
           | feel like cool sysadmin hackers setting it up. (Just compile
           | in the permitted uids lol!)
        
         | systems_glitch wrote:
         | Yeah, totally possible to get excellent results with older
         | hardware, and really stellar results with very new hardware, if
         | you're running stuff that's not essentially made to be slow.
         | 
         | I basically only upgrade workstations due to web browsers
         | needs, and occasionally because a really big KiCAD project
         | brings a system to a crawl. At this point even automated test
         | suite runtimes are more improved by fixing things that stop
         | test parallelization from working efficiently vs. bigger
         | hardware.
        
           | samstave wrote:
           | I am constantly dumbfounded with the fact that the majority
           | consumer of memory on my machine is a FN web browser! (that
           | said, I * _do*_ have basically like 30 tabs open at any given
           | time...
           | 
           | (It would be cool if dormant tabs can just hold the URL, and
           | kill all memory requirements when dormant after N period of
           | time..)
           | 
           | But heck, even when I am running a high-end game on my
           | machine, the memory consumption is less than when I have a
           | bunch of tabs open displaying mostly text ...
        
             | twism wrote:
             | i think edge and chrome have started doing this recently
        
             | Teckla wrote:
             | _(It would be cool if dormant tabs can just hold the URL,
             | and kill all memory requirements when dormant after N
             | period of time..)_
             | 
             | The problem with this is that _a lot_ of web pages don 't
             | handle this gracefully. You don't end up back where you
             | left off!
             | 
             | It would be nice if all the details of the inactive web
             | page were saved to storage, and then retrieved from storage
             | when the tab is reactivated, without having to make any
             | network calls at all.
        
               | [deleted]
        
             | nine_k wrote:
             | I have a hundred tabs open in my Firefox. They are
             | structured by Tree Style Tab, and most of them are
             | offloaded by Auto Tab Discard.
             | 
             | This gives me a way to instantly switch between contexts
             | (with a small delay if a tab has to be reinstated from
             | cache). This is how bookmarks should really work.
             | 
             | This us why Firefox is not the biggest memory hog on my
             | system. Most of the RAM is consumed by language servers and
             | Emacs.
        
               | stuaxo wrote:
               | I wish Android Firefox was as well behaved, beyond a
               | certain amount of tabs new ones don't really load until I
               | shut some, it's been like that for years, on different
               | phoned and different android versions. The amount I can
               | keep open seems to increase as phones get better.
        
               | eviks wrote:
               | Indeed, tab-based navigation has less friction, no need
               | to recreate some other order in another UI, and
               | offloading should deal with resource use (workspaces in
               | Vivaldi also helped reduce the clutter a lot along with
               | tab groups)
        
             | drivers99 wrote:
             | Small tangent: I wonder what people are seeing when they
             | say they have "too many" tabs open.
             | 
             | I had over 1000 tabs open in Firefox (macOS) and never
             | noticed any problems. (Trying to clear them out. Down to
             | 920 now.) 2.26 GB out of 32.00 GB is used by Firefox. I
             | have about 70 open in Chrome (since only a certain number
             | fit on the screen) and it's split across 12 processes which
             | are between 12 MB and 158 MB each. I have nearly 500 tabs
             | open (because that's the limit) on my iPhone and iPad each,
             | in Safari.
        
               | systems_glitch wrote:
               | Same, I was around 1500 tabs across three windows when I
               | finally moved from the HP Z420 workstation I'd been using
               | as my primary sometime around JAN 2023. Machine was fine
               | with it.
        
               | imran-iq wrote:
               | This is what I see on a linux machine with only 6GB of
               | ram: https://blog.imraniqbal.org/ram/
               | 
               | (TL:DR OOM errors and the kernel starts reaping
               | processes)
               | 
               | Just seems so odd as I remember playing gta vice city on
               | a pentium 3 with 128mb of ram and now I need 6GB+ to just
               | browse the web
        
               | marttt wrote:
               | Just curious: what kind of workflow results in having
               | over 1000 tabs open? (Oldschool Unix hobbyist here, so I
               | always feel like drowning when I'm nearing 20+ tabs. :)
        
               | eviks wrote:
               | That feeling completely disappeared with workspaces in
               | Vivaldi (though for me the discomfort started with maybe
               | around twice as many, vertical layout with more smaller
               | tab height helped)
        
               | drivers99 wrote:
               | For work:
               | 
               | Mainly just not having a workflow of going back to close
               | them. So it's just previous work like a view of some
               | logs, a merge request, a link to a file in a repo, a
               | monitoring dashboard, an alert in a monitoring system,
               | etc.
               | 
               | In Chrome, I do end up closing them eventually because
               | there's no more space to work.
               | 
               | For personal:
               | 
               | it's more like a bookmark, but don't often review them
               | rather than open a new tab to research whatever I'm
               | currently curious about.
        
               | sudobash1 wrote:
               | Not OP, but opening almost every link as a new tab, and
               | keeping old tabs around because you don't have a great
               | bookmark organization system.
               | 
               | I am trying to break myself of these habits, but they do
               | have some benefits. For instance when I do a web search
               | on a complex topic, I often scan the results, opening the
               | most promising looking results as tabs. Then I look
               | through the tabs comparing them. The trouble is I never
               | remember to close them when the task is done.
        
               | samstave wrote:
               | huh... WTF do you have 500 tabs open for?
               | 
               | I usually carry 3 sets of tabs, typically around ~10
               | each:
               | 
               | Personal info sites, like reddit and its links...
               | 
               | Tech Sites, like HN and its links....
               | 
               | Video Sites, like Nexflix / Prime...
               | 
               | EDIT:
               | 
               | Also - what tab-mgmt extensions do you use? Like Tab
               | Grouping etc...
               | 
               | Also - one of the things I attempted to do, but failed to
               | do so consistently, was to swipe to a different desktop
               | between, work, person, and learning/browsing... instead
               | of tab groups I had "workspaces" but that is a hard habit
               | to build, for me, it seems.
        
               | abwizz wrote:
               | i ususally keep tabs open to retain the context because i
               | am too lazy for bookmarks.
               | 
               | yea, tab-grouping is essential. (tabkit in the good old
               | days, sideberry currently)
        
               | samstave wrote:
               | > _i ususally keep tabs open to retain the context_
               | 
               | This is the way I do it as well - but I cant hold ~500++
               | 'context' threads in my head...
               | 
               | I typically hit a tab and wind up here:
               | https://i.imgur.com/KWmVAD0.jpg
        
               | abwizz wrote:
               | > I had over 1000 tabs open in Firefox
               | 
               | this is me
               | 
               | > 500 tabs open (because that's the limit) on my iPhone
               | 
               | that's my wife
        
               | antisthenes wrote:
               | Technically, all the bookmarks you have are hibernating
               | tabs.
               | 
               | There's a whole spectrum of activity you can have on a
               | tab, and to me I see really no difference between
               | "unhibernating" a tab and just reloading it from scratch.
               | 
               | Either one is very slow in modern crap software.
               | 
               | Unless it happens under 150ms, it is slow.
        
               | lloeki wrote:
               | I would expect thawing a tab to present me with the tab
               | as it was last time I saw it, no reload; whereas, being a
               | link, I'd expect a bookmark to load the current version.
               | 
               | ... Actually the latter is incorrect, in truth I'd expect
               | bookmarks to present me with the exact version I had in
               | front of me back when I bookmarked it, including if the
               | site is temporarily down, has vanished, or if I navigated
               | a more recent version.
        
             | c22 wrote:
             | I turned off JavaScript one day and found my browser memory
             | woes completely evaporated. Now I turn it on per site on a
             | case by case basis and it's easy to figure out which sites
             | leak a lot and prepare accordingly.
        
         | samstave wrote:
         | I really like the idea of permacomputing.
         | 
         | WTF happened to all the THOUSANDS AND THOUSANDS of machines I
         | deployed to datacenters over the decades? Where are the F5 load
         | balancers I spent $40,000 on per box in 1999?
         | 
         | I know that when we did Lucas' presidio migration, tens of
         | million$ of SGI boxes went to the ripper. That sucks.
         | 
         | edit:
         | 
         | All these machines could be used to house a 'slow internet' or
         | 'limited interenet'
         | 
         | Imagine when we graduate our wealth gap to include the
         | information gap - where the poor only have access to an
         | internet indexed to September 2021 - oh wait...
         | 
         | But really - that is WHAT AI will bring: an information gap:
         | only the wealthy companies will have real-time access to
         | information on the internet - and all the poor will have
         | outdated information that will have already have been mined for
         | its value.
         | 
         | think of how HFT network cards with insane packet buffers, and
         | private fiber lines gave hedgies the microsecond advantages on
         | trading stocks...
         | 
         | Thats basically what AI will power - the hyper-accelerated
         | exploitation of information on the web via AI - but the common
         | man, will be releagated to obsolete AI, while the @sama people
         | of the world build off-planet bunkers.
        
           | systems_glitch wrote:
           | Occasionally I end up with a truckload of gear from things
           | like that. The circumstances that saved it from shredding are
           | usually something like Founding Engineer X couldn't stand to
           | see all that nice workstation stuff go in the trash so he
           | kept it in his garage for 25 years and now his kids are
           | selling it.
        
         | mike_hock wrote:
         | > suckless
         | 
         | Mind you, the software we had 20 years ago was _fully
         | featured,_ smaller and faster than what we have today (orders
         | of magnitude faster when adjusted for the increase in hardware
         | speed).
         | 
         | Suckless, on the other hand, is impractical esthetic minimalism
         | that removes "bloat" by removing the program. I'd rather run
         | real software than an art project.
         | 
         | If you want more from your hardware, the answer is neither the
         | usual bloatware, nor Suckless crippleware.
        
           | systems_glitch wrote:
           | Solid point, but some of the suckless stuff is pretty good, I
           | use `dmenu` with i3 and often run the `st` terminal.
        
             | nvy wrote:
             | st is actually one of the worst terminals available. For
             | all their purported minimalism, it has abysmally bad
             | performance. See https://danluu.com/term-latency/
        
               | systems_glitch wrote:
               | Huh, interesting. Never noticed. Might have something to
               | do with pretty regularly using actual serial terminals. I
               | don't know how the testing under Mac OS X affects it -- I
               | only run it under Linux and OpenBSD, on OS X I just use
               | the OS X terminal. Anyway, `st` does its job for me!
               | 
               | "Worst" for me is stuff that grabs keys it shouldn't,
               | scrolling that doesn't work right with `screen` and/or
               | `tmux`, etc.
        
           | juped wrote:
           | I have thought for a while that suckless might literally be a
           | piece of performance art.
        
         | Karrot_Kream wrote:
         | It's funny, the older I get the less I care about this stuff. I
         | like to use technology to, well, live my life in a more
         | effective, effort-free manner. I have lots of friends who
         | aren't other nerdy techies. In high school I refused to use
         | "proprietary, inefficient WYSIWYG garbage that disrespected the
         | user" like Word and typed up all of my essays in LaTeX instead.
         | Now I get accounting spreadsheets for vacations going on my
         | smartphone using Google Sheets. I still love writing code but
         | my code has become more oriented around features and
         | experiences for myself rather than code for the sake of code.
         | 
         | I love exploring low-latency code but rather than trying to
         | create small, sharp tools the suckless way, I like to create
         | low latency experiences end-to-end. Thinking about rendering
         | latency, GUI concurrency, interrupt handling, etc. Suckless
         | tools prioritize the functionality and the simplicity of code
         | over the actual experience of using the tool. One of my
         | favorite things to do is create offline-first views (which
         | store things in browser Local Storage) of sites like HN that
         | paper over issues with network latency or constrained bandwidth
         | leading to retries.
         | 
         | I find suckless and permacomputing to be the siren song of a
         | type of programmer, the type of programmer who shows up to give
         | a presentation and then has to spend 10 minutes getting their
         | lean Linux distro to render a window onto an external screen at
         | the correct DPI, or even to connect to the wifi using some
         | wpa_supplicant incantations.
        
           | Aerbil313 wrote:
           | It's the cycle and not just in software. Younglings are
           | idealists and try a thousand things, some of which happen to
           | change and improve the ever-turning wheel of software, while
           | elders turn the wheel and ensure the system, practices and
           | knowledge continue and get transferred.
        
           | GingerMidas wrote:
           | Fully agree. When I was younger I used to care more about
           | privacy, and would use nothing but FOSS apps and OSes no
           | matter how much it inconvenienced me.
           | 
           | There's a significant opportunity cost for zealotry.
        
           | anthk wrote:
           | OpenBSD it's just "sh /etc/netstart if", where if is the
           | network interface once you set /etc/hostname.if
           | 
           | No WPA incantations, the OS handles multiple connections
           | seamlessly.
           | 
           | With that, magicpoint/sent and xrandr you just don't care, it
           | works.
        
       | sharikous wrote:
       | It's one of the things that are infuriating for technical folks
       | but meh for everybody else.
       | 
       | In the days of programs taking forever to load or web pages
       | downloading images slowly we _knew_ what technical limitations
       | were there.
       | 
       | Now we _know_ how much sluggishness comes from cruft, downright
       | hostility (tracking), sloppy developer work, etc.. we know this
       | is a human problem and that angers us.
       | 
       | But for non-technical people it hasn't changed too much.
       | Computing wasn't super pleasant 25 years ago and it's not now.
       | Instead of waiting half a minute for Word to load they wait 4-5
       | seconds for Spotify to load. They were never interested in
       | Notepad or Cmd or Paint. It doesn't bother them that now they
       | open slower than in 1999.
        
         | jtriangle wrote:
         | The thing is, users do care, they just don't understand how to
         | articulate it. The Doherty threshold is real, and it's baked
         | into our physiology as humans.
         | 
         | So it does bother them, it's not 'meh', it's just the status
         | quo. Every once in awhile you run across an application or
         | website that's fast, and it's jarring how much better it feels
         | to use. That's something worth striving for.
        
         | nneonneo wrote:
         | I've literally started using Word and Excel less often because
         | of just how long it takes them to start up. Like, I just want
         | to write a quick document or edit my CV, why do I have to sit
         | here and wait for 10-20 seconds??
         | 
         | Electron apps don't have to be shit; VS Code demonstrates this.
         | But the VS Code people are also insanely performance-focused;
         | your average app developer does not care.
        
         | FemmeAndroid wrote:
         | The strange thing for me is how much time we spent in the early
         | 2000s discussing website responsiveness and quick loading times
         | as ways to improve user engagement and productivity. Although I
         | can't provide any statistics that I'm intimately familiar with,
         | I recall reading numerous case studies where improvements in
         | responsiveness resulted in significant productivity gains for
         | end users. If I recall correctly, this wasn't just about dial-
         | up connections and multi-second page loads. This belief was
         | still prevalent even when discussing sub-second responsiveness.
         | 
         | Perhaps the direction of the case studies started to shift, and
         | we stopped hearing about it. However, it seems to me more like
         | we pushed hard to reach a certain level of speed in our
         | computer usage, then became complacent, and have been
         | regressing ever since.
        
           | sigg3 wrote:
           | I don't have any data on it but I think people gradually came
           | to accept the slower loading times as a reasonable cost, in
           | return they got true multimedia and the fat client experience
           | (first with flash, then jquery and so on) which was
           | impossible in hypermedia.
           | 
           | Currently node unifies (or seems to unify) the FE and BE into
           | something that looks pretty worrying (or rather alien) to
           | someone who grew up with LAMP stack and CGI for dynamic
           | content.
           | 
           | Enter htmx to turn the tide again.
        
             | _dain_ wrote:
             | _> Enter htmx to turn the tide again. _
             | 
             | Doesn't htmx use server side rendering for everything? So
             | every interaction incurs a network roundtrip?
        
         | grishka wrote:
         | It's very surprising to me how much non-tech people are willing
         | to put up with. They'd patiently wait for their phone to freeze
         | for a solid 5 seconds because they installed an antivirus on
         | it, and then proceed to try to use it at 2 FPS.
         | 
         | The quality bar is so low now, it went underground. It's so
         | easy to compete with the status quo. You just pretend that all
         | the "progress" that happened in software development
         | technologies over the last 15 years didn't happen. And, most
         | importantly, you treat JS as a macro language for a glorified
         | word processor and don't try to build actual applications with
         | this stack.
        
           | yafbum wrote:
           | Latency is one of the things my iPhone owning friends
           | complain the most about when they try another phone (usually
           | a Samsung loaded to the brim with bloatware)
        
             | vladvasiliu wrote:
             | This. My daily driver is a geriatric iphone 7. When I
             | bought a new Galaxy A33 a few months ago for my mum, I took
             | it for a spin for a day. I was shocked by how much lag
             | there was, for example when scrolling. I know the A33 is a
             | low-maybe-mid-tier phone. But it was brand new, whereas I
             | bought my iPhone used in 2017 when the 8 was already out
             | and maybe even the X (if not, it was right around the
             | corner).
             | 
             | It actually was a very weird feeling because the scroll
             | itself was way smoother than on the iphone, probably thanks
             | to the somewhat higher refresh rate. But there was a
             | noticeable and weird lag between my finger movement and the
             | screen contents moving. Also, scrolling would sometimes
             | randomly glitch for no reason in basic apps, like the
             | settings.
        
               | Aerbil313 wrote:
               | What's the situation for new iPhones? Is the compute
               | power of chips more powerful than my computer eaten away
               | by software latency? I'm thinking about buying one. My
               | iPhone 7 only started to _very sligthly_ lag after the
               | iOS 16 released and its update lifetime ended. I 'm still
               | using it. I don't even notice the lag if I don't pay
               | special attention.
               | 
               | And no, I'm not an Apple fanboy, rather a NixOS nerd but
               | I need a phone that reliably works.
        
               | freeone3000 wrote:
               | The lack of latency comes from decisions at every layer
               | of the stack -- apps don't control scrolling or layout,
               | the OS does. iOS is consistently responsive to user input
               | throughout all versions and levels.
        
               | pclmulqdq wrote:
               | My rooted A53 is pretty snappy, but it was pretty slow
               | out of the box. It turns out the bloatware makes a huge
               | difference.
        
               | andrepd wrote:
               | My 7-year old phone (2016) with Lineage and no Google
               | junk is faster than my dad's brand new 500EUR Samsung.
        
               | llbeansandrice wrote:
               | My Xs is still fantastic except on battery life generally
               | or if it gets hot at all (sun, charging, running shit
               | apps). My main issue is Google Maps kills my battery life
               | faster than anything else except maybe scrolling through
               | Instagram reels.
        
           | vladvasiliu wrote:
           | I'm even more amazed at my IT colleagues (so "tech" people)
           | putting up with windows' doing god knows what constantly. We
           | have the exact same machines, yet mine somehow basically
           | never has its fan on running Linux and compiling Rust,
           | whereas theirs is often audible while running Windows with a
           | couple of chrome tabs open and outlook.
           | 
           | They also don't bat an eye when lazy devs recommend we should
           | reboot the servers daily. They put up with laggy VNC when
           | they have a perfectly good remote desktop solution set up.
           | 
           | I guess, if it sorta kinda works, people just get used to it.
           | The fans blowing like a jet engine. Apps taking forever to
           | load. Windows getting stuck for no discernible reason.
        
             | Merad wrote:
             | > We have the exact same machines, yet mine somehow
             | basically never has its fan on running Linux and compiling
             | Rust, whereas theirs is often audible while running Windows
             | with a couple of chrome tabs open and outlook.
             | 
             | I think some of this is just poor defaults. Every windows
             | laptop I've had in the last 10 years has defaulted to a
             | thermal management profile that ran the fans aggressively.
             | Usually you have to install some crapware from the
             | manufacturer (it's "Dell Optimizer" on my current machine)
             | that allows you to change the thermal profile to quiet
             | mode, and it's totally fine after that.
        
             | andrepd wrote:
             | I have to put up with laggy VNC sadly, but not by choice.
        
           | daniel_reetz wrote:
           | Many non-technical users assume blame for slowness and
           | clunkiness. So many times I've heard self-blame when helping
           | out family. "I shouldn't have so many pictures on my desktop"
           | (there are 8 pictures). "I just can't figure out these
           | phones" phone is dark patterning or has hidden functionality
           | six menu items deep and behind a swipe/long press. "I never
           | should have let it update, it's never been the same" - a
           | forced update.
        
             | sumtechguy wrote:
             | I have heard that gem for about 2 decades now.
             | 
             | When the reality is more cpu/memory usually cleared things
             | up. In the old times a good defrag did not hurt either.
             | 
             | People blame themselves when a lot of the time it is rubish
             | software/hardware.
             | 
             | Then you have the other side of that coin. The yes
             | clickers. If it asks a question just answer it however you
             | need to do for whatever it is you wanted to work.
             | Surprising number of dark patterns on that gem... Then they
             | hand it to you and expect a miracle in 5 mins. Sorry this
             | is the first time I have every seen something like this it
             | may take me a few mins to figure out what is wrong before I
             | can even begin to fix it.
        
             | andrepd wrote:
             | Oh the "too many pictures" thing is a favourite of my older
             | relatives. They think it must be "weighing it down" or
             | something and they have to delete pictures to make it go
             | faster.
        
               | nneonneo wrote:
               | On the flip side, I recently visited a local tourist
               | attraction, where a visitor asked me to take a photo for
               | him - and then promptly had to spend 2 minutes deleting
               | files on his phone because he'd literally run out of
               | storage space and his phone wouldn't let him take another
               | photo. Bit of an awkward moment!
        
           | rickmode wrote:
           | I agree though I'd say non-technical people are naive and so
           | don't know why the experience is not ideal or fun or smooth.
           | I suspect if asked the right questions, non-technical people
           | would also complain.
           | 
           | Computers have always been just useful enough for as long as
           | I've used them (since the 80s). We've _always_ put up with a
           | lot of nonsense and pain because the alternative is worse.
        
         | [deleted]
        
       | chickenfeed wrote:
       | I have mostly old hardware (the best computers I have is a
       | smartphone and a macmini from 2012). I'm disappointed when I load
       | newer Linux distros and they appear slower. Even though I now
       | have SSDs. Browsers are really greedy. I have a machine with 2GB
       | of ram and a single core CPU. It's a low power rig. But cannot
       | run Windows 10, it just about did when I first installed it.
       | Debian runs better, but a browser kills it. It's a one app only.
       | We had someone donate us a Windows 3.1 rig once, at the time we
       | had 600MHZ Windows 2000 machines and ME. And we were gob smacked
       | at how fast the 3.1 machine was on some ancient hardware.
       | 
       | Windows always used to have that fresh lightweight install vibe.
       | But as soon as it started indexing, doing updates, and virus
       | scanning it would drag to nothing. Along with all those system
       | tray apps that would take an age to fire up.
       | 
       | Partial suspend to disk made things boot faster. Like not doing
       | the whole driver scan thing on boot. I don't know if Linux has
       | ever taken this on board. It's a blessing and a curse as Windows
       | doesn't like being ported to another machine, whereas my Debian
       | disks I can swap between some desktops and laptops without much
       | issue.
       | 
       | There's also that weird delayed animation thing, that is meant to
       | feel like polish. But slows down desktops. Weird animation
       | effects and what not. I tend to run XFCE and turn off any thing
       | like that.
       | 
       | I'm using a Chromebook right now and this is an old machine, but
       | still feels pretty snappy. Certainly weird and wonderful
       | experiences between hardware. I have High Sierra on an SSD on my
       | Mac Mini, and that's slower by far to boot than my Linux Arch box
       | on the same age hardware. Having said that the UI always feels
       | more responsive as it's tailored for that.
       | 
       | Linux suffers lots for me with kcompactd or whatever it is. Some
       | weird memory disk swap stuff. If I accidentally code an infinite
       | loop my machine turns to complete mud, and takes about 5 minutes
       | to recover. Whereas it boots to the browser in under 1minute.
       | Weird huh?
        
         | schemescape wrote:
         | > I have a machine with 2GB of ram and a single core CPU. It's
         | a low power rig. But cannot run Windows 10, it just about did
         | when I first installed it. Debian runs better, but a browser
         | kills it. It's a one app only.
         | 
         | I put Alpine Linux on my laptop that has 1 GB of RAM and I can
         | actually have a lot of stuff running at once, especially in the
         | terminal (Emacs, SBCL, w3m, Deno).
         | 
         | But yes, opening Firefox consumes all available RAM until I
         | have to power off the machine, sadly. The lightest weight, but
         | functional browser, I've found is Midori, but I probably
         | wouldn't trust it for, say, accessing my bank account.
         | 
         | It's depressing because I was initially blown away at how fast
         | (and productive) old hardware can be... until I tried to use
         | the web.
        
       | remus wrote:
       | It'd be a pretty big task, but it would be very cool to see a
       | comparison of where the both computers are spending their time.
       | 
       | Clearly the modern machine is slower while still being
       | significantly more powerful so it's doing a lot more stuff, but
       | how valuable is that stuff?
        
         | jmmv wrote:
         | It'd be cool indeed, but it's a humongous task :)
         | 
         | One of the reasons I showed the Surface Go 2 tablet is because
         | it is running the Microsoft out-of-the-box experience. So...
         | I'd expect 1. for it to behave nicely and 2. for Microsoft to
         | have profiled and optimized this. It is true that Windows 10
         | (the version that originally shipped with it) behaved better,
         | but not by much. In any case, the Surface Go 3 is a
         | contemporary computer with Windows 11 and people quote it as
         | only being 15% faster than the Go 2, so it's not going to be
         | substantially better than what I showed.
         | 
         | Apple has traditionally fared better in this regard. In
         | general, any new computer model they launch runs the
         | contemporary OS version perfectly well, even if the newer OS
         | does more stuff.
         | 
         | I also question whether all of the "extra stuff we do today" is
         | valuable though... but the answer will depend on who you ask.
        
       | majormajor wrote:
       | > Nobody prioritizes performance anymore unless for the critical
       | cases where it matters (video games, transcoding video, and the
       | like). What people (companies) prioritize is developer time. For
       | example: you might not want to use Rust because its steep
       | learning curve means you'll spend more time learning than
       | delivering, or its higher compiler times mean that you'll spend
       | more time waiting for the compiler than shipping debugging
       | production. Or another example: you might not want to develop
       | native apps because that means "duplicate work", so you reach out
       | for a cross-platform web framework. That is, Electron.
       | 
       | Small but important disagreement IME: what companies prioritize
       | is _time to market_ which is often the same as developer time but
       | importantly different in one key way: it means it 's no longer an
       | issue of "lazy developers" but it's a market question of "what
       | will users tolerate."
       | 
       | I don't say that just to shift blame, but because it's really key
       | to understanding what's going on - as the article notes,
       | performance "where it matters" has gotten better and better over
       | time.
       | 
       | We also have a few other improvements in the last two decades
       | that have made things like "app startup time" less important for
       | the market: OSes that don't need to be restarted every day, and
       | enough RAM (and good enough memory management) to manage running
       | a ton of open apps/windows/tabs without manually quitting and re-
       | opening apps all the time.
       | 
       | Would you pay more for a Notepad that opened in 0.1s instead of
       | 2.0s or whatever? Would you give up other features? Certainly a
       | lot of people on HN likely would - and many probably already are
       | running Linux (hell, I am on one of my machines as a daily
       | driver) which hasn't had the same "ship features fast!!"
       | pressures.
       | 
       | Maybe one year Apple will do another Snow Leopard, or MS will do
       | something similar -
       | https://www.macworld.com/article/191006/snowleopard-3.html - but
       | right now most folks I know are enjoying the features, even the
       | ones that we power users often find superfluous or downright
       | annoying.
        
       | guy98238710 wrote:
       | The more I keep thinking about this the less I am inclined to do
       | any optimizations. This is operating system problem. OSes are
       | supposed to implement proper sleep modes for apps instead of
       | mindlessly restarting them.
       | 
       | Don't throw this on devs. Attempting to fix the problem on dev
       | side would cost billions of dollars worldwide and it would
       | probably fail. Meanwhile, proper app sleep modes across all OSes
       | is a comparatively small million-dollar project.
       | 
       | Personally, I am not going to invest a single second of my time
       | into optimizations of app launch if I can avoid it. If you are
       | bothered by app launch performance, go hack app sleep states into
       | Linux or other free OS instead of shouting at devs.
        
       | jacknews wrote:
       | "macOS ... the desktop switching animation is particularly
       | intrusive, oh god how I hate that thing"
       | 
       | Why oh why won't Apple let you turn this off? It annoys if not
       | nauseates so many people.
       | 
       | This is is just one example, but indicative of their mindset, why
       | I dislike Apple, and use linux whenever I can. It's such a
       | calming joy to switch instantly between desktops without the
       | rushing-train effect.
        
         | arjunbajaj wrote:
         | Go to Settings -> Accessibility -> Display, turn on Reduce
         | Motion.
         | 
         | This makes the train effect go away, but there is still another
         | very slight fade-away effect when switching desktops, albeit
         | much less annoying.
        
           | rogual wrote:
           | If you switch that on, it also disables the zoom effect when
           | you use Expose, which makes that feature _more_ disorienting.
           | You can 't win!
        
           | dlisboa wrote:
           | Problem with that is that it's global. It can even affect
           | websites if they use a media query for it. I'm ok/enjoy the
           | other animations (I rarely see them, but appreciate when they
           | happen), the only animation I wanted to disable was the
           | desktop switch one.
           | 
           | It was once possible I think, but it seems that's impossible
           | on new versions of macOS. Spaces are unusable because of that
           | as a programmer. I'd love to have a terminal in one space and
           | browser in the other, but the delay in switching between both
           | is very noticeable and considering how many times I'd do that
           | it'd probably take minutes off my day.
        
             | arjunbajaj wrote:
             | Yes, it is global. Even running `matchMedia("(prefers-
             | reduced-motion)")` in the browser console returns true. I
             | see no way of disabling reduced motion only for Safari
             | either.
             | 
             | That being said, if you do decide to use spaces, I want to
             | point out a MacOS setup that would help you to keep apps on
             | different spaces and have an experience (slightly) closer
             | to i3wm and other window managers.
             | 
             | First, you should create 10 spaces. Then go to Settings ->
             | Keyboard -> Keyboard Shortcuts -> Mission Control -> Expand
             | the Mission Control dropdown. You'll see options to set
             | keyboard shortcuts for each workspace there. I've set it to
             | Option+{1-9, 0 for 10}.
             | 
             | Then just open some of the permanent apps you use, and
             | right click on their Dock icon -> Options -> Assign to this
             | desktop. I keep the browser in workspace 1, and messaging
             | app in workspace 10.
             | 
             | I know this isn't the best solution, but behind crazy-
             | hidden settings, it is possible to get a pretty decent
             | solution for window management on macOS. Ohh also, I use
             | Amethyst sometimes, for i3wm-like window layouts, and it
             | allows you to set shortcuts to move apps from one
             | workspace.
        
             | pzo wrote:
             | one workaround I use is not to use Spaces but custom Alfred
             | hotkeys for most popular apps that you often switch such
             | as: iterm, browser, xcode, vsc, file browser +
             | rectangle.app for shortcuts to maximize/minimize app
             | (without default animations). Takes some time to train
             | muscle memory though - I use cmd+ctrl+(j or or k or l or ;)
             | to switch between most frequent apps. I also use F1 as hot
             | key for iTerm (quake style) and F2 for Dash.app
        
         | hugocbp wrote:
         | I use TinkerTool to remove most of the animations from macOS,
         | which makes it feel much snappier. That one, unfortunately, I
         | haven't been able to disable.
         | 
         | Which is weird, because the launchpad page switching animation
         | can be disabled and it is very similar to the Spaces animation.
         | 
         | It is amazing how much snappier the os feels by just removing
         | those dock and "genie" animations from the interactions.
        
         | marban wrote:
         | There are all kinds of tweaks like
         | 
         | defaults write com.apple.finder DisableAllAnimations -bool true
         | 
         | defaults write com.apple.dock launchanim -bool false
         | 
         | defaults write -g NSWindowResizeTime -float 0.001
         | 
         | defaults write com.apple.dock expose-animation-duration -float
         | 0.1
         | 
         | defaults write com.apple.dock autohide-time-modifier -float 0
         | 
         | defaults write com.apple.mail DisableReplyAnimations -bool true
         | 
         | etc. Look it up.
        
           | ta988 wrote:
           | You still get a delay when switching desktops.
        
             | marban wrote:
             | Your chance to take a breath.
        
         | jwr wrote:
         | The desktop switching animation is the reason why I don't use
         | Spaces at all. I just can't force myself to "be along for the
         | ride" every time I switch, which I might want to do very often.
        
           | tecleandor wrote:
           | There's one situation where it's specially terrible: screen
           | sharing. When I'm on a Zoom call, and somebody is sharing
           | their screen, and begins switching spaces... I get dizzy (and
           | the streaming compression goes crazy).
        
         | bmacho wrote:
         | I LOVE the desktop switching animations. On Ubuntu Unity when I
         | send a window to another virtual desktop, it keeps the window
         | still, and slides the background, while on Windows
         | VirtualDesktopGridSwitcher just switches instantly. (Same for
         | just switching desktop windows just switches, Unity slides it.
         | But it is more common to slide that.)
         | 
         | On Ubuntu, I just _know_ where am I and where are the things,
         | while on Windows I have no idea.
        
           | marcosdumay wrote:
           | On KDE my computer slides all the old windows and background
           | away, and the new ones into the screen. Yes, it's a great
           | thing that makes my brain know what I'm seeing.
           | 
           | It is also long finished by the time my finger is away from
           | the switching key. And that is very relevant. I have no idea
           | what Apple users experience, and "desktop switching
           | animations" aren't all the same thing.
        
             | alpaca128 wrote:
             | Mac OS takes about one second to switch desktops, with at
             | least half that time used for the last fraction where the
             | animation smoothly slows down. It's fine if you only need
             | it now and then, but when switching repeatedly for some
             | task it gets annoying quickly.
             | 
             | Much worse: Mac OS fullscreen mode works by moving the
             | current window to a new virtual desktop while hiding the
             | statusbar etc, meaning you always have a one-second delay
             | when entering and leaving fullscreen, with videos on
             | Twitter and some other sites it's even slower. But the UI
             | is responsive sooner than that, so recently I accidentally
             | minimized all applications by clicking while the screen was
             | still completely black.
             | 
             | Animations are difficult to get right, I always err on the
             | faster side because waiting for an animation to finish is
             | never enjoyable.
        
       | taeric wrote:
       | As noted by another thread, the Notepad example is surprisingly
       | telling.
       | 
       | My initial gut was to blame the modern drawing primitives. I know
       | that a lot of the old occlusion based ideas were somewhat
       | cumbersome on the application, but they also made a lot of sense
       | to scope down all of the work that an app had to do?
       | 
       | That said, seeing Notepad makes me think it is not the modern
       | drawing primitives, but the modern application frameworks? Would
       | be nice to see a trace of what all is happening in the first few
       | seconds of starting these applications. My current imagination is
       | that it is something akin to a full classpath scan of the system
       | to find plugins that the application framework supported, but
       | that all too many applications don't even use.
       | 
       | That is, used to, writing an application started with a "main"
       | and you did everything to setup the window and what you wanted to
       | show. Nowadays, you are as likely to have your main be offloaded
       | to some logic that your framework provided, with you providing a
       | ton of callbacks/entrypoints for the framework to come back to.
        
       | beardog wrote:
       | Another piece of the puzzle: file formats, database formats, and
       | filesystems are not always optimized for SSD use (random access).
        
       | dist-epoch wrote:
       | People keep complaining, but nobody goes back to using the old
       | software (even on new machines).
       | 
       | Because the old software is missing 80% of the features needed
       | today.
       | 
       | It's like comparing a go-kart (simple, fast, easy to use) with a
       | car (big, slow, complex). Yet you don't see people in go-karts.
        
         | eviks wrote:
         | Which features did the slower Notepad gained? And just as
         | importantly - which of these features could not have been
         | gained without a drop in startup time?
        
           | moffkalast wrote:
           | That makes me wonder, would a notepad executable from XP or 7
           | run on 10 and 11, and would it be faster?
           | 
           | On my Win 10 machine with an SSD and animations turned off
           | Notepad and cmd do launch almost as fast as in that NT demo
           | so maybe it wouldn't be much of a difference.
        
         | importantbrian wrote:
         | I'm not sure this is a great example. A formula 1 car is
         | significantly larger and more complex than any go-kart is is
         | 4-5x as fast. In fact almost any car you can purchase will
         | significantly out perform a go-kart.
         | 
         | I don't think just adding features means software must be
         | slower. I would venture to guess Emacs has more features that
         | Word, especially when you factor in plugins, and is
         | significantly faster than Word.
        
         | _dain_ wrote:
         | The old software isn't available, or it's full of security
         | holes.
        
         | anthk wrote:
         | Which features? For instance, Kopete had far more features than
         | Slack and Discord combined and using 10X less resources. With
         | inline videos, videoconferences, inline LaTeX rendering and who
         | knows what.
         | 
         | Ironically Spotify and the rest of the Electron turds barely
         | cover the 10% of what we did with Amarok and KDE3 with Kparts
         | and using 10% of the resources.
         | 
         | What we are seeing it's people using damn 18-wheelers with less
         | features than a tricycle.
         | 
         | Opera for instance was propietary but it even had a
         | Torrent/Email client while being usable even under a Pentium 4
         | at amazing speeds.
         | 
         | Now try that today with Vivaldi.
         | 
         | More IM. Pidgin. Bloat it to the extreme with 4 or 5 or even 10
         | protocols being run at once while adding lots of plugins such
         | as services for Google Translate, inline videos or HTML parsing
         | until it uses ~512MB of RAM. Still it runs far snappier than
         | Discord, it uses 4X less RAM and a simple Athlon/Pentium III
         | can drive literal thousands of conversations in parallel.
        
       | beders wrote:
       | in all of this there's one constant: Mac's Finder remains a slow
       | piece of unorganized garbage that barely works.
        
       | guy98238710 wrote:
       | Root cause is that startup path is more crowded these days with
       | JIT, dynamic linking, app initialization, filesystem/DB scans,
       | sandbox initialization, subprocesses, etc. It's a natural
       | consequence of the apps (or underlying frameworks) growing in
       | size and complexity. Optimizing it all by hand is unreasonably
       | expensive if not impossible.
       | 
       | What we need instead is a way to persist the process or even
       | whole sandbox to disk and then fork off new instances from that.
       | That's much less work and much more effective than piecemeal
       | optimizations (AOT, native code, etc.). Unfortunately, existing
       | platforms and frameworks do not support forking, let alone
       | forking from persisted app image.
        
         | taeric wrote:
         | This sounds hilariously like how you make a lisp executable
         | binary.
         | 
         | Looking back at an old discussion on emacs trying to abandon
         | the "unexec" idea, it is notable that they saw a substantial
         | speed benefit from the old method.
         | (https://lwn.net/Articles/673724/)
        
       | cperciva wrote:
       | Not all code is slow. I can now boot a FreeBSD kernel in under 20
       | ms, which I'm pretty sure beats a 20 year old FreeBSD (not to
       | mention a 20 year old Windows).
        
         | schemescape wrote:
         | Is this on real hardware? And does "boot" mean to a login
         | prompt?
         | 
         | I ask because I've never had a computer (no matter how fast)
         | boot in less than 10 seconds on Windows or Linux. Just getting
         | to the boot loader takes a good 3 seconds or more. If I have to
         | FreeBSD to get a fast boot, I'll do it! (On an old laptop, at
         | least).
        
           | cperciva wrote:
           | That's in Firecracker, time it takes to boot the kernel aka
           | before we start running init.
           | 
           | Including userland -- i.e. "boot to login prompt" -- it's
           | around 450 ms on the same VM; I haven't optimized the
           | userland bits all that much yet.
           | 
           | Real hardware will take longer and will vary of course; we
           | can't do anything about the time between poweron and when the
           | boot loader starts running, for example.
        
       | its_the_future wrote:
       | "it's my daily driver."
       | 
       | I think you somehow don't have any idea what a "driver" means in
       | a computer hardware context like this.
        
       | zokier wrote:
       | Its not just that current crop of systems are laggy, but there
       | aren't even clear paths towards recovery. Maybe xilem will get
       | released and mature at some point for devs to be able to rally
       | around it and build new desktop experiences with great perf
       | again, but the timeline for that feels more like in 2030s with
       | great deal of uncertainty. But in general I don't see any groups
       | or projects taking serious, principled, look into making desktop
       | performance great.
        
       | avsteele wrote:
       | This is everywhere. Quickbooks Online just changed significant
       | portions of their UI such that there are noticeable delays when
       | typing in many input fields. Its hideous and a big slowdown when
       | trying to get work done.
       | 
       | I don't think many of these programs are used by the people who
       | write them.
        
       | strathmeyer wrote:
       | Used to be you would click on a URL and the page would load
       | immediately, now there's a half a second wait so you can be
       | tracked before they feed you the page. It's very noticeable.
        
         | robbintt wrote:
         | Google tracks eveything in their ecosystem this way and it's so
         | anti-customer.
        
       | nunez wrote:
       | I don't know.
       | 
       | On one hand, lag is real. I rebooted my M1 Mac mini yesterday
       | running Ventura, and while it only took a few seconds to boot to
       | the desktop, it took, like, two minutes for it to stop beach-
       | balling and finish initializing. (It was most likely waiting on
       | network I/O to finish, but still.)
       | 
       | On the other hand, machines are faster than ever before while
       | doing more than ever before, and apps are more flexible and
       | change more quickly (largely in part to super approachable cross-
       | platform frameworks like Electron). A few milliseconds of UI
       | latency will bother almost no-one.
       | 
       | On the other _other_ hand, Julio's demo of using Windows 2000 on
       | an time-appropriate machine is best case. I definitely remember
       | waiting what felt like eons for lots of useful apps to load, like
       | Office and Internet Explorer. (Remember when browsers had startup
       | screens?)
       | 
       | He's definitely right about how far hardware has come since 1999.
       | 
       | The shift to Apple Silicon was even more transformational than
       | the transition to SSD, IMO. Julio's right in that the shift to
       | SSD was night-and-day, but going from an Intel Mac to an Apple
       | Silicon Mac sped up literally everything you used to an insane
       | degree AND you got 12+ hour battery life to boot.
       | 
       | This used to be an either-or kind of trade-off, and for Windows
       | devices, it still is.
       | 
       | To wit: I used an Intel Mac Pro (the trash can) last week for
       | some audio work, and that super expensive almost-server-class
       | machine was _slower_ than my base model M1 Mac mini at home,
       | while running (slightly) louder and hotter!
        
         | TeMPOraL wrote:
         | > _On the other hand, machines are faster than ever before
         | while doing more than ever before, and apps are more flexible
         | and change more quickly (...). A few milliseconds of UI latency
         | will bother almost no-one._
         | 
         | On the forking hand (distinct from your "other _other_ hand"),
         | the "doing more than ever before" neatly cancels out "faster
         | than ever before", which prompts a question: how useful is
         | whatever it is our machines are doing now? Because one thing is
         | clear: most of that extra work is not visible to the user. The
         | increase in software _capabilities_ is much, much smaller -
         | nowhere near enough to explain where all the performance goes.
         | 
         | We could break the extra work into several categories:
         | 
         | - Support for better hardware - e.g. higher-resolution screens
         | require more RAM (somewhat compensated by GPUs), and require
         | higher-resolution assets to maintain (not even improve on)
         | decent clarity, which has second-order effects on storage use
         | (partially offset by compression) and CPU use on decompression
         | (the price of offsetting storage use), etc.
         | 
         | - Security features - cryptography, secure protocols,
         | isolation, sandboxing, etc. - those all cost CPU and memory.
         | 
         | - "Security" features - "real-time" malware scans (bane of my
         | existence), shady anti-virus/firewall software (i.e. almost all
         | of it), and various other parasites living off people's fear
         | (or need for regulatory compliance), and convincing users to
         | pay them with money, time _and_ compute. Not _(x)or_ , _and_.
         | 
         | - Legitimate new features - handling more type and variety of
         | content, more advanced algorithms, etc. Continuous auto-saving
         | and collaborative editing are two big and perhaps
         | underappreciated generic advancements.
         | 
         | - ... ???
         | 
         | The first four items on the list don't seem to account for all
         | the performance loss, especially for software that doesn't do
         | things requiring modern security, and offers the same set of
         | features as its equivalent 10 or 20 years ago. Often _less_
         | features, even.
         | 
         | That last point, the "dark matter" of computing, needs more
         | detailed study. We can guess a chunk of it is developer
         | convenience, but that's not all of it either.
         | 
         | WRT. developer convenience - as a developer, of course I like
         | it, but it's really getting out of hand - at this point,
         | whatever I buy for myself by externalizing the cost on users, I
         | still lose because _I 'm also the user of development tooling_,
         | and those developers externalize on their users too...
        
         | _dain_ wrote:
         | _> On the other hand, machines are faster than ever before
         | while doing more than ever before, and apps are more flexible
         | and change more quickly_
         | 
         | I suspect this would fall apart the instant you try to
         | rigorously quantify it. Put an actual number on how much faster
         | machines are, and put an actual number on how much more useful
         | stuff is happening. I cannot imagine that all of the slowness
         | could be accounted for. I doubt you'd even account for 10% of
         | it.
         | 
         |  _> A few milliseconds of UI latency will bother almost no-
         | one._
         | 
         | No, this mindset is a death sentence for good software. All it
         | takes is a few people at each level of the stack making the
         | same excuse. Five milliseconds here, three milliseconds there,
         | ten milliseconds, surely nobody will notice. But it all adds up
         | (or worse, it multiplies in some cases).
        
           | giantrobot wrote:
           | > No, this mindset is a death sentence for good software. All
           | it takes is a few people at each level of the stack making
           | the same excuse.
           | 
           | To pile on to this, it's not just five milliseconds here and
           | there in _your_ application but its position in the rest of
           | the system. Your application 's 5ms regression is tested on
           | an unloaded machine (for example). That means you lost 5ms on
           | an unloaded machine with all its considerable resources
           | available.
           | 
           | That regression is very likely to be much larger in a loaded
           | system where your process is contending for resources. On a
           | loaded system your 5ms regression becomes a 20ms regression
           | along with everyone else's 5ms regression. So now the user is
           | sitting there wondering WTF is happening.
           | 
           | There's a pretty good chance your GUI application will be
           | running on a mobile device of some sort. This means it's
           | running on a device with power limitations. The CPU might be
           | vastly underclocked to save power or you could be running on
           | an efficiency core instead of a more powerful performance
           | core. Now your 5ms performance regression is possibly 100ms.
           | A couple such regressions that "don't matter" on the 3GHz
           | test desktop become significant on the user's laptop with 15%
           | battery remaining that's clocked the CPU down to 600MHz.
           | 
           | Performance regressions should always be a concern and
           | testing should to encompass the pathological worst cases.
           | Even if there's nothing you can do about performance
           | regressions (that 5ms of work is exploit mitigations or
           | something) they should at least be quantified and understood.
        
         | koyote wrote:
         | > I definitely remember waiting what felt like eons for lots of
         | useful apps to load, like Office and Internet Explorer.
         | (Remember when browsers had startup screens?)
         | 
         | I agree completely.
         | 
         | It's definitely disappointing that simple programs like Notepad
         | and Paint are now laggy (I can reproduce the exact same lag on
         | my 2-year old 16-core i7), but computing in general was SLOW
         | back then.
         | 
         | Booting a computer often took over 5 minutes. I'd turn it on,
         | prepare a drink and come back to the desktop partially loaded
         | with a laggy 'wait' cursor waiting for my startup programs to
         | finish loading. Launching larger programs such as Word took
         | more than a minute in some instances. You're playing music AND
         | want to open another application? Well that application will
         | open 2x slower now due to lack of RAM.
         | 
         | I'd love to see a comparison of a current version of Word on a
         | current machine opening vs Word 2000 on a 2000 machine.
        
       | scottapotamas wrote:
       | I know it's easy to point at Electron specifically for examples
       | of poor performance (and the author acknowledged it) but Spotify
       | isn't a great example - it's the CEF flavour of web based
       | frontend.
       | 
       | Slack on the other hand...
       | 
       | </nitpick>
        
         | smcleod wrote:
         | It really is all electron apps. The best I've used is VSCode
         | (by far), but it's still a resource hog.
        
         | nunez wrote:
         | that's why I use Slack in the browser. It's very snappy and
         | much less power-intensive.
        
           | ta988 wrote:
           | Does it support the video/screen sharing/huddles now?
        
             | manx wrote:
             | Linux: In Firefox no, in Chrome yes.
        
         | lawgimenez wrote:
         | Always reminds me of the YouTube interview of Todoist's CTO
         | where he was asked by the JetBrains guys what is the
         | architecture of the desktop, and CTO sheepishly said Electron
         | and the JetBrains interviewers couldn't stop laughing.
        
           | Tactician_mark wrote:
           | If anyone else is curious, they're talking about this video
           | (happens at 5m42s):
           | 
           | (https://www.youtube.com/watch?v=z-o9MqN86eE#t=5m42s)
        
       | jmmv wrote:
       | Author of the article here. Surprised to see this bubble up to
       | the front page again (:
       | 
       | Discussion from a few days ago based on the original Twitter
       | thread: https://news.ycombinator.com/item?id=36446933
        
       | jerf wrote:
       | There's actually an answer to this; if you compare the Windows
       | machine to the average spec from the time it was released you'd
       | probably find comparable performance. This is not a coincidence.
       | What is happening is this: Work is put in to attain the minimum
       | level of performance a paying user will find acceptable. This
       | threshold has not changed, so in general, neither has real
       | performance. The places where modern computers actually strut
       | their stuff is where the paying users care a lot. For example, a
       | game pushes 120Hz at 4K because the paying customer cares. Video
       | editors care about every last bit of performance because at scale
       | each bit becomes seconds to minutes to hours pretty quickly.
       | 
       | (There's an averaging effect to. That game paying customer might
       | like it if Windows was snappier, but in _that_ market they 're
       | just another voice in the crowd of people who on average are
       | satisfied with the current status quo.)
       | 
       | "Paying customer" is important too because you can almost measure
       | how much social power the user has by how slow the software is.
       | Why is the point-of-sale device in the checkout miserably slow?
       | Why does the device the desk receptionist is using at your
       | national-scale bank need 30 seconds just to pull up your
       | appointment information? Those people have no social power, so
       | they get to just sit and wait while the computer swaps things in
       | and out for a truly simple task. Executives get machines that can
       | switch between email and the browser in a heartbeat with the
       | other 24 gigs of RAM and 6 cores do nothing. Using what machines
       | the developers get as a metric for how much the company cares
       | about them is something smarter developers have been doing for a
       | while; if your developer interviewer uses the 8 minutes it takes
       | their machine to boot to sing the praises of the engineering
       | culture the company has, well... make appropriate judgments.
       | 
       | (In 2023 this almost impresses me. Setting up a computer that
       | needs 30 seconds to switch between a calendar and an email is
       | almost a challenge now. You need to harvest those last few
       | precious $10/unit to give them _really_ shitty hardware _and_
       | combine it with an almost sociopathic dedication to layering on
       | enough virus scanning and tracking software to slow down a cheap
       | machine even so. Even the cheap stuff shouldn 't be that slow!)
       | 
       | If you work at it even a bit on Linux, you can set up a very
       | responsive system. You've been able to for a long time, really.
       | But you may find you don't get to use the latest and greatest of
       | the heaviest weight desktop system at the time. It's a lot easier
       | on Linux to use the stuff from years ago that flies now. Emacs
       | use to be joking referred to as "Eight Megabytes And Constantly
       | Swapping"; now it's a "light-weight" text editor. (Though it
       | doesn't _quite_ start instantly for me, it is under a second in
       | my configuration. YMMV.)
        
         | _dain_ wrote:
         | _> if you compare the Windows machine to the average spec from
         | the time it was released you'd probably find comparable
         | performance._
         | 
         | This is not the case, he specifically debunks it it in the
         | twitter thread. He took a contemporary late 90s machine with
         | modest specs, and it was still snappier than the modern PC with
         | Windows 10.
         | 
         | And even if that were the case, it does not follow that we
         | should accept modern machines not being able to load Notepad
         | instantly. Modern machines are hundreds of times more powerful
         | than 20 years ago, but Notepad has not become hundreds of times
         | more featureful.
        
           | marcosdumay wrote:
           | > it does not follow that we should accept
           | 
           | Just to point that all the GP said is that we _do_ accept.
           | There 's nothing there about what we _should_ do.
        
             | A4ET8a8uTh0 wrote:
             | I am going to play devil's advocate here. What can an
             | average person do. I eventually dropped windows for a linux
             | distribution and while it was a learning experience, I can
             | kinda see why it is not a default approach for most people.
             | It is hard for most to overcome inertia. Personal example,
             | before I felt compelled to jump I installed dual boot I
             | almost never used. Things simply have to get bad enough for
             | people not to accept things. As long as they in the
             | 'annoying' realm, most will put up with it.
             | 
             | It is a sad commentary about human nature, because it
             | suggests a slow enough decline will be accepted.
        
           | jerf wrote:
           | There is a lot of fuzz in that comparison. I used machines at
           | that time. They were not snappy if you had the _average_
           | specs. I am not convinced he got that in his comparison. In
           | particular modern iterations of those old machines are
           | usually stuffed with RAM by comparison because since then it
           | has become so dirt cheap to do that that it 's not worth not
           | doing it. I acknowledge he at least tried but I'm not
           | convinced he succeeded and even by his own text you can tell
           | he's not exactly putting a huge marker down on the older
           | system being the exact right system. Average specs typically
           | dipped into swap. (The supposed minimum specs were often a
           | joke.)
           | 
           | "accept"
           | 
           | I'm a bit at a loss as to how anything I said sounds like we
           | should _accept_ this. Did I not call it almost _sociopathic_
           | how IT departments manage to slow machines down for people
           | who have no social power? Does that sound like I think this
           | is hunky dory?
        
             | anthk wrote:
             | Not snappy on reading I/O but the UI was fast as hell. With
             | SSD's a Pentium IV with SSE2 support with TDE3 under
             | Slackware Linux running Konqueror, Amarok and Kopete
             | (Konqueror against a non-JS site) will run circles around
             | lots of core i7 setups with Spotify and Slack...
        
       | bob1029 wrote:
       | I strongly believe the technology becoming faster is itself the
       | biggest problem around slow technology. The constraints of slow
       | hardware _forced_ developers to do things  "the right way".
       | Today, you can serialize a gigabyte of JSON before the user will
       | likely notice. Really hard to not be tempted by this dark path of
       | incremental performance cuts in favor of dev-time convenience.
       | 
       | Just look a bit further down the front page of HN today and
       | you'll find a legitimately-heated debate regarding whether ORMs
       | bring value or no. But, who can blame the developers? The
       | pressure from management is eternal and some of us like to spend
       | our time on non-computer problems too. Reaching for a JSON
       | serializer or ElectronJS over Win32 and raw SQL is an
       | understandable decision when presented with real-life pressures.
       | 
       | I think if we want to see good user experiences, the capitalists
       | and management will need to start prioritizing them again (at
       | their own expense). This is a very difficult narrative to sell,
       | but I've had some traction in my company with "higher order
       | consequences of good UX today means more sales in the future"
       | kind of talk. There is also a story about pride in the product
       | and the improvements this brings for internal operations. Imagine
       | if your executive leadership came into the room, smack talked the
       | electron JS pile and insisted it be rewritten from scratch while
       | targeting native toolchains? Would that be enough of a fire to
       | get the average developer to start thinking again or are we too
       | far gone at this point? Clearly, we are mostly beyond the phase
       | of "valiant developer works overtime to strive for better UX
       | despite any and all mgmt pressures".
        
         | mwcampbell wrote:
         | If my cofounder told me to translate our current Electron app
         | to something else (maybe Rust), I'd jump on it. As it is, I've
         | wondered if I have an obligation to do so anyway, on my own
         | time, giving up all nights and weekends until it's done. But
         | our actual users don't even seem to care, and some have been
         | very positive about the product.
        
       | cesaref wrote:
       | The prioritisation has changed. Opening apps is slower, starting
       | new documents/views within the apps is fast. With enough RAM you
       | just keep all the apps you are using running and switch between
       | them.
       | 
       | I've not started an app so far today, not sure I did yesterday
       | either for that matter. I certainly created plenty of tabs in
       | chrome, and new terminal windows, but those just pop as instantly
       | as far as I can tell.
       | 
       | Oh, and i'm on MacOS
        
         | retrac wrote:
         | Applications tend to stay open on Mac even with no windows
         | open. As a KDE on Linux user, I tend to open and close apps as
         | I use them. Very few applications take more than a second to
         | load on a modern machine with an SSD, anyway.
         | 
         | I find that many desktop GUI programs are slightly misbehaved
         | for whatever reason, and consume some small but real amount of
         | resources when idle in the background. When a dozen are open
         | response time will be poor.
        
       | hinkley wrote:
       | I haven't paid any attention to the robotics world in ages and in
       | the last six months I've discovered a bunch of interesting things
       | people have been doing with less instead of more. Particular
       | standouts are tiny maze-running robots, and classifications of
       | fighting robots by weight. There's a guy with a bot named
       | 'cheesecake' that has some interesting videos.
       | 
       | I think we could all do with celebrating the small. ESP32 and
       | STM32 have hit a point where you can do modest computing tasks on
       | them without having to become an embedded hardware expert to do
       | so. I'm at one of those crossroads in my career and I'm trying to
       | decide if I double down on a new web friendly programming
       | language (maybe Elixir) or jump into embedded.
       | 
       | I've done a reasonable amount of programming in the small,
       | several times tricked into it, and while it's as challenging if
       | not moreso in the middle of doing the work, the nostalgia factor
       | after the fact is much higher than most of the other things I've
       | done.
        
         | fellowniusmonk wrote:
         | I hadn't heard of this bot before and honestly this video is
         | fantastic. Battlebots writ small is just as if not more
         | compelling than the original I think.
         | 
         | https://youtu.be/IFbMgoOWIMc
        
           | anderspitman wrote:
           | Ok this is awesome
        
       | jmount wrote:
       | I somewhat blame the internet. Before the internet it was unheard
       | of to wait for an application or dialogue to load. The internet
       | normalized this deviance, and here we are.
        
       | ruuda wrote:
       | Related observation from 2017: https://danluu.com/input-lag/
        
       | gavinhoward wrote:
       | I am right there with the author, all the way.
       | 
       | I run a machine with lots of RAM and a hefty CPU and a monster
       | GPU and an SSD for my Linux install and...a pair of HDD's with
       | ZFS managing them as a mirror.
       | 
       | Wat. [1]
       | 
       | I also have Windows on a separate drive...that is _also_ an HDD.
       | 
       | Double wat.
       | 
       | My Linux is snappy, but I also run the most minimal of things: I
       | run the Awesome Window Manager with no animations. I run OpenRC
       | with minimal services. I run most of my stuff in the terminal,
       | and I'm getting upset at how slow Neovim is getting.
       | 
       | But my _own_ stuff, I run off of ZFS on hard drives, and I 'll do
       | it in VM's with constrained resources.
       | 
       | Why?
       | 
       | While my own desktop has been optimized, I want my software to be
       | snappy _everywhere_ , even on lesser machines, even on phones.
       | Even on Windows with an HDD.
       | 
       | This is my promise: my software will be far faster than what
       | companies produce.
       | 
       | Because speed will be my killer feature. [2]
       | 
       | [1]: https://www.destroyallsoftware.com/talks/wat
       | 
       | [2]: https://bdickason.com/posts/speed-is-the-killer-feature/
        
         | TacticalCoder wrote:
         | > My Linux is snappy, but I also run the most minimal of
         | things: I run the Awesome Window Manager with no animations.
         | 
         | Same: a very lean Linux install with the Awesome WM, now
         | running on a 7700X (NVMe PCIe 4.0 x4 SSD in my case). I also
         | use one of the keyboard that comes stock with the lowest
         | latency (and I bumped its polling rate because why not).
         | 
         | This feels not just a bit but _very_ snappy.
        
         | Karrot_Kream wrote:
         | Fast software that nobody uses helps nobody. Slow software that
         | everyone uses is, well, slow. So I'm curious: how many people
         | use your software? I get that this topic is like nerd rage
         | catnip but if people _actually_ want to help users, then they
         | need to meet users where they 're at. And if "marketing" is
         | what's needed, then maybe it is. Software is generally built
         | for humans after all.
         | 
         | Don't get me wrong, All of my servers at home run Void Linux
         | and use runit. Pretty much anything that runs on them is snappy
         | and they run on 10 year old hardware but still sing because I
         | use software written in Go or native languages. But remembering
         | the particulars about runit services and symlinks is something
         | I forget every 3 months between deploying new services. Trying
         | to troubleshoot the logger is also a fun one where I remember
         | then forget a few months later. Using systemd, this all just
         | comes for free. Maybe I should write all of this down but I'm
         | doing this for fun aren't I?
         | 
         | The reason users don't care that much about slow software is
         | because they use software primarily to get things done.
        
           | kohlerm wrote:
           | They could get things done faster, they probably just don't
           | know
        
           | gavinhoward wrote:
           | You are absolutely correct.
           | 
           | So my new projects are not out yet, but I will market them
           | heavily once they are.
           | 
           | One of them is an init system specifically designed to be
           | easier to use than runit and $6, while still being sane,
           | unlike systemd. Yes, I'm going to focus on ease of use
           | because as you said, that matters a lot.
           | 
           | However, I do have a project out in the public now. It ships
           | with the base system in FreeBSD and also ships with Mac OSX.
           | It is a command-line tool that lots of people may use in bash
           | scripts.
           | 
           | Is that widespread enough?
           | 
           | Also, one reason people adopted mine over the GNU alternative
           | is speed.
        
             | Karrot_Kream wrote:
             | > One of them is an init system specifically designed to be
             | easier to use than runit and $6, while still being sane,
             | unlike systemd. Yes, I'm going to focus on ease of use
             | because as you said, that matters a lot.
             | 
             | Ooh can you link directly to this? I'd love to take a look
             | at. Runit is sharp and annoying.
        
             | barbs wrote:
             | > _However, I do have a project out in the public now. It
             | ships with the base system in FreeBSD and also ships with
             | Mac OSX. It is a command-line tool that lots of people may
             | use in bash scripts. Is that widespread enough? Also, one
             | reason people adopted mine over the GNU alternative is
             | speed._
             | 
             | Which one is that?
        
         | Aerbil313 wrote:
         | Speed is not a feature IMHO. Speed is _the_ feature, even in
         | non-software areas of your life, see the recent thread:
         | https://news.ycombinator.com/item?id=36312295
        
         | jmmv wrote:
         | There is a Raymond Chen post (I'll come back to add the link if
         | I find it) that explains how the developers working on Windows
         | 95 were only allowed to use machines with the minimum specs
         | required by the OS. This was to ensure that the OS ran well on
         | those specs.
         | 
         | And, IMHO, that's the way it should be: I think it's insane(?)
         | to give developers top-of-the-line hardware, because such
         | hardware is not representative of the user population... and
         | that's part of why I stick to older hardware for longer than
         | others would say is reasonable.
        
           | gavinhoward wrote:
           | Merad's sibling post is exactly why my machine is beefy
           | instead of weak: I still need that power.
           | 
           | Of course, I run Gentoo, so...
           | 
           | And I run my Gentoo updates off of a ramdisk to save my SSD
           | and for that much more does.
           | 
           | But if I intentionally run my code in hamstrung VM's, it
           | achieves the effect you are advocating, which is a good
           | thing, by the way. I do agree with you.
        
           | Merad wrote:
           | > I think it's insane(?) to give developers top-of-the-line
           | hardware, because such hardware is not representative of the
           | user population
           | 
           | But a developer's needs are radically different from the
           | user's needs. In typical web dev, the developer's machine is
           | playing the role of the client machine, web server, and
           | database server, all in one. On top of that you'll probably
           | be running multiple editors/IDEs and other dev tools, which
           | are pretty much always processor and memory hungry. Even for
           | desktop development the dev needs to be able to run compilers
           | and debuggers that the user doesn't care a thing about. If
           | you truly care about the low end user experience then you
           | need to do acceptance testing against your minimum supported
           | specs. It's pretty crazy to intentionally hamstring the
           | productivity of some of your most expensive employees.
        
             | jmmv wrote:
             | Fair observation about web apps vs. desktop apps / systems.
             | So maybe the browser should intentionally slow things down
             | when using the device-specific previews to mimic real-world
             | behavior, instead of just changing the window size? :)
             | 
             | In any case... the fact that you need so powerful machines
             | to develop the app is also an indicator of waste at all
             | layers. It hadn't cross my mind to showcase how even CLI
             | tools have gotten sluggish, for example, but they have...
             | Running 'aws', or 'az', or things like that show visible
             | pauses at startup too. Furthermore, the tendency to depend
             | on tons of services "for scalability" is also questionable
             | in the majority of web apps.
             | 
             | It takes a lot of work to keep the development environment
             | lean because it's easier than ever to pull in library and
             | tool dependencies into them. It's doable, but usually also
             | not a priority.
             | 
             | Edit: By the way, I do develop a few web apps on the side
             | where I can be careful about dependencies and the like, and
             | the resource needs are minimal. Running a database and web
             | server on the local machine take almost zero resources. The
             | heaviest thing of all is the JavaScript toolchain, which
             | is... quite telling. And I can run the hundreds of
             | integration/unit tests for the apps in milliseconds. It has
             | taken care to get to this point though, and I have never
             | experienced this kind of "lightweightness" in a corporate
             | project. Here is a post that provides some background on
             | just one aspect (https://jmmv.dev/2023/06/iii-iv-task-
             | queue.html), and I'm working on another one to describe the
             | testing process in detail.
        
       | Animats wrote:
       | Even open source is getting worse.
       | 
       | GIMP will stall for 10-15 seconds at startup looking for XSANE
       | plugins. Apparently it's calling some external server, bad in
       | itself, and that external server is slow. Worse, this delay
       | stalls out the entire GUI for both GIMP and other programs.
       | 
       | There's no excuse for this "phoning home". Especially for XSANE,
       | which is a rather bad scanner interface.
        
         | adamnew123456 wrote:
         | > GIMP will stall for 10-15 seconds at startup looking for
         | XSANE plugins. Apparently it's calling some external server,
         | bad in itself, and that external server is slow. Worse, this
         | delay stalls out the entire GUI for both GIMP and other
         | programs.
         | 
         | Do you remember where you came across that explanation?
         | 
         | I'd be very surprised if it weren't something like an mDNS
         | query with a high timeout. Which is it's own problem (ideally
         | it'd be async), but a far cry from it trying to access
         | something on the internet.
        
       | hammycheesy wrote:
       | > a lot of the Windows shell and apps have been slowly rewritten
       | in C#
       | 
       | I worked on the Shell team until late 2022. There is very little
       | C#, if any at all. The vast majority of the Windows Shell is
       | still C++ with a significant amount of WinRT/COM.
        
         | torginus wrote:
         | Yeah, and as a corollary, many apps using C#/WinForms are quite
         | snappy. Microsoft did invest a lot into having .NET apps start
         | fast with the GAC/ngen
        
         | jmmv wrote:
         | Thanks for the confirmation. I'll fix the text.
         | 
         | What I had in mind when I wrote this sentence though is how the
         | modern apps that people seem to like /are/ C#, such as Windows
         | Terminal and PowerToys, and these feel quite slow to me. But,
         | yeah, calling those the shell is a stretch.
        
           | IceSentry wrote:
           | Windows Terminal is 93% c++ on github. Not sure where you got
           | the impression it was mostly c#
        
             | jmmv wrote:
             | Bad memory. The idea that Windows Terminal was C# was in
             | the back of my mind for some reason but I did not verify
             | this fact. Thanks for keeping me honest; updated the text
             | now.
             | 
             | PowerToys is mostly C# though, which I have also verified
             | now.
        
       | selimnairb wrote:
       | There is no mention in this article on the effect of modern
       | security measures on desktop app latency. I'm thinking about
       | things like verifying the signatures of binaries before launch
       | (sometimes this requires network roundtrips as on macOS). Also,
       | if there are active security scans running in the background,
       | this will eventually effect latency, even if you have lots of
       | efficiency cores that can do this in the background (at some
       | point there will be IO contention).
       | 
       | Another quibble I have with the article is the statement that the
       | visual effects on macOS were smoothly animated from the start.
       | This is not so. Compositing performance on Mac OS X was pretty
       | lousy at first and only got significantly better when Quartz
       | Extreme was released with 10.2 (Jaguar). Even then, Windows was
       | much more responsive than Mac OS X. You could argue that graphics
       | performance on macOS didn't get really good until the release of
       | Metal.
       | 
       | Nowadays, I agree, Windows performance is not great, and macOS is
       | quite snappy, at least on Apple Silicon. I too hope that these
       | performance improvements aren't lost with new bloat.
        
         | gizmo wrote:
         | Even on an M2 Mac Spotlight takes a second or two to appear
         | after you hit the shortcut. Apple notes takes an absurd 8
         | seconds to start. Apple music and Spotify are also take seconds
         | to start. Skype takes 10 seconds.
         | 
         | I'm very happy with my M2 Mac. It's a giant leap forward in
         | performance and battery life. But Electron is a giant leap
         | backward of similar magnitude.
        
           | njitram wrote:
           | I just tried all the examples you gave (on my M1 Max) except
           | Skype which I don't have installed here, they all load in 1
           | second or faster, maybe its something else on your Mac?
        
           | comechao wrote:
           | I'm using the Air M2 16GB, switched from Notion to Notes and
           | Reminders, one of the reasons is that these apps are way
           | faster. It also uses under 100MB of ram.
           | 
           | Note: The main reason is that Notion is fantastic but too
           | much for me. I'm not that organized...
        
           | occamrazor wrote:
           | Do you have CPU or memory heavy background tasks? On my M2
           | spotlight is instant and Notes opens in less than one second.
        
           | LaputanMachine wrote:
           | To fix the Spotlight delay, you have to disable Siri in the
           | system settings.
           | 
           | If Siri is enabled, the OS waits until you release the space
           | bar to determine if you performed a long or a short press,
           | which causes Spotlight to be delayed.
        
         | layer8 wrote:
         | The comparison between the win32 Notepad and the UWP version is
         | telling, though, on the same hardware, and with the same
         | security constraints. Similar between the old (Window 7)
         | calculator and the newer one.
        
         | wsinks wrote:
         | I'm glad you mentioned this in the comments - I was wondering
         | if they were going to touch how applications are sandboxed and
         | everything. I would imagine that is a large part of current
         | 'sluggishness'.
        
           | taeric wrote:
           | Almost certainly not? Sandboxing and anything non-visual can
           | happen at a ridiculously fast pace.
           | 
           | I'd suspect a lot of this is offloading so much of the
           | graphical setup to not the application. Feels like we
           | effectively turned window management into system calls?
        
           | alpaca128 wrote:
           | If those mythical safety features actually make an impact
           | then shouldn't they slow down everything, including a hello
           | world program? Yet the performance gap between well-optimized
           | and sluggish software only grows.
        
             | oriolid wrote:
             | So, I had to try this. And look what happened on a 2015
             | Macbook running Monterey (edit: but check the thread below
             | for possible explanation):                 ojs@MacBook-
             | Pro-4 /tmp % time ./a.out        Hello world       ./a.out
             | 0.00s user 0.00s system 1% cpu 0.268 total
             | ojs@MacBook-Pro-4 /tmp % time ./a.out       Hello world
             | ./a.out  0.00s user 0.00s system 72% cpu 0.004 total
             | 
             | It's really that slow on first try. The binary was compiled
             | just before running it, and it's the simplest possible
             | hello world using C++ std::cout, compiled with -O3. C
             | version with puts behaves just the same.
        
               | alpaca128 wrote:
               | If applications were only slow the first time I wouldn't
               | have any issue with it. But we all know that's not the
               | case.
               | 
               | The difference you show depends on the internet
               | connection, on slow wifi I've seen this delay go over
               | 0.7s in the past. But again, just the first time, which
               | is a problem for developers who recompile their code
               | frequently but for the end user experience that's not as
               | relevant.
        
               | oriolid wrote:
               | Do you know why running the binary is slow for the first
               | time, and that it will be fast forever once it's been run
               | once?
               | 
               | I thought it's common knowledge that starting apps for
               | the first time after reboot or after doing something else
               | is slower and usually it's explained by the app being in
               | cache for the next launch. But here the it can't be
               | cache, because reading anything from SSD can't be that
               | slow and it should already be in cache anyway.
        
               | alpaca128 wrote:
               | The first time you start a program on Mac OS it'll
               | contact an Apple server to see if it's known malware or
               | something like that. So it doesn't happen the first time
               | after boot but the first time you ever run the program
               | after installation or compilation.
        
               | oriolid wrote:
               | Thanks for the explanation. I thought code signing was
               | supposed to reduce the need for this kind of checks.
               | Still, stuff like this isn't helping with performance and
               | if the new binary is sent somewhere outside the developer
               | machine legal departments would be interested too.
        
         | torginus wrote:
         | I don't think all this should be relevant - once it was
         | launched at least one time, the OS should be able to tell that
         | the binary hasn't changed, and thus signature verification is
         | not necessary.
         | 
         | The comparison is using OS X 10.6 - I used to daily drive it
         | and it was pretty snappy on my machine - which is corroborated
         | by this guy's Twitter video capture.
         | 
         | As for Windows performance - Notepad/File Explorer might be
         | slower than strictly necessary, but one of the advantages of
         | Windows' backwards compatibility, is that I keep using the same
         | stuff - Total Commander and Notepad++, that I used from the
         | dawn of time, and those things haven't gotten slow (or haven't
         | changed lol).
        
           | syntheticnature wrote:
           | Assuming the binary on the disk hasn't changed opens to time
           | of use type attacks, where an "evil disk" is substituted that
           | changes the binary after the first load. (Or, more likely,
           | some sort of rootkit)
           | 
           | Unlikely, yes, but that sort of thing comes up in security
           | reviews.
        
             | qsantos wrote:
             | Check it with a cryptographic hash. With I/O bottleneck,
             | and assuming a SSD at 300 MB/s, that should bring the
             | latency to 3 ms, well below human perception. Even the 60
             | MB/s of slow HDDs should be more than fine.
             | 
             | Anyone who has worked on optimizing complex programs knows
             | that you can do _a lot_ with a computer.  > 100 ms latency
             | to open Notepad is just ridiculous.
        
       | djhworld wrote:
       | I agree with a lot of the points in this article but I think the
       | ship has long since sailed, it seems very unlikely to me that
       | companies will revert to native frameworks over
       | electron/chromium, the incentives are not there.
        
         | rirze wrote:
         | There's a new wave of C++/Rust GUI libraries that are looking
         | to be the frontier of bridging the gap from cross-platform ->
         | native frameworks. If that bet pays off, we might have an
         | alternative to Electron. Would be a couple of years down the
         | road however.
        
         | zokier wrote:
         | "Native" is not really the right thing to look in here. As the
         | article notes, even Windows built-in apps like calculator
         | (/notepad/explorer/paint) are still "native" to some degree
         | (certainly not electron based) and nevertheless dog-slow
         | compared to their predecessors.
        
           | anthk wrote:
           | Any Windows users should have switched to something like
           | Qalculate. Or the calculator from ReactOS, which is virtually
           | the same and it would run and look native under Windows.
        
         | AnIdiotOnTheNet wrote:
         | Ok. Can we at least revert to sanity in the FOSS realm then?
         | 
         | My guess is no, since for many writing FOSS software is just a
         | way to hone their saleable skills for BigCorp where they'll
         | spend their days finding new creative ways to put ads in front
         | of people's eyes.
        
       | bee_rider wrote:
       | > Linux is probably the system that suffers the least from these
       | issues as it still feels pretty snappy on modest hardware. [...].
       | That said, this is only an illusion. As soon as you start
       | installing any modern app that wasn't developed exclusively for
       | Linux... the slow app start times and generally poor performance
       | show up.
       | 
       | This is not an illusion. Cross-platform programs suck, so
       | everyone avoids them, right? Electron apps and whatnot are
       | universally mocked. You would only use one for an online services
       | like Spotify or something. The normal use case is downloading
       | some nice native code from your repo.
        
         | retrac wrote:
         | Electron apps may be mocked, but they're not avoided by most.
         | VS Code is probably the #1 programmer's editor these days.
        
           | moffkalast wrote:
           | Somehow VS Code manages to run Electron and loads in roughly
           | the same amount of time as Sublime Text needs that's compiled
           | into a native binary.
           | 
           | Maybe Tauri will make things better in the long run, but so
           | far I haven't heard of any adoption at all.
        
             | nickpeterson wrote:
             | I think you're saying that decades of r&d by the largest
             | tech companies in the world can eventually produce a
             | browser runtime that renders text about as fast as a couple
             | people working in python and C.
        
               | mike_hock wrote:
               | Imagine what could have been achieved had the same amount
               | of R&D been poured into a native framework.
        
               | mrguyorama wrote:
               | "But that's haaaarddddddd for me as a lazy software
               | developer who went to college and learned complex
               | algorithms and calculus and physics and chemistry just
               | because but can't seem to handle a few #ifdefs because
               | they aren't in vogue anymore"
               | 
               | Except our organization builds python and java apps so
               | all our shit is multiplatform by default or even by
               | accident. Hell, I put together consistent, cross platform
               | Swing UIs before I even understood what maven was.
        
               | twobitshifter wrote:
               | But it's not _a_ native framework it's 5 or 6 native
               | frameworks splitting the energy between them.
        
             | qorrect wrote:
             | VS Code does not feel slow to me , how are they getting
             | such good performance ?
        
               | Ataraxic wrote:
               | I kinda disagree with this. I have definitely noticed
               | that my cursor can be slow to respond when some
               | linting/formatting (I can't quite tell what is causing
               | it, I just notice it) is going on. Totally usable, but
               | I'm also coming from emacs and it's not like emacs is
               | known to be blazing fast so I actually think my
               | experience is sort of inline with the article's point.
               | 
               | Despite or because of emacs being older, it's more
               | responsive than vscode in my usage.
        
               | fredrikholm wrote:
               | Have you ever used Sublime or Vim?
               | 
               | Vscode is fast compared to most modern editors, but it's
               | still twice as slow as Sublime in terms of input latency,
               | UI responsiveness, text coloring etc.
               | 
               | An hour with Sublime/Vim followed by going back to Vscode
               | is a painful experience...
        
               | ihattendorf wrote:
               | They care about and test for performance
               | issues/regressions.
               | 
               | https://github.com/microsoft/vscode/issues?q=is%3Aissue+l
               | abe...
        
               | [deleted]
        
           | juped wrote:
           | I remember back when Java programs were painfully slow, these
           | days I've fled vscode for clion.
        
           | twobitshifter wrote:
           | Browsers are ridiculously fast. People just add more and more
           | until they hit the wall where they need to start optimizing.
           | For someone trying to get things done, that's probably the
           | right method. But it means that ultimately what determines
           | how fast your program runs is not how fast your computer
           | runs, but how much delay you're okay with.
        
           | c_crank wrote:
           | On Windows, what other options do you really have?
        
             | _dain_ wrote:
             | vim run inside of WSL. i'm serious.
        
             | Exoristos wrote:
             | There are a host of alternatives on Windows. Or buy a real
             | IDE, like the JetBrains products.
        
             | hinkley wrote:
             | Webstorm
        
             | Teckla wrote:
             | It's not really a 100% replacement for all of VS Code's
             | features, but there is a pretty big overlap in
             | functionality that may meet most people's requirements:
             | Notepad++
        
             | twobitshifter wrote:
             | eMacs
        
             | BlueTemplar wrote:
             | Notepad++ ?
             | 
             | Various language-specific IDEs like Spyder ?
        
         | nirui wrote:
         | Not really sure about the cross-platform caveat... `dropbox-
         | lnx` eats away 265MB of RES for it's file syncing job, I'm
         | pretty sure what Dropbox was doing on my old laptop was very
         | heavily 265MBly important. Also, `keepassxc` takes away 180MB
         | of RES when you opened it.
         | 
         | The first Linux that I've used, Mandriva (KDE), runs smoothly
         | on my Intel Pentium 4 PC with 256MB of RAM. I can even do some
         | web browsing (Flash gaming) and music playing without feeling
         | slow. That's an entire OS, running on 256MB of RAM.
        
           | anthk wrote:
           | Use rclone instead of dropbox.
           | 
           | On MDV, KDE and PIV, same here with an Athlon 2000 and 256 MB
           | of RAM with Knoppix and later FreesBIE with XFCE, which ran
           | much faster and snappier than even today's i7's with Plasma
           | 5.
        
         | awused wrote:
         | It's not just cross-platform programs that suck. Applications
         | moving to gtk4 from gtk3 add an extra 100-200ms of startup
         | latency every time because of OpenGL initialization and shader
         | compilation (there is currently no cache), varying a lot
         | depending on your CPU. Applications that used to open instantly
         | now have have a noticeable pause, even if it's still short
         | compared to the worst Windows applications. It's been reported
         | multiple times for well over a year now and no improvements
         | have been made.
        
         | mschuster91 wrote:
         | > Cross-platform programs suck, so everyone avoids them, right?
         | 
         | The thing is, cross-platform _tooling_ sucks. A plain CLI
         | program is already bad enough to get running across platforms -
         | even among Unix /POSIX compliant-ish platforms, which is why
         | autoconf, cmake and a host of other tools exist... but GUI
         | programs? That's orders of magnitude worse to get right. And
         | games manage to blow past that as every platform has their
         | completely own graphics stack.
         | 
         | Electron and friends abstract all that suckiness away from
         | developers _and_ allow management to hire cheap fresh JS coding
         | bootcamp graduates instead of highly capable and paid Qt
         | /Gtk/SDL/whatever consultants.
        
           | hardware2win wrote:
           | >consultants
           | 
           | Who?
           | 
           | I see people constantly talking about those "consultants",
           | yet what they are?
           | 
           | Just dev that has single-person company?
        
             | Cthulhu_ wrote:
             | Hello, I'm a consultant. In practice it's just a fancy word
             | for temps. Company hsa money and needs some engineers but
             | don't want to hire or take up the burden of employment, and
             | / or needs some fresh bodies to wake up their in-house
             | developers / make them fear for their own jobs because
             | they've stagnated, they call us.
             | 
             | But we're a relatively small consultancy (think hundreds
             | instead of tens of thousands like the bigger players), so
             | it's a bit more refined. We do have decent developers, but
             | the issue with consultancy on that level is they're too
             | smart for their own good, they will suggest an over-
             | engineered solution that can't be maintained by anyone BUT
             | these consultants and / or hired self-employed people. It's
             | a weird fallacy, a weird rotating door of consultants and
             | cycles of development where every 10 or so years they do a
             | full rearchitecture / rebuild of their back-ends, while
             | meanwhile some people just sit and maintain the existing -
             | and working - core systems.
             | 
             | It's massively wasteful. But it usually pays better than a
             | regular in-house developer, and it's lower risk than going
             | self-employed because you still work for an employer who
             | pays you per month. I'm just salty that said employer
             | creams off 2/3rds of my hourly rate.
        
             | jcelerier wrote:
             | there's a ton of consulting companies which are humonguous.
             | Companies like Accenture with 780000 employees, Tata
             | Consultancy with 488000 consultants, CapGemini with
             | 300k-ish... it's one of the largest businesses in the world
        
               | marcosdumay wrote:
               | Just to reword the sibling; none of those consultants
               | ever created a best-selling piece of software.
               | 
               | They are not the people that create the software you
               | install on your machine. That task is usually done by a
               | lone developer at some random place.
        
               | xNeil wrote:
               | I mean, I don't think that's exactly a fair comparison.
               | These companies are focused a lot (and I mean a lot) more
               | on enterprise software than your regular desktop
               | software. I'm talking about Banking Systems, Automation
               | Platforms, Government Software, stuff that has no use
               | outside the corporate world. And they do genuinely do
               | good work in these areas. Sure, they're not pioneers or
               | doing some groundbreaking research, but they do their job
               | and they do their job well (of course there are
               | exceptions - but these aren't 100 billion dollar
               | companies for nothing).
        
               | marcosdumay wrote:
               | > And they do genuinely do good work in these areas.
               | 
               | I have seen genuinely passable. And lots of "good enough
               | until we fix the underlining issue".
               | 
               | What I have never seen is offshored developers doing
               | really good work. And I'm convinced their incentive
               | structure will always punish anybody that tries.
        
               | anthk wrote:
               | I've seen turds as web pages at the Spanish Goverment or
               | even the Healthcare systems. Those are designed to
               | deliberaterly harm the user experience full of judicial
               | jargon so companies in the middle can get lots of profit
               | handling the "legalese" such as filling the taxes.
        
               | mike_hock wrote:
               | > but these aren't 100 billion dollar companies for
               | nothing
               | 
               | Producing the best possible software doesn't produce the
               | highest possible revenue. You'd want to produce something
               | that works well enough that it's viable for the customer
               | to keep hiring your consultants, but also makes it
               | _necessary_ to continuously keep hiring them.
               | 
               | So that translates to producing the worst possible
               | software that barely works. So no, they're not $100B
               | companies for nothing. They know exactly how to walk that
               | line.
        
               | anthk wrote:
               | These write big turds.
               | 
               | If they can't afford to write a simple cross-platform QT5
               | based software for actual computing (AKA desktops except
               | for niche usage on art with iPad for drawings and some
               | audio production), they are doomed. Period.
        
         | grishka wrote:
         | And if it's for an online service, why even have it as a
         | separate app? Just run it in your browser. You'll get the exact
         | same thing but in the one instance of Chromium that you already
         | run anyway. You also get the added benefit that your extensions
         | work with it.
        
           | closeparen wrote:
           | I _can_ run Slack, VSCode, and Spotify in browser tabs but it
           | 's more convenient to switch between them using the Dock and
           | Cmd-Tab.
        
       | isaacfrond wrote:
       | This is the reason I like SumatraPDF. It has an old-fashioned
       | user interface, a rather limited set of features, but _boy_ it
       | opens fast. I wish there were more apps in that mold.
        
         | _dain_ wrote:
         | Zathura is a fast PDF viewer for Unixes, it's simple and snappy
         | like Sumatra.
        
           | bee_rider wrote:
           | In general Linux seems pretty snappy. I like evince, which is
           | not particularly svelte (but it does color inverted rendering
           | and reloads your PDFs when they change on the disk, so it is
           | nice for writing at night).
           | 
           | He mentions Linux in the blog post. But then goes off on a
           | tangent about cross-platform programs. I think he must be
           | primarily a windows guy or something? In general cross
           | platform programs suck, it is well known, so everyone avoids
           | them.
        
             | ericd wrote:
             | Any reccs for a snappy linux desktop environment?
        
               | parenweenie wrote:
               | While I haven't used a full DE in years, if you want
               | snappy going with a lightweight WM wouldn't hurt. I use
               | StumpWM but I haven't had any issues with responsiveness
               | using i3, awesome, or XMonad.
        
               | bee_rider wrote:
               | I'm boring, I just use i3 or sway, like the rest of the
               | hipsters. So, no recommendation I guess, since it is just
               | a window manager.
        
               | ericd wrote:
               | Haha thanks, I think I'll finally give those a try, I've
               | been trying to make KDE work, and it just doesn't.
        
               | _TwoFinger wrote:
               | Just an idea, if you find yourself unable to warm up to
               | tiling:                 for_window [all] floating enable
               | 
               | It's stupid, but I've been using this for a couple of
               | years now.
        
               | bee_rider wrote:
               | That's interesting. So do you start the programs
               | floating, and then put them in tiling mode sometimes? Or
               | just avoid tiling completely? (It seems like that would
               | be giving up a lot of the specific strengths of the
               | window manager... but of course if it works for you, it
               | works!)
        
               | _TwoFinger wrote:
               | I don't use the tiling at all.
               | 
               | I use the multiple desktops feature a lot, though. Some
               | programs are pinned to a dedicated desktop and run all
               | day. Others I start in (or move to, later) a numbered
               | desktop, and switch to them by changing the desktop.
               | Often, most of the desktops contain only one window.
               | 
               | I once used i3 and sway the right way, of course. I guess
               | I had one too many of those programs that were not
               | designed to work at arbitrary window sizes, added the
               | above rule and called it a day.
        
               | bee_rider wrote:
               | I recently-ish switched to Ubuntu and tried to give their
               | weird gnome a try, but it just became a nightmare of
               | addons and then the addons started conflicting or
               | something. Anyway I've come to the conclusion that I'm
               | not smart enough to use a desktop environment.
               | 
               | For my laptop, I've used i3, polybar (to get pretty bar
               | at the top), rofi (a fine launcher), autorandr (detect
               | and switch to my monitor and turn off laptop screen when
               | I plug in), and... a random Arch Linux forum post to get
               | automatic accelerometer based screen rotation going.
               | 
               | https://bbs.archlinux.org/viewtopic.php?id=243005
               | 
               | I bet there's a fancy tool out there but this script
               | seems to work after a little customization, and it is
               | only a couple lines, so it can be understood!
        
               | adrian_b wrote:
               | I use a Linux desktop that is extremely snappier in
               | comparison with how popular distributions like Ubuntu or
               | Fedora feel, at least in their default configurations.
               | 
               | However, I have never analyzed which are the exact
               | causes, because my configuration has a lot of differences
               | and I am not sure which of them matter.
               | 
               | I suppose that it is important that I use neither Gnome
               | nor KDE, but XFCE. Even so, some of the applications that
               | I use are intended for KDE or Gnome, so they use the
               | corresponding libraries, and I do not know if these have
               | any reason to be more responsive under XFCE than under
               | their native desktop environments.
               | 
               | I prefer to use a completely empty desktop, without icons
               | or toolbars and having as background a neutral gray. I
               | launch applications by right click on the desktop and I
               | restore minimized windows from an auto-hidden taskbar.
               | 
               | I take care that there are no active services/daemons
               | besides those that I really need. I do not use systemd or
               | anything associated with it. I have stopped using swap
               | memory two decades ago (but I equip all my computers with
               | generous amounts of DRAM, to avoid out-of-memory
               | situations; my oldest computers have at least 32 GB and
               | nowadays I would not buy one with less than 64 GB).
               | 
               | I use only 4k monitors with 30-bit color, so using lower
               | resolutions is not needed for a snappy GUI.
               | 
               | I use the proprietary NVIDIA drivers or the Intel drivers
               | on computers with the integrated Intel GPU. I use a
               | customized Linux kernel, but I doubt that this can have
               | any influence on GUI responsiveness, even if it ensures
               | fast boot times. I do not use Wayland and I doubt whether
               | it is the right replacement for X Window, because its
               | initial design was very flawed, even if some of the
               | original defects have been corrected meanwhile.
               | 
               | For viewing PDFs or EPUBs, I use MuPDF, which is much
               | faster (especially on startup, which is instantaneous)
               | than the other viewers that I have tried. It has some
               | limitations, so I also keep around other viewers, e.g.
               | Okular, for the cases when I need a feature not provided
               | by MuPDF. As file manager, I use Xfe.
        
           | amadeuspagel wrote:
           | Sioyek is fast cross platform PDF viewer.
        
         | PhilipRoman wrote:
         | I can also vouch for Sumatra.
         | 
         | Personal anecdote: my laptop (6 years old and outdated long
         | before it was manufactured) was thrashing with 99% ram used and
         | disk bandwidth maxed out due to a combination of a 100-tab
         | Chrome monster and doing pacman -Syu on my Arch Linux WSL (I
         | think it might be fixed now, but some time ago WSL file cache
         | would eat all your Windows ram). After accidentally clicking on
         | a pdf document Sumatra somehow still managed to open it in
         | roughly 100-200ms.
         | 
         | I think it might be the only Windows program where I've
         | legitimately been surprised by it's speed.
        
         | linhns wrote:
         | I'd go further and say it's the best app I've ever used on
         | Windows. Snappy, Vim controls, can't ask for more than that.
        
         | dieulot wrote:
         | PhotoFiltre is an image editor that opens so fast that I could
         | set it as my image viewer back when I used Windows, on low-end
         | hardware.
        
         | Joker_vD wrote:
         | Or WinDjView. Still has that brand MFC look. Still blazingly
         | fast.
        
       | DeathArrow wrote:
       | They didn't use Javascript frameworks to write desktop apps in
       | '90s and 2000s. Also, they concentrated first on functionality
       | and second on the looks.
        
         | AnIdiotOnTheNet wrote:
         | Also they didn't consider themselves to be unique and special
         | snowflakes that needed non-standard widgets and theming.
         | 
         | Also the internet wasn't as big a thing so marketing hadn't
         | taken over computing yet.
        
           | ryandrake wrote:
           | > Also they didn't consider themselves to be unique and
           | special snowflakes that needed non-standard widgets and
           | theming.
           | 
           | Ugh, this hurts my soul. I've worked with way too many
           | designers who simply had to use their own icons and menus and
           | scroll bars and drop-downs and on and on. Yea, let's throw
           | out the person-centuries of interaction design research that
           | the OS vendor put into the standard controls so that you, 3
           | years out of design school, can impose your "improved"
           | version of them.
        
             | shaan7 wrote:
             | Apparently designers need to do that for "brand identity"
             | and need to "differentiate ourselves"
        
               | mrguyorama wrote:
               | Which is why they all do the exact same "minimalism" or
               | "flat" design styling of course.
        
           | anthk wrote:
           | >Also the internet wasn't as big a thing so marketing hadn't
           | taken over computing yet.
           | 
           | Java it's an exception. Every company and his granma used
           | that.
        
             | adamc wrote:
             | Yes, and Java was justly reviled at the time for slow
             | startups.
        
       | gumby wrote:
       | I strongly believe this.
       | 
       | I think there's an important additional factor, which is how
       | dynamic so much UI is these days. So much is looked up at
       | runtime, rather than being determined at compile time or at least
       | at some static time. That means you can plug a second monitor
       | into your laptop and everything will "just work". But there is no
       | reason it should take a long time to start system settings (an
       | example from the article) as the set of settings widgets doesn't
       | change much -- for many people, never -- and so can be cached
       | either the first time you start it or precached by a background
       | process. Likewise a number of display-specific decisions can be
       | made, at least for the laptop's screen or phone's screen, and
       | frozen.
       | 
       | Here's some sobering perspective on this from 40 years ago:
       | https://www.folklore.org/StoryView.py?story=Saving_Lives.txt
        
         | marcosdumay wrote:
         | The number of monitors was also checked at runtime at the 90's.
         | The only difference is that by then it was checked only at
         | startup, and now there some aynchronous function that checks it
         | all the time... What is to say that now it should be faster.
         | 
         | On any of the complex Linux DEs, the set of settings widgets
         | was always set at startup, since those complex DEs existed. On
         | Windows that varies from one interface to another (there are
         | many), but at least for Win10, things have gotten much more
         | static on the new interface. (I dunno about 11.)
         | 
         | Anyway, the amount of things you can read from the user on a
         | Windows app startup time is staggering. The applications on the
         | article have many orders of magnitude less (relevant) data to
         | deal with.
        
           | ryandrake wrote:
           | The "plug in a monitor" case is an example where computers
           | are hilariously (and likely unnecessarily) slow to do
           | something that should be simple.
           | 
           | Say I have two monitors plugged in and running. When I plug
           | in a third one, here's what happens:
           | 
           | 1. Monitor 2 goes blank.
           | 
           | 2. Monitor one flashes off then back on.
           | 
           | 3. Monitor 2 comes back on.
           | 
           | 4. Both monitors go off.
           | 
           | 5. All three monitors finally come back on.
           | 
           | Putting on my developer hat, I kind of know what's going on
           | here. The devices are frantically talking to the device
           | drivers, transmitting their capabilities, the OS is
           | frantically reading config files to understand where to
           | display the virtual desktops, everyone is frantically
           | handshaking with everyone else. It's a terrible design and
           | should not be excused. Putting on my end-user hat, what the
           | fuck is this shit? I just plugged a monitor in. I'm not
           | asking the computer to perform wizardry.
        
             | badpun wrote:
             | Even if the frantic handshaking is somewhat necessary, I
             | don't think it's justified that it takes over 1
             | millisecond, let along multiple seconds with monitors
             | turning on and off in the meantime. Seems like shoddy work
             | on every end.
        
               | Aerbil313 wrote:
               | > Even if the frantic handshaking is somewhat necessary,
               | 
               | I don't believe it is. Sure, it's probably necessary in
               | this frameworks of frameworks systems we're running right
               | now. Drivers, kernel, privilege levels, userspace,
               | whatever. But I believe if we were to rewrite
               | _everything_ from scratch without the 90s technical debt
               | and careful planning beforehand it would be _easy_ to
               | have a dynamic monitor connecting algorithm which doesn
               | 't suck like that.
               | 
               | A promising concept in this space: (me not affiliated)
               | https://www.theseus-os.com/Theseus/book/index.html
        
         | BlueTemplar wrote:
         | Maybe "dynamic" in one sense, but so many of these Electron
         | apps don't even support window maximization/resizing
         | properly...
        
       | retrocryptid wrote:
       | Modern operating systems are designed for three things:
       | 
       | 1. Serve ads.
       | 
       | 2. Consume content.
       | 
       | 3. Compress audio and video input and upload it to someone's
       | servers.
       | 
       | None of these requires a responsive UI. Ticket closed, works as
       | designed.
        
         | GuB-42 wrote:
         | It absolutely requires a responsive UI, there are many studies
         | that show that milliseconds of latency matter when it comes to
         | engagement, and it is one of the most important criteria that
         | Google uses for ranking. Of course Google is all about serving
         | ads and content consumption.
         | 
         | TikTok success can be largely attributed to the uninterrupted
         | flow of content it provides.
         | 
         | Same thing for audio and video compression, streaming is also
         | about milliseconds, slowness breaks the experience on a
         | subconscious level, and who knows the user may even take his
         | eyes off the screen and get out or read a book, terrible!
        
           | pclmulqdq wrote:
           | OP was clearly being sarcastic, but I'm not convinced that
           | this isn't how Microsoft et al actually see things. Latency
           | is hard and not core to how they see the world, so might as
           | well not invest in it. In reality, it's very important, but
           | we're fine as long as we can ignore reality.
        
       | dahwolf wrote:
       | Fully agree with the premise. Most youngish users have never even
       | experienced true performance. Our software stacks are shit and
       | rotten to the core, it's an embarrassment. We'll have the
       | smartest people in the world enabling chip design approaching the
       | atomic level, and then there's us software "engineers" pissing it
       | away with an inefficiency factor of 10 million %.
       | 
       | We are very, very bad at what we do, yet somehow get richly
       | rewarded for it.
       | 
       | We've even invented a new performance problem: intermittent
       | performance. Performance isn't just poor, it's also extremely
       | variable due to distributed computing, lamba, whichever. So users
       | can't even learn the performance pattern.
       | 
       | Where chip designers move heaven and earth the move compute and
       | data as closely together as is physically possible, leave it to
       | us geniuses to tear them apart as far as we can. Also, leave it
       | to us to completely ignore parallel computing so that your 16
       | cores are doing fuck all.
       | 
       | You may now comment on why our practices are fully justified.
        
         | Xeoncross wrote:
         | People give push back when I tell them they should drop PHP for
         | Go or Python for Rust.
         | 
         | It doesn't matter that it would be better for everyone and the
         | planet. It's a prisoners dilemma. I only get rewarded and
         | promoted for shipping stuff and meeting deadlines even if the
         | products are slow.
         | 
         | Thank God for open source. Programmers produce amazing
         | libraries, frameworks, languages and systems when business
         | demands and salary is out of the picture.
        
           | jeremyjh wrote:
           | Meanwhile some people have been using C# and Java for decades
           | which perform better than Go on many benchmarks and their
           | software is still slow as shit.
        
         | letsdothisagain wrote:
         | Oh sure, I can justify this easy.
         | 
         | Labour productivity vs wages doubled since the 1970s and the
         | trend seems to be continuing. It was about 150% in 2000 so we
         | can use Excel as as the benchmark.
         | 
         | This means that an accountant today can wait for Excel to load
         | for 2 whole hours of their 8 hour shift, and still be as
         | productive as an accountant from 20 years ago!
         | 
         | Isn't that amazing! Technology is so cool, and our metrics for
         | defining economic success are incredible.
        
         | titzer wrote:
         | The wonderful thing is that the hardware performance is there
         | if you just dare to toss the stack. One of my long-standing
         | projects is to build a bare metal (at least as far as userspace
         | is considered) programming language called Virgil. It can
         | generate really tiny binaries and doesn't rely on hardly any
         | other software (not even C!). As LLVM and V8 and even Go get
         | piggier and piggier, it feels more magical every day.
        
         | jtriangle wrote:
         | The reason is that the money people don't want to pay for it.
         | We absolutely have the coding talent to make efficient,
         | maintainable code, what we don't have are the available payroll
         | hours.
         | 
         | 10x every project timeline and it's fixed, simple as.
         | 
         | Granted, the big downside is, you have to keep your talent
         | motivated and on-task 10x as long, that's like turning a
         | quarter horse into a plough horse, it's not likely to happen
         | quickly, if at all. You'd really need to start over with the
         | kids who are in highschool now writing calculator apps in
         | python by making them re-write them in C and grade them on how
         | few lines they use.
         | 
         | ie, it's a pipe dream, and will continue to be until we run out
         | of hardware capability, which has been "soon" for the last 30
         | years, so don't hold your breath.
        
           | jeremyjh wrote:
           | > 10x every project timeline and it's fixed, simple as.
           | 
           | I'm skeptical. I've seen too many developers write poorly
           | performing code purely out of indifference. If you gave them
           | more time they'd have a lot more Reddit karma but I'd still
           | be finding N+1 problems in every other code review.
        
       ___________________________________________________________________
       (page generated 2023-06-28 23:00 UTC)