Almost everything on computers is perceptually slower than it was in 1983 (2017)
twitter.com
twitter.com
Previous discussions (from oldest to newest):
- https://news.ycombinator.com/item?id=15643663
- https://news.ycombinator.com/item?id=15648652
- https://news.ycombinator.com/item?id=21831931
I didn't see https://news.ycombinator.com/item?id=22368657 at the time, but it reminds me of a title for a blog post I'll never write: "Nobody Reads the FAQ".
I tried my friends recently and it really did feel like a joy- it’s basically a toy now, impossible to use for anything meaningful (even IRC).
It’s hard to convey in text the “feeling” of immediacy and low input lag. I suppose it’s similar to how some gamers talk about fps, it feels immersive, like the machine is in-tune with you. It genuinely feels like something mechanical that you’re interacting with rather than something that “will get to it”.
It’s very subtle but it’s there.
I would posit that our definition of 'meaningful' has dramatically changed since the C64 days. Nowadays, if you aren't doing it online or collaborating with someone, it's not considered 'meaningful.' Back in 1983, this was not the case.
I think a better comparison would be to do the things a C64 was good at on a modern computer with modern workflows, and see which is easier/faster/more satisfying. I'm talking word processing, gaming, printing, etc.
I bet the C64 wins.
(Side note: you can get that C64 online and onto IRC or a telnet-enabled BBS; there are plenty of products to do that)
Yes, I have very low latency while I type RUN EXCEL, but who cares when the floppy disk access that comes next takes 20 seconds?
I said that throughput is significantly worse, for sure.. but when I open a program theres about a second where it seems like my computers doing nothing at all..
Websites too, click a link and it seems like nothing until the page goes blank and starts rendering the new site.
Most laptops don't have harddisk indicators, all indication of work has gone away, and rendering it to the screen takes time- and isn't often followed anyway.
https://github.com/oliverschmidt/contiki/wiki/C64
Whether it would be practical to do so is a different question.
The author of that thread is exactly right, and also kind of wrong.
They're exactly right that modern interfaces, web ones most especially, suck super bad. (I'm a web dev, I'm not disclaiming responsibility here.)
They're kind of wrong in that modern interfaces are built over enormously more complex datasets and problem domains than those to which they compare them. I mean, yeah, a Wyse-50 in a library was fast as hell at what it could do, but try getting it to show you a map, like, at all. I'm not even sure those things were character-addressable, so, good luck with that!
UI design as a concept doesn't get enough love in our very young industry. It's as complex, difficult, and necessary a discipline as software engineering, but we mostly just have software engineers build UI as an afterthought and if it sucks, oh well, so does everyone else's, and it doesn't obviously drive revenue anyway. I blame capitalism.
We have expanded the scope, to be sure, in that time but we've done it without a very deep understanding of the fundamental processes and so, in short, we've made a mess of it. We were in such a rush to make the perfect not the enemy of the good, that what we have isn't even really good anymore.
This being said, programming today is no longer about efficiency and quality, it has been taken over by code monkeys that will happily copy/paste encyclopedia sized code pieces and put them together in something vaguely functional, under a culture of move fast and break things, because companies want to sell shiny trinkets as "interesting features", and users want to buy that. And modern hardware is good enough to take a lot of this pieced together software so why even bother?
This strikes at a slightly different problem, the latency of actually showing things on screen, but points out that not all is going well.
It was slow, awkward, and needed a few days' training to get up to speed with. Redrawing a map on the screen took a couple of seconds. Scrolling around to find stuff wasn't really possible. But give it a postcode and it knew where everything was. And give it a list of 10 postcodes and it would spit out the best route a few minutes later.
Google's UX for everything except search is utter shite. I don't know what they think they're doing. Anyone here from Google who can explain why their UX is so crap?
You can think of everything else they do as a hobby for a rich person. They don't really need the money and they don't really care about it. Sometimes it turns out well, and sometimes not. It doesn't matter either way.
They are doing search. Specifialy, the monetizable variety of it.
The real question is why do people insist on using it? If people didn't, they would have to broaden their goals.
I need to buy groceries, get a few t-shirts, ship a package, and put gas in my car. Minimize travel time.
Alternatively (and even easier):
I need to go to Safeway, Target, the UPS store, and Chevron. Pick a route and and order.
This would be trivial to enter into the computer using the interface in the article, and trivial for a modern computer to compute and display in under a second.
Why would you need to do that, though? It only makes sense if you’re going to print out directions, which no one does any more. You put your destination in the maps app in your phone and go. Then enter the next destination once you’re there. And so on. There’s very little utility in planning such a trip upfront in a world of ubiquitous GPS and internet.
Only if you know where on the map the place is which you wouldn't since you found it in a book. In Google Maps, I click "Add Destination" and put in the address. Drag it to the right places and it's now part of my route. On a paper map, I need to spend 10 minutes finding the address, referring to the index on the back to find the right square.
Think of it this way: everything our phones/computers do for us reduces our ability to do the same task in the long and short term.
Exposing us less to the challenges of the past is not a bug, it's a feature.
Also, when I start typing with the keyboard, I have no idea which web page text box has default focus. At least with Word (which I really, really hated), the document body always had keyboard focus.
Also, if I go back to edit a word in the middle of a previous sentence, the operating system sometimes decides I want the first character to be uppercase (and sometimes it doesn’t).
Just now, it took 5 tries to get the damn thing to type a freaking lowercase letter. I have autocorrect disabled, or it would be even worse.
Heck, you can’t even reliably guess which direction a mouse wheel will scroll any more.
It has gotten worse since. On one machine, I have an NFS mount over WiFi. Network manager wants mount to complete before it runs because they didn’t think before they implemented it. I eventually got that machine to boot, but it takes an extra 5 seconds.
This thing is blisteringly fast.
I do not miss Windows XP.
He's right that speed matters. It matters when you are driving in traffic and you need to know where to take that left turn. I don't use Google Maps or any map app when I'm driving because it's too damn dangerous. Much better to take a screenshot of the map beforehand because jpgs don't take 45 seconds to load. Sure, you can pull over and wait a minute for the map to load (and sometimes I do this), but with a paper map you can just fold it so that the area you are driving in appears and with a glance you can see where that turn is. Load speed ~0.5 seconds.
The issue, as far as I am concerned, is not with the UI of the apps, but with the OS. It strikes me as completely primitive that modern OS's (and I include browsers, because they are basically a one-abstraction-layer-higher OS) don't have a proper way of prioritizing the user's needs, instead leaving it to the applications. It's an abdication of responsibility IMHO.
I'm sure there are challenges and reasons why it is that way. Maybe there are experimental OS's which do this properly or ways to tweak existing ones. I don't know enough about this. I'd be happy to learn more from those of you who do...
To me that means it is no longer my/your computer.
> Maybe there are experimental OS's which do this properly
https://en.wikipedia.org/wiki/RTLinux
Funny: In JS I tried to find the maximum number of http requests a system could make. Async operations have unpredictable response time. Parsing the payload when it is returned was not an option since you end up with more parse jobs than the system can deal with at that moment which freezes the UI. (Earlier requests may arrive late, later requests might arrive soon.) So I ended up de-async-ing the tasks an doing them with setInterval (which requires checking the time or it will cluster up the parse tasks again) and tuning down the number of requests if there are many unfinished parse jobs. Now, if the user clicks something everything waits except dumping the responses into an array. Previously I couldn't lower the number of requests far enough to completely avoid UI freezes. They only got less frequent. With everything synced properly I can push the rate of the requests 20 times higher without freezes than async with 1 freeze per minute.
Excessively dismissive. It's not so patently false when you recall that applications on personal computers were designed to do much less in 1983 than they are now.
The model gestured at in the assertion is (arguably) one in which perceptual speed is a function of an application's (1) proximity to the outer bounds of a machine's capabilities, and (2) the efficiency of its implementation.
This is elucidating, and a useful contribution.
Also, if you some real fucking power, try this:
https://ls2pac.lapl.org/?section=search&term=grapes%20of%20w...
Yeah, NOT only can you check out an ebook of Grapes or Wrath FROM HOME, you can find out the exact number on the shelf in multiple libraries if you want the actual book.
I bet they didn't have THAT in 1998.
My Osborne 1 took a minute to load Wordstar. Searching a document would take more minutes if it was longer than about 30k because it had to swap to floppy disk. Connecting to a BBS was time for a bathroom break. So were compiles.
I think most of what is perceptually slower for the author is that it's a small percentage of the 40 years it took to get here. I loved my O1 but it did what little it could do very slowly. My phone in my hands right now is doing a trillion more things better and faster.
My take on perceptually slower is:
I don't remember computers being slow back then. They were just like they were.
Whereas today, especially since I'm living in Latin America on flaky and slow mobile internet connection and low to mid-range phones, the range of speed of just taking into account websites is massive. From super snappy to barely usable. Which makes me much more conscious about it.
Maybe it is just selective memory, and the difference in my age, but I feel back then, how something will perform was more predictable and consistant from a user perspective.
I can definitely get behind the Gmaps UX rant, but that's nothing to do with speed.
The digitized index was a couple of touchscreen terminals, which were plenty fast.
Contrast that with my current Win 10 install, which on a 3-year old computer goes from "off" to login screen in under 10 seconds.
Input latency being another absolutely astonishing difference.
But modern computers have so much more computational throughput that they’re many orders of magnitude more useful as tools.
I think the author is just saying that we lost the feel of immediacy for the common case, which I agree with, sometimes I press something and there’s either a sub second delay (text input) or a large pause (clicking an icon) before the machine seems to be doing anything.
Back in the day, you press a key and your computer is displaying it before the key has risen; you press enter and your hard disk churns immediately and a flashing light would blink merrily indicating work. That’s what perception is.
(Also, you could use a c64 with a floppy or Hard-disk which was obviously much faster than tape)
Nobody does it worse than imgur.com . You upload something and there is no indication, no feedback, nothing
The first paid programming job I ever did was writing some relocatable machine code in a USR$ because the patron's BBS couldn't calculate the XMODEM CRC in BASIC fast enough to support the upgrade to his new 1200 baud modem. I know I got paid $20 and I think it was about 20 bytes of code. I wish I got paid $1/byte for code I write today!
I mean, nowadays I am not very much into the "actually" arguments: I really don't deem it that important that older computers were better specialized for lower input lag. I just want that lower input lag back.
Complexity in modern machines and OS-es has grown too much. I feel a next Linux-like revolution might be coming that addresses this -- although this time around it would be much slower and gradual so it might not actually constitute a revolution per se. More like evolution.
I'm all for fixing the million annoyances in modern UX. The Web was built by something even worse than a committee -- it was built by a thousand committees. But let's not have rose-colored glasses, either. Computers in 1983 and 1998 were immensely frustrating, and some of what makes computers slow today is also what makes them better than the half-baked, hard-to-use, fifty-pound monstrosities of the past. We can and should do better in the future, but not if we mis-remember the past.
It used to be that software would get slower due to more and more baggage (or "technologies") it accumulates, but hardware would get faster at a higher rate. The past 10 years software keeps piling up more and more libraries but CPU performance is essentially stuck and even more, we have the shift to mobile, which means underpowered computers. This inevitably leads to bloated , slow systems , or "UX".
However, a BBS didn't do a bad job with interfaces. I remember pcboard or iniquity which had reasonably good interfaces, you could often type what you wanted rather than navigate the menu system.
What about phone calls from browsers, last time I looked at Teams it consumed around 250MB for the one process tab funnelling voice traffic.
Also, most TUI interfaces don't suffer the way that the post describes, aside from vi itself, I don't remember much in the years gone by that is as fast as vim to work with, though, it has accumulated some timber since.
Excuse me while I go down memory lane...
I think when I started (1995) it was a computer room with some 486s and the library with 186s. Then we got the internet, a single ISDN line shared by all of them, which was about as fast as you'd expect.
At some point these got upgraded to pentiums with windows 98 or similar - in those happy days the IT people at the school had absolutely no idea what they were doing so we had a happy few months of installing and playing doom and quake over the network.
I once found the IT technician going around all the computers and holding down the delete key to clear out the username field grumbling about "bloody kids filling these up", he was very impressed when I showed him how to select all...
At some point the "business" teacher said whoever can get at least 120 wpm in the typing game gets 100% in his class component. That must have seemed to him like an impossible achievement to motivate us.
A week or so later, a dozen of us had 100% in his part of the course and got to sit around and play games for the rest of the 6 weeks.
Something that used to result in 2MB application with 5MB in memory requirement is now done as half a gigabyte of resources that will spawn dozens of processes totaling at least 1GB of memory. Sure, computers are faster, but not by that much apparently.
Looking at all those electron (et al) apps. Cheap to write beats user experience I guess.
Often times what's being optimized for isn't even the speed of experience and maybe that's ok. Chrome spawns a million processes so if a tab crashes it doesn't end your browsing session, VS code being written in electron means writing plugins is a breeze and thus has built a thriving ecosystem in a record amount of time. If nothing else the world of software is a lot more flexible in 2020 than 1990 and maybe people prefer that to raw speed (given there's not a huge demand for native terminal based applications there's an argument to be made)
How has document creation changed in two decades that justifies two orders of magnitude more RAM and CPU performance, 10x power draw, etc.?
If your house was built with 100x the resources and consumed that much more power, and it took longer to turn on the lights or cook a meal would it be justified because the building process was easier and you could add new light fixtures more easily? That would be lunacy, but for some reason we think it’s OK in software to avoid the craftsmanship the profession demands while treat users like fools who should just accept that computers are faster so their apps should be slower. It’s garbage reasoning. The ergonomics of developers should always come second to providing the best for customers.
I can run xlookup functions on a 1000 row excel spreadsheet on my cell phone.
> Chrome spawns a million processes so if a tab crashes it doesn't end your browsing session
This one is funny, because
1) before Chrome pages didn't seem to crash (js could, but not the whole "page")
2) Chrome still crashes completely loads of times
(also it's not really related; Chrome is a fast application written relatively effectively)
But I get your point, and you are not wrong. I just wouldn't discount "cheap development" to be the primary reason.
You can really see the loss of efficiency in modern software by using the same program/application on a modern machine vs a 10 or 15 year old machine. I have a couple of older laptops (2001 era Dell Latitude CPx with a PIII 500MHz, 2011 Lenovo Ideapad netbook with the Atom N450 1.6GHz) that I will occasionally play around with. I've found that most of what the article author said applies; textual interfaces with minimal or no mouse usage runs perfectly well on either of those old beasts, even with code written in 2020 and optimized for modern hardware. The "suckless" suite of tools in particular (dwm, st, surf, etc.) make those otherwise unusable machines into something approaching modern workstation utility. You don't want to even try to run any modern graphically rich software on those devices as you'll be frustrated immediately, and it will be clear just how bloated and unnecessary a lot of modern design has become.
I feel as long as we keep advancing in raw computing power, the software can be allowed to grow and make use of the extra power, but we will eventually reach a standoff where the hardware stops advancing and at that point we will need to focus on reducing, not increasing, software bloat if we wish to maintain efficiency.
Running slack, rstudio, atom and a browser was almost maxing out an 8gb machine.
Why does an IM client need over a gig of ram?
What exactly was faster to do 20 years ago than now?
Adding features will almost inevitably make software slower. Sometimes the difference is smaller, sometimes larger.
"extra few features" would fit more to likes of vim.
I used e.g. gedit (linux) and pspad (windows) during that time and both completely froze on larger files.
As mentioned in a reply bellow, syntax highlighting is a feature that was (and is) blazingly fast in every software except atom-based editors. Startup times are atrocious too.
Spotify.
And as mentioned in my comment, speed can be influenced by the size or memory requirements. And that becomes issue on its own when you want to use multiple of these applications. I constantly run into full ram and swapping with 16GB. Mostly caused by web applications, but the root cause is the same. Size on disk (or when updating) also matters on phones a lot.
But generally I do not think the premise is correct. Loading a game from a datasette took easily 15 minutes (later there was acceleration only a few minutes)
Loading a game from a cardigde (what was usual at the time) was much faster than anything we use now, but this is not a fair comparison.
It's a fact that nowadays a lot of apps are very slow, on computers and phones alike -- and socially and culturally that's unacceptable for non-technical people.
It's not fair comparison since the games are completely different beasts today - huge open worlds, detailed textures, complex AIs.
Game studios could design games which are super fast to load and play but some other aspect would suffer instead. It's a trade off and it looks like users are OK with waiting a little bit if it means better gameplay.
My mom simply wanted instantly loading calendar and grocery list apps. I know that's achievable because I've done (parts of) such apps in the past and they were faster than others.
It's not such a stretch to imagine people being frustrated with lags everywhere (and those lags do objectively exist). And I've met a good amount of people frustrated with the current breed of software as well.
Modern apps don't bring almost anything new or improved to the table. They should be lightning fast but they are not.
Cartiges don't have a loading time, and are a technology that is available today, but that people abandoned because they are expensive and difficult to update.
:(
It's just the load time of cartiges that aren't a fair goal.
For example back then they did not index files at startup since there was no function for that (like "find references"). These days IDEs provide a lot of "intelligence" and static analysis for which you need memory, a lot of reads and processing.
So yeah, I guess VS got slower but it's because it's now doing much more (useful) things.
I think it'd be more accurate to say value to the user beats the cost to write the software, which then beats user experience.
Something can offer a lot of value and use but still be a pain to use.
Having to make Apps that will get published and not banned, all while trying to keep costs low forces developers into JavaScript solutions.
If it was low cost to develop a native iPhone app, this would not be an issue.
What do you mean when you say that the problem is half Apple's fault? Or, like every other comment your account hasd made in the last 24-48 hours, is it just an attempt to start an Apple flamewar?
The experience was so slow, that you can play another game while loading [1]. Namco even patented "playing games during load” by 1987 [2].
As an example, I have fond memories of my C64 tape loading Hunchback [3] ... while watching "V". A single tape can take one hour if it fails in the middle and you need retries. All those waiting times were order of magnitude of what a common toddler will expect today. We were so relieved when the fast loaders appears [4] or when a 1541 arrived home [5]. And then we were so frustrated when the 1541 was only 300bytes/s instead of the 300bits/s of the Datasette.
The scenario in Xenix or PC-DOS loading from 8" floppies was similar.
I'm not arguing that now are better times, I’m arguing that in the 80s we have the best for the time, and those were good times to remember.
[1] Mini Games: https://en.wikipedia.org/wiki/Invade-a-Load
[2] Nanco patent: https://patents.google.com/patent/US5718632A/en
[3] https://en.wikipedia.org/wiki/Hunchback_(video_game)
People had been using this system for over 20 years. Muscle memory from hitting Tab, Tab, F2, enter...that pulls up the inventory detail. F5, 3, 6, Tab, that brings up the wholesale price.
Now, with the 'better' system, people have to move the mouse up to Lists, Items, wait for the Item page to load, then choose the item the want, wait for that to load, then click on the Inventory or Pricing tab, wait for that to load. They can save a few steps by typing 'item: 25630' in the search bar. But of course it loads about 5x slower.
You could also hit PgUp/PgDn to cycle through items. Now you have to click the little arrows at the top of the page, and the view resets each time, so if you were on the Pricing tab, you have to click on that again. The old system left you where you were.
Sure, the new system has all kinds of advantages in other places, but to most of the internal users, you just ruined their world and they hate the unfamiliar, slower system that costs millions of dollars.
A new programmer in 2020 probably treats RAM and CPU as near infinite resources. Hence you have super simple 2D games that are 900MB in size popping up in /r/Unity2D and webpages weighing in at 15 MB and, etc. They just don't know those are unreasonable sizes because they've never tried to make a 100KB game/website.
30 years ago 100 KB for simple 2D game would be considered unreasonable.
Make it 40 years :D
I didn't bother reading the rant because I think it doesn't make sense but is just personal "feeling" of the author. Objectively speaking computers are insanely faster and can do much more things. For exmple I use Sublime Text editor with multiple plugins and features, and all those feel instant. Also with web apps that I use 95% of time the experience is very instant-like.
I worked on a multi-year multi-million dollar project to replace an aging greenscreen US Federal government legacy system (originally written in Natural / Adabas). The replacement was supposed to have a modern web application front-end with J2EE middleware and a modern relational database (Oracle IIRC). Literally tens of millions spent, but the project was cancelled. Why? First of all, there was a nasty project management issue I won’t go into now, but the more important problem in my opinion was that basically it sucked. The application was extremely slow and cumbersome, response times were unacceptably long. Users complained they actually preferred the old application because it actually worked and actions were instantaneous. There were key combinations that meant something, etc.
In addition to the usual incompetence that abounded on projects like these, my conclusion was that far too much time was spent on the infrastructure and not enough on UI/UX. I am a solid UI developer with no official UX background but I have enough experience to know what pissed users off, and the application design had these issues in droves. All of this also revealed just how much abstraction we use in modern application development. The old greenscreen apps were very interconnected and were run on “bare metal” systems such as mainframes. An action you took immediately got stored in the database and lookups were lightning quick. The modern equivalents to these go through many, many layers of processing that never before existed.
Modern application development is hard, really hard. Sure it’s easy to throw together an app with modern development tools, but once you want to make anything Enterprise-grade, customizable, reliable, and actually usable, it takes time, dedication, and talent.
Don’t ignore UI/UX.
I'm also reminded of the SABRE rewrite that had similar issues where agents got massively slowed down by the removal of the 10key navigation that ruled the old system and they had to add it back as emulation.
[1] https://www.joelonsoftware.com/2000/04/06/things-you-should-...
In 83 you'd boot into the computer ROM or an OS floopy. The floppy completed in a few seconds, for the ROM it's meaningless to talk about wait time.
You wouldn't install software. You would load it from a tape, a floppy or a ROM cartige. For the cartige it would, again, be meaningless to talk about wait time. The floppy would load faster than a 95 program from the hard driver (thanks to bloat), and the tape would take minutes.
No program would trash your system, because the memory management algorithms that are subject to trashing was only available for mainframes, and people didn't have disposable disk space anyway.
But sure sometimes programmers take advantage of speed and space, to do more. Which can look like "the same thing got slower". But its hardly the 'same thing', since now you can have HTML renderings inside components etc.
Takes a moment to reconcile code across the web as well. If we amortize the time it took to update an app from floppies (hours?) to each execution, compared to modern self-updating code over the net we'd see a fairer comparison.
I wish there were more things like that. I would rather see computers work than see some fancy animation that is there only to look pretty, but ultimately ends up wasting time.
Unfortunately it's worse than ignoring. It's intentionally abandoning, after years of A/B tests optimizing for revenue have found a perceptual sweet spot. Sadly for people who care about fast UI that point is way up on the sluggishness scale...
Previous discussions:
https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
A search field in a local application opening instantly is not the same as a search field searching orders of magnitude more data on a machine thousands of miles away.
Things were "faster" because so much _blocked_. Modal windows suspended applications. Now in the ~100ms it takes to open a window your computer is still doing other things in that application, in other applications, in the kernel, on other cores. We may have traded latency for _throughput_ in some cases, but that's not necessarily a bad thing, and often perceptually much faster still.
Lastly much of the speed back then came from things that are not practical for security reasons now. Shared memory makes a lot of stuff possible, and quickly. Temple OS (for all the faults of the author) demonstrates that today there are still really neat (and fast) things that can be done when you don't have to worry about security at all, but unfortunately we don't live in that world anymore, and a cost of our connected world is that security must be a design principle from the outset, and there are performance costs to that at every level of the stack, whether it's memory protection, ASLR, stack canaries, SSL/encryption, process sandboxing, containerisation, etc.
But instead it's "when I write an email to someone, the software looks through every person I've ever corresponded with and suggests an email from that list". The 1983 version of that was waiting 5 minutes for a bounce because you typo'd the address. Now it's taken care of for you in a few hundred milliseconds. Not that bad.
As for autocomplete being slow... there isn't really a good reason for this. I've seen PHP apps that add a solid 100ms to every request because they are built in the one-process-per-request model, and the framework does a lot of setup and teardown for every request regardless of whether or not the request uses those resources. Obviously, don't do that. There is no intrinsic reason that "AJAX" apps need to be slow -- you can do a database roundtrip in less than 10ms. Websockets and HTTP/2 eliminate TCP setup/teardown overhead.
Things could be faster, for sure. How much extra would you pay? Most customers wouldn't pay extra for a faster app, so apps aren't faster.
As for why people make mouse-based apps instead of TUIs... it's because the average person has to interact with tens or hundreds of pieces of software on a daily basis these days. If they all work differently, people will never use them. They ask for and prefer fast to learn but slow to use. So developers build on a common set of idioms, even if they are slow in the long run. You'll note that "power user" software is often hard to learn (think Emacs, Vim, Blender, Solidworks) but quite efficient once the user has been trained. People aren't interested in doing that much work these days.
Finally, business processes account for a lot of this stuff. I've been to stores that use a nice efficient TUI for their in-store pickup. But my question is: why is software with a UI even involved? You should scan my order number barcode, scan my driver's license barcode, and then hand me my merchandise. (Why even scan my driver's license. Just eat the fraud and save me 5 seconds! That's a business decision, not a software implementation quirk.) Having to navigate around to a bunch of fields and manually type that information in isn't efficient. The UI shouldn't even exist.
This is a wishful thinking. You can't expect consistent 10ms (or even 100ms) response times from network-driven autocomplete. Nevermind a fixed speed of light (which already makes 10ms figure impossible for transatlantic users), you will have to account for all kinds of temporary bottlenecks in network. DNS can take a lot longer than 10ms, and many hosts use short DNS TTL by design. There are some totalitarian countries (Belarus, Great Britain etc.) that use DNS-based website blocking — each time you send a DNS request, it will have to be compared against a bunch of censorship lists. Then there is an ISP throttling/AQM, that will add small delays to each SYN packet... As result, if your autocomplete responds in under 10ms during local testing, it may take between 100ms and 900ms for most of your users.
DNS, even when censored by the government, should be cached by the client for the TTL. And, for interactive apps, you should keep the TCP connection open between requests. (Not really sure what the browser state of the art is here, but the idea behind HTTP/3 is to skip TCP entirely, and let the server control how long it remembers the state necessary to keep the session alive. One autocomplete request should be one UDP packet.)
I'll also point out that networks aren't very good. For example, I have a RTT of 50ms to Chicago, but the speed-of-light round trip between New York and London is 36ms. (For Chicago, it's 8ms!) At least on my setup, the vast majority of the time is spent waiting for a DOCSIS timeslot. Once my packet gets to the internet, it's pretty fast.
Remember, people are playing real-time shooting games over the Internet. If they can make that smooth, you can make your autocomplete smooth.
Because the data became the hotly-guarded commodity of the "software" companies.
Here is the difference. People can learn how mice, input fields, and modals work and use those learnings across products.
With keyboard driven input or command lines, people need to read something to make it work. That creates a higher barrier to initial usage.
I would bet that the challenge for most software is getting that user to do something for the first time and far fewer people are concerned about whether it is a good long term way to do things.
The Apple has no network, LAN or WAN. I think a modem may have been available but most people didn’t have that.
All AJAX apps use network. And you will never get away from some amount of latency, even for edge apps. Which means that for certain things, physics dictates that Apple IIe will always be faster than AJAX.
Much of the rant isn’t even related to the comparison. I’m also curious about the author’s broken shift key.
But OMG they took forever to learn. And if there wer more functions than could map onto function keys that would fit in the bottom row, then stuff got hidden. Cue people yelling across the room "how do I get into the stock reorder menu?","F3 for stock, then F2 for management, then F5 for reorder", "thanks!" (no help window, or tooltips, or anything).
This isn't "easy", and it's certainly not discoverable. And it's only fast if you know exactly what you're doing.
True. Would it be fair to assume that users would work with a subset of the commands available? If so, once they got used to those it would have been plain sailing 80%-90% of the time. If I'm not mistaken I've seen a few those DOS programs recently in different settings. The folks using them seemed to be getting along just fine.
It’s simply not possible to make a blanket statement like this. Computers today are so very different and have so many more layers than those from 1983.
I recently refurbished an old Mac Plus. Of course I couldn’t leave it stock, booting from floppies was simply too ridiculous.. So it boots from Zip. Anyways, once I had this machine up and running I was quite surprised at how snappy the interface is - once everything was in place - and that’s the difference. The old interface is paper thin and has nothing going on, no asynchronous, little to no threads, it is just what it is.
Yet in the PC space, CPU manufacturers are pushing the limits of physics to produce faster, more efficient CPUs, and yet it's being wasted to dozens of layers of abstraction and interpretation.
Software should be absolutely blazing fast by now, and yet computers feel just as sluggish as they did years ago (ignoring the boost from SSDs)
Though GUI's and the like would be the main aspect for preception, the added eyecandy, then things like security, encryption... The CPU gods giveth with one hand and the software gods take more with the other hand - has played out many a time. Then the early stuff, machine code to the metal easy as less to know, today we have just fragments of library's used in coding languages that exceed are larger and than early operating systems. So the whole ability to know the whole machine inside and out is very much lost as even if you did learn it all, things would've moved on faster than you could learn.
WHich is another aspect, a user could almost know to the bit what their machine was doing, today, so many aspects and with managment cpu's in the background with microcode you can never pick apart, and more grunt and processing than early more simpler systems, the odd's of knowing the level of detail and being that intouch with what's ticking underneath is lost.
Bit like moving from manual gear changing (stick as some call it) over to automatic. You lose that connection as it is obfuscated from you. Akin to flying a plane by wire or as is the case today, by electronics - you lose that level of being in touch.
I invariably get votes for the first. And the reasons are basically always the same: they are fast and just work.
It feels like the entire user interface field is creeping.
I've been working as a user and developer in such field and I see a number of advantages of older applications (and even those text based ones) over the more recent web based ones.
Newer technology for web/mobile user interfaces is great, but it shouldn't be the "default" approach, in my opinion, and I think that they are at the heart of that overall disappointment with many applications. They are harder to build and maintain; they are less constrained, leaving room for "creative" deviations from core functionality. In summary, we are spending lots of resources on something that eventually destroys value.
I'm aware of a number of anecdotes about companies with 30/40 years old systems beating newer ones in terms of user speed. This, in conjunction with the fact that they are cheaper to develop, is a very strong evidence that we are doing something wrong.
This is an example of nostalgia goggles in action. You know how that movie you swore was amazing in your childhood sucks when you rewatch it as an adult and realize it had atrocious acting and writing?
When the same action can have such variable response times depending unknowable variables, your brain begins to believe that you're working for the computer and not the other way around. It just changes your relationship with your computer in a subtle yet fundamental way.
If you hired a professional cutlery expert to feed you it would be faster but it's no longer mechanical -- they might occasionally get distracted by a text message and 1 in 100 bites are completely missed. Now there's a gatekeeper between you and your meal. When it's working it's way more efficient and awesome, but your brain now understands that your meal isn't really guaranteed anymore.
Our relationship with computers is fundamentally different in a way that our subconscious immediately grasps despite being somewhat irrational.
Can anybody point out an app that has become better at perceived feedback over time? Everything is a horrible, slow mess. And the bigger issue is: due to the choice of language/UI libraries, they are un-optimizable
Incidentally, this may help explain the popularity of vim which was posted on another article. Console feedback is truly instant and, importantly, predictable. You can hit a bunch of keyboard commands on vi, and it will execute them 100% predictably even with a slow connection or high system load (of course, it was designed for that).
Sure, we shoot ourselves in the foot with bad UX, but a long rant with a false headline and deliberately obtuse examples isn't the strongest way to make this point.
Another is a little harder - if were a professional who used a computer in 1983, you probably only used one or two programs. This means that as a developer, you could reasonably expect your users to become power users, and thus design for them. This is no longer the case for most programs, so you see slower, less information dense, but more intuitive software succeed.
Exceptions to this are software which only power users use - 3D modelling software, video editing, etc. These are still fast fast fast.
One example.
> On the library computer in 1998 I could retry searches over and over and over until I found what I was looking for because it was quick Now I have to wait for a huge page to load, wait while the page elements shift all over, GOD FORBID i click on anything while its loading
Which completely overlooks how bad search results were 20 years ago compared to now. I would rather see the right result in 500 ms than the wrong result in 20 ms.
Or to take that example even further, I can now perform that same search on my phone, anywhere, instead of having to travel to the library.
Care to elaborate? Do you have examples of today's "good results" as opposite to "bad results" of old?
I still remember when my Windows 95/98 computer took 10~15 minutes to boot, when launching everything from Word to a game took minutes of waiting, when installing a game from a CD could take one hour or when loading an HTML page with no images took dozens of seconds.
God help you if you had to load an image, or even worse: a photo or animated gif.
Gemini could be pretty fast if they did not insist on TLS and new connections all the time.
(Ok fair enough, apparently it was 1986, so 3 years later..)
Well, interfaces are perceptually very different than they were in 1983 too...
there's no satisfying option for text input that doesn't come with various kinds of tricky formatting, scroll jank, periodic slowness, and general trouble
the assumption that we can write sophisticated + performant GUIs on cross-platform frameworks may not be right
if contenteditable didn't ship in the next v of chrome I think people who maintained CE-based tools would just shrug, assume it was a new compatibility quirk, get it working at some cost to their codebase, and move on without ever checking the doc
1 - https://www.youtube.com/watch?v=HxXhLhTHkD0 Look at that scroll speed!?! and the accuracy!?! Infinite accuracy?!! Being analog it goes infinitely beyond pixel perfect These things can print too!
Slow and choppy: https://www.youtube.com/watch?v=tNtuvNO54Rs
My terminal lags more today than it did 10 years ago.