Fast Software, the Best Software (2019)

150 points
1/21/1970
3 days ago
by ustad

Comments


MomsAVoxell

Yes, there are so many examples of this .. a recent one for me, is iStatMenu .. it just got to the point that waiting for it to start, alone, was sufficiently boring enough that I sought an alternative .. and of course, I realized, there's no reason not to use the Linux tooling I'm accustomed to, and so I have btop where iStatMenu used to live, kinda. btop doesn't get in the way, doesn't phone home, doesn't check a registration key, isn't harvesting key clicks, and .. so on .. its just small, light, and fast.

Well, with the encumbrance of it living in a terminal window, but I also live in the terminal window even on MacOS, so its a feature not a bug.

Point is, I wouldn't have this to say about it if iStatMenu had just been a little more discrete about its loading times ..

3 days ago

satvikpendem

Stats is the open source version I use

2 days ago

ivanjermakov

> Google Maps has gotten so slow

When it comes to navigating (except public transit), hiking, and route building, Organic Maps[1] is very good. OSM data and offline-first is the way forward for detailed and _fast_ map experience.

For cycling route building I have to mention BRouter[2], which allows you to write a custom cost function that is used to tweak your route preferences.

[1]: https://organicmaps.app/

[2]: https://brouter.de/brouter/index.html

3 days ago

carlosjobim

https://www.cycle.travel is also excellent for cycling routes. Made by a solo developer as far as I remember.

3 days ago

maelito

Who also build Tilemaker.

2 days ago

titanomachy

Cool! I'm guessing no traffic data in organic maps? I'd still install it to use as a backup.

3 days ago

[deleted]
3 days ago

hansvm

I remember an engineer I talked to recently saying that OSM didn't have sufficiently up-to-date data for their routing use case -- new roads, closed roads, traffic data, etc. Is that the case?

3 days ago

rurban

No. It's their route function which sucks compared to Google maps. Their data is better and newer.

3 days ago

dmurray

Isn't OSM the data layer, and people are free to build apps on top of it?

"The data is better than Google maps, it just needs a better routing algorithm" should be catnip to a certain class of OS dev. If it's really true, I'll take a crack at it myself!

3 days ago

NateEag

It's not true.

At least, not exactly.

At its best, the OSM data puts Google to _shame_. Super-fine resolution and details, nuances of street layout precisely correct, mountains of meticulously-maintained metadata that makes manifold niche geospatial apps possible.

Alas, in any given area, OSM is only as good as the union of the publicly-provided street data and the obsessiveness of the area's mappers.

Most towns in central PA, for example, have no street address listed for hundreds of buildings.

I've made many small contributions to help, and really enjoy doing so, but someone looking for driving directions needs to be able to whip out their phone and slap in an address / business name and have it Just Work.

You can't reliably count on OSM for that.

I wind up falling back from OsmAnd to Gmaps probably every fifth drive.

3 days ago

dmurray

I suppose Google also has the user-collected data that can tell you which routes are going to be busy. Almost impossible for OSM to replicate that.

2 days ago

NateEag

It would be hard, yeah.

It's a network effect thing - if enough people used an OSM client and opted into sharing anonymized location data, you might be able to get somewhere with it.

In practice, I think it'd have the same problem as the core map data - surprisingly good data in places with a lot of adopters, and nothing at all in places without.

That said, though, the traffic data is pretty secondary - a good, open routing engine would be lovely to have, and will slowly become more relevant as the map expand and fills out.

a day ago

rurban

Do it! Google routing is open source in or-tools

3 days ago

roncesvalles

On this note, (from a web dev perspective) I think we've overdone making the static build as lean as possible and pushing everything into the backend. E.g., if a 2MB dataset will make a search/select bar return results instantly instead of having to roundtrip an API, just send up the whole dataset with your initial load. After gzip it's nowhere close to 2MB anyway.

Also, I think suspense is an anti-pattern now. We've all been conditioned to groan every time we see suspense animations because it means the website must be slow. It's better to just have a little circling loader or just freeze.

3 days ago

countWSS

The neglected part here is latency, speed itself can be masked by progress bars/animations, but having visible lag ruins the idea of speed and users treat it as slow vs animated loading bar.

3 days ago

archargelod

Maybe it's me who's weird, but I find animations as much worse - it's basically pointless and wastes slightly more time (even when program is fast enough!).

The interface without animations feels snappier even if sometimes it takes a second to load. I disable any and all animations in software that I can - particularly in Android (via developer settings) and Linux (i3+vim vs something like KDE+VScode).

3 days ago

kazinator

Some tiny amount of animation is needed to show that the system has responded.

I regularly use a website in which a submit button does not change state in any way. It is indistinguishable from the click having gone to /dev/null. And the completion of the action takes a copule of seconds.

It's literally, "no response ... few seconds ... oh, done!"

If the button simply responded in the usual way, like 3d poppin in and out effect, it would be better. The UI can change state also to show some "wait ..." text.

These are examples of animations, just not progressive/persistent.

3 days ago

TeMPOraL

> I regularly use a website in which a submit button does not change state in any way. It is indistinguishable from the click having gone to /dev/null. And the completion of the action takes a copule of seconds.

In the good old days, you'd have the request sent by that button reveal a small, transient status bar showing the target URL at the bottom, plus the "Refresh" button in the browser toolbar would change to "Stop" instead; both effects lasted for the duration of the network roundtrip. It was enough of an indicator, and since it was not controlled by the website, it wouldn't break or lie to you.

2 days ago

qup

As a kid I liked the interfaces that lagged badly, but still accepted input perfectly.

It felt like I was racing. Type the whole message before the screen updates? Check.

I miss AOL sometimes.

3 days ago

iLemming

Free and open-source software is certifiably best. Even when the proprietary alternatives have better features and are faster.

I've been using computers for decades, and have used dozens of paid products, but not a single paid option stuck with me forever, while tons of open-source tools are literally irreplaceable - and not because I'm just used to them, but specifically because they give me control to customize them just the way I need.

3 days ago

bryanrasmussen

https://medium.com/luminasticity/on-premature-optimization-i...

wanders a bit around the premature optimization history, but later has

>Nowadays almost all development is for things that are not necessary. Pretty much all modern development is for things that are entertainment....The difference between things that are necessary and entertainment is that you will wait however long it takes to do the necessary thing

in the reductive view of the article everything that is not necessary is termed entertainment.

But I have noticed this. I often drop useful things because it just isn't worth it to wait. So the argument really is, in today's world, speed is almost always the most important factor anything accessed through the computer can have.

2 days ago

ungreased0675

I run headless Alpine Linux (a minimal distro) in my homelab and it’s fast AF. The lag in Windows Explorer is sad when something like cd folder/folder is instant in Linux.

3 days ago

marginalia_nu

I really don't understand how you can even create software that feels as bad to use as Windows Explorer. It's like it's barely attached to reality. There's this weird floaty delay in everything. You copy a file, or did you? You're not sure. It hasn't updated yet. Oh, now the copy dialog appears with this progress bar that isn't showing progress. The dialog just sits there. Is something happening? I don't know. Many seconds later the dialog closes. But it hasn't showed up in the window yet... oh, now it did!

How is that even possible, especially with modern hardware? Like you'd almost have to build the file explorer around like a sqlite-based message queue with a 1500ms poll interval to get performance characteristics like this. Absolutely insane feats of architecture astronautism are no doubt required for this to happen.

3 days ago

fuzzfactor

>I really don't understand how you can even create software that feels as bad to use as Windows Explorer.

I was wondering how bad a sign it was when the decline in performance between Windows 95 and Windows 98 was detectable in many ways, but nobody was complaining because it was not always noticeable on PCs that were 3 years newer. You had to figure Microsoft developers had way better PCs than that, and didn't have any clue at all.

Turns out my suspicions were correct, it was the insidiously ignored ramp-up to exponential amounts of sluggishness as time marches on.

You know, like a snail without a shell :(

3 days ago

pjmlp

The new Windows Explorer uses WinRT/WinUI, with its AddRef/Release all over the place.

https://www.techpowerup.com/forums/threads/microsofts-window...

And yes, it sucks,

https://github.com/microsoft/microsoft-ui-xaml/discussions/1...

2 days ago

BoingBoomTschak

Wild theory for fun: this is on purpose to condition people in order to seamlessly switch to OneDrive as whole data drive.

At least your description matches some the pain I get using NFS + lf.

3 days ago

marginalia_nu

Well yeah, it kinda feels like you're using NFS, and the server you're connecting to is in orbit around mars and is using a pringles cantenna to get its wifi signal back to earth.

Like the vanilla file explorer experience is way worse than anything I've come to expect with stuff like CIFS and SMB.

3 days ago

gmm1990

It’s probably got phone home a few times to to make sure they’re measuring user engagement

3 days ago

sharts

Electron?

3 days ago

prodigalknight

To be fair, cd folder/folder is also instant in a command line in Windows, it's just the GUI aspects that are slow. Comparing Windows Explorer to a terminal is comparing apples to oranges.

3 days ago

bayindirh

I don't think so. Windows is a GUI first OS, and Linux is a CLI first (or even CLI native) OS. You can't open a command line window in Windows without loading more than half of the desktop stack.

In that sense, when a terminal (running on a desktop environment) in Linux is faster than Windows Explorer, it's a shame. When a big file explorer like Dolphin drives circles around native file explorer of Windows, that's a big ole embarrassment.

3 days ago

pjmlp

Explorer used to be fast, when it was a pure Win32/COM application.

Then came the rewrite to adopt WinUI elements, and WinRT as well,.....

2 days ago

bayindirh

I know. I used to spend countless nights on older Windows versions, you know, when I was young(er).

Now I know better and don't use that thing as a daily driver for... 20 years now? :D

2 days ago

sgarland

I don’t think I’ve ever noticed a difference in speed on the terminal between distros. Shells (or more accurately, plugins / frameworks - I recently gave up oh-my-zsh in favor of zimfw for that reason), yes, but not the terminal itself.

3 days ago

purple-leafy

Slow software sucks and simple is good.

I’m making browser games and my core idea is that they must be fast as hell and light as hell. Such that they can run on a potato!

Unfortunately this means cutting non essential animations lol.

And testing on throttled devices (low end mobile) and respecting thermal throttling

A recent win for me for performance was:

- 8192 simultaneous entities on screen path finding, checking reward functions, making strategy decisions with zero frame drops

- sub millisecond average frame Time (more like sub 0.5ms) with 256 entities on screen (logic and rendering)

- “compressing” game replays from 100KB naive to 1KB

2 days ago

mwkaufma

Shout-out: Voidtools Everything on windows. Lightning fast file search.

3 days ago

rurban

Also called: "Death by PM"

Esp. known from Microsoft, Adobe, Google. Should be added to the Antipatterns repo

3 days ago

rossant

I fully agree. I loathe slow software. I hate bloat. I love fast software. As a developer, I'm completely, even irrationally, obsessed with speed, performance optimization, and profiling. I wish more developers felt the same way.

3 days ago

Sesse__

The sad part is that most employers don't care particularly about performance optimization skills (the economics don't work out, they can often just fix the problem cheaper with more hardware—and even if they can't, they mostly don't bear the cost themselves).

The fun part is that when your employer _does_ care about software optimization, few people are actually good at it and your skills are more exclusive :-)

3 days ago

jimbokun

This is true until they see the AWS bill after moving all their infrastructure there in a difficult to undo manner.

Suddenly they are very aware of the costs of inefficient software.

3 days ago

coldblues

Irrational how? What higher values does it undermine for you to make fast software?

3 days ago

didgetmaster

OP is probably referring to many engineering managers who think it is irrational to spend an hour in order to speed up a computing task that only shaves a few milliseconds off.

Even when that software is widely used so the few milliseconds add up to thousands of hours in collective time savings. 'We don't pay for user's time, only your's', is the attitude. Again 'irrational'.

3 days ago

jonhohle

There are dozens of us! Dozens!

3 days ago

sota_pop

We understand more than you’ll never know.

2 days ago

jdw64

Fast and efficient software varies depending on the local context, but for me, I think I'd be fine with something slower as long as it's convenient enough. After all, once it passes a certain threshold, I can barely even notice the speed difference anyway.

I wonder what OP's thinks of IDEs like VSCode. Would they see it as heavy and not great because it's Electron-based? But I find IDEs convenient.

3 days ago

[deleted]
3 days ago

jimbokun

Didn’t ask me but I’ve been enjoying Zed and finding it a big improvement over using VS Code.

3 days ago

giovannibonetti

Shout-out to PowerSync for making it easier to develop fast offline-first mobile apps. It pushes data from Postgres/MySQL/SQL Server subscriptions to a SQLite into the user's mobile device, avoiding the need for many loading animations when the data is there ahead of time. My company is a customer and we recommend it.

3 days ago

williebeek

I will read this entire article tomorrow while I wait for the Cursor UI and Visual Studio to finish loading.

3 days ago

jimbokun

I’m really enjoying Zed.

Definitely much more responsive than VS Code.

3 days ago

Self-Perfection

I am mulling the idea that we need a day of fast software software to spread the [culture?] of loving fast low-latency software.

Like a programmers day or sysadmin day.

That is a special celebration of fast software. To celebrate one should find faster alternative to some of his usual tools, try to switch and spread the word. Or maybe avoid opening Jira for a day at $job.

2 days ago

wseqyrku

I think it's the different feeling you get from using an end-to-end streaming service (compute, not videos) versus the one that does a lot of intermittent buffering. It's quite subtle actually. Using a vanilla language model can feel like that if it's also sufficiently small but they are going towards the opposite direction very rapidly now because cloud.

3 days ago

Ygg2

Honestly, I'm in partially disagree camp. What matters is how much time it saves.

A good WYSIWYG editor will run circles around the fastest text editor. Even if WYSIWYG is a bit slower to open.

It would be preferable for software to be more focused and faster over time, but that doesn't attract people to it.

3 days ago

kazinator

If the software is fast as a byproduct of being simple, that tends to align with correctness.

If it is fast because it is optimized, then that does not align with correctness, because optimizing something that works only adds risk.

3 days ago

RetroTechie

One could say that (for whatever reasons) many software makers do a poor job of keeping non-essential stuff out of their software. And/or do a poor job of taking the shortest route from user input -> result. Never mind UI design.

Similar thing is happening with web sites. Lately I've done "view page source" on eg. news sites I visit. Common pattern:

100s of KB html, loads & loads of meta tags, then a mountain of CSS junk, embedded scripts etc, and at the very end: maybe 3..5 paragraphs of text (a few dozen words each) with actual content. That's not counting images, video or external scripts, stylesheets, fonts etc. Oh and images not from the actual subject discussed, but 'random' sample illustration from an image library.

Ok sure, you want to add some meta-tags to html documents. You want a page to look good, and run a couple of scripts. But do you need a MB+ of that to provide a few KB of text to your visitors?

NO YOU DON'T. >95% of that is non-essential crap that shouldn't be there in the 1st place.

There's little doubt in my mind that (most) software development works the same way. Bad incentives -> crappy software.

3 days ago

aetherspawn

Just because something doesn’t perceive to be lightweight doesn’t mean that it isn’t. Many modern web frameworks are extremely lightweight (ie Svelte), but it’s complicated how they achieve it, and the source code looks like sludge.

2 days ago

snek_case

Simple software is also easier to optimize. The simpler it is, the less weird corner cases you have to deal with.

3 days ago

mikebs1

In production operations this plays out concretely. The systems that hold up under incident pressure are almost always the simple ones. Clever optimizations are the first things to behave unexpectedly at 2am.

3 days ago

fmajid

No, no software is the best software.

BTW, the title should say "(2019)".

3 days ago

embedding-shape

Best solution is no software, or as little code as possible. But that the best software is no software isn't very practical or actionable :)

3 days ago

fmajid

Example: I only buy basic Logitech B110s wired mice. No vendor software needed to activate mostly useless extra functionality, compatible with every single OS, including OpenBSD which doesn't support Bluetooth. In this case, no (driver) software is the best software.

3 days ago

kazinator

But that's an example of fast software: how many nanoseconds does it take to run zero instructions?

3 days ago

thunderbong

No code is faster than no code

3 days ago

sfn42

Faster at doing nothing?

3 days ago

benj111

Yes.

If you want to do foo. You don't need framework bar to load baz or call home to qux.

That's all added complexity that isn't inherent to the task.

So we aren't talking about not doing bar. We are talking about not doing all the other things that aren't for the benefit of the user.

3 days ago

coldtea

Yes. Code doing what you need && nothing else is better than code doing what you need && 10 other things you don't need but have to take a perf/memory/clutter hit for.

3 days ago

dan_i

[dead]

3 days ago

winrid

Pretty proud that after six years fastcomments is still only about 30kb

I should probably work again on getting that down some :)

2 days ago

sylware

Remove the specter and friends mitigations from your linux kernel, and your system will be significantly faster.

3 days ago

esafak

What do y'all do and use for performance testing in CI, given that host speed can fluctuate?

3 days ago

coldtea

Why would host speed fluctuate?

3 days ago

esafak

Noisy neighbors.

3 days ago

pgisapedo

No way I wanna chat with my oven

3 days ago

mike_hock

Got any burning questions today?

3 days ago

jagged-chisel

Maybe a few half-baked thoughts.

3 days ago

arikrahman

RapidRAW offers a good lightroom alternative nowadays.

2 days ago

deterministic

A typical problem with software is that development continues after the software has already reached its peak. Instead of making it better, new features and changes gradually make it worse. Eventually, enough users leave that it is no longer worth paying a team to keep working on it. And then the cycle starts again.

2 days ago

zombot

The best software is correct and safe software. Rating "fast" more important than that is what started all this "worse is better" mess in the first place. Just not enshittifying and not using Electron should be fast enough if you don't write dumb code.

2 days ago

nvms

[flagged]

3 days ago

[deleted]
3 days ago

gsu2

[flagged]

3 days ago

ManuelKiessling

The article is from 2019.

3 days ago

arcanemachiner

The slop is breaching temporal containment!

3 days ago

aetherspawn

Mr. Robertson: That's the way it has to be. That's the way it's always been. You should understand that better than anyone.

Temporal GPT: The snake that trains on its own tail, forever and ever?

3 days ago

mtsolitary

Can’t think of a less sloppy writer than Craig Mod…

3 days ago

sgarland

I think the author has a certain writing style that you apparently dislike, which is fine, but it’s hardly slop. I agree that the comparison between Sketch being somewhat unreliable but fast undercuts the claim that speed and reliability often go hand-in-hand — though one could argue that the modifier “often” saves it.

I’ve found that writers who self-profess to have ADHD often write in this way, with multiple, seemingly disparate points being made that can tie together if you squint. As an ADHD person who enjoys writing, it makes sense, and at least in my head, these points always connect; I’m just not great at demonstrating how they connect. I’ve no idea if the author is neurodivergent, but it’s one possible explanation.

3 days ago

robjimgreen

This is definitely not slop. I’ve followed Craig Mod’s work for a long time and he’s a prolific, talented, and very human writer.

3 days ago

stcg

What makes you think it is slop? The emdash?

3 days ago

nubg

> EDIT: I didn't say _AI_ slop

Ahahaha holy cope

3 days ago

FrankRay78

Slop or not, I enjoyed reading it. And could relate.

3 days ago

HelloUsername

3 days ago