
Fast Software, the Best Software - Tomte
https://craigmod.com/essays/fast_software/
======
gordon_freeman
Author's point about Google Maps being bloated and slow is 100% true. I use
that app every day and I just recalled today when I first started using Google
Maps in 2009 on my good old Nokia E63 phone it was fast and so great and then
since last few years the app's design keep changing (at least on Android) and
it is hard to keep up with these design changes and worst of all...every
design change makes the app even slower. :(

~~~
malingo
In the past 18 months I've noticed Google Maps' navigation prompts being
announced just _slightly_ too late for comfort; e.g. I'm often nearly into an
intersection at 30-40 mph when my phone tells me to turn onto the cross
street. In that same 18 month timeframe I've moved to a new city so I'm
acutely aware of this lag.

I chalk this up to Google Maps' overall bloat and sluggishness on my 2-year-
old phone.

~~~
83457
Would you happen to be playing audio through Bluetooth? My car has a delay for
non-call Bluetooth audio which causes that delay for me and gets really
annoying. I will often take the phone off car Bluetooth just for that reason.

~~~
brokenmachine
On my phone it doesn't even get the audio prompts out when I'm playing music
from the phone through bluetooth.

The music just cuts out for a few seconds, but there's no navigation audio.

I've turned off navigation prompts for that reason, and just check the "next
turn" thing at the top every now and then.

~~~
sciurus
What's even more bizarre is that for me, when using bluetooth audio I get part
of the prompts, but other parts are missing. I I remember correctly, it leaves
out important words like "left" amd "right". It works fine as soon as I turn
off bluetooth.

~~~
toast0
I get the prompt starting, then the volume on the music is lowered.

------
nateburke
One benefit of performing at the speed of the human hand not explicitly
discussed here is the ability for users to _compose_ their own features (and
to love doing so!).

If I need to wait even a second for a page or app to respond per click, I am a
lot less likely to _invent_ in your app. I won't stretch the boundaries, I
won't do things that take more than 4 or 5 clicks. The app will _fit_ me less.

I will call up and ask for a feature that is a 6-7 click combination, if I am
paying.

And if you build that feature, now you will likely have a slower product
overall.

And also a slower product development org. Because more features mean more
product managers. And more product managers mean more coordination meetings.
And more coordination meetings mean... well you get the picture.

Love this post!

~~~
typon
The creativity with which I see people "compose" Excel actions together 100%
supports your theory.

~~~
mruts
I sometimes watch analysts at my firm use excel. It’s pure magic in the right
hands, absolutely sublime.

~~~
giancarlostoro
In the words of one of my coworkers: Excel is the most abused tool known to
man.

------
markdog12
Gmail is now _crazy_ slow for me. Used to be nice and snappy, I dread even
clicking a button in there now. I even pay for it with GSuite.

> I sigh — actually sigh — whenever I have to open Photoshop

Yep, quad-core laptop with fast SSD and I dread opening it. I remember being
an early adopter with an SSD and I just used to open PS to see how fast it
opened. They took that feeling away.

~~~
asark
Use the "basic HTML" version and make it your default view. On mobile it's
even worth putting up with its more desktopy appearance to avoid the bloated
crap that is modern Gmail.

The site takes so f*$%ing long to load you should have no problem clicking the
"Slow? Try the Basic HTML version" link, maybe with 2-3 tries to figure out
where it is (it's a small link). Then you should see an option to set it as
your default.

Bonus: you can actually leave it open in a tab without eating three figure MB
of memory and sometimes slowing down your machine doing god-knows-what in the
background. Only downside is no notifications for new mail, but 1) that
assumes you consider that a downside, and 2) that's what actual, native email
clients are for.

~~~
Nition
Here's a direct link to go to the basic HTML version:
[http://mail.google.com/mail/h/](http://mail.google.com/mail/h/)

~~~
chii
And the mobile-web version is even better imho :
[https://mail.google.com/mail/mu/mp/](https://mail.google.com/mail/mu/mp/)

------
overcast
I've been taking this philosophy to heart the past few years. Working in the
corporate world, I find users acceptance level to be in the tens of
seconds/minutes/HOURS?! for queries and reports.

Projects I've worked on have focused on being as minimal and lightning fast as
I can possibly make them. If I add a new feature/query, and it's not instant,
I don't ship it until it is.

I don't know where or when this became norm, but often times the difference
between hours and near instant, is a matter of a simple query optimization.
Waiting more than a few seconds for something to run is infuriating to me.

~~~
the_duke
The other side of the coin:

* Why waste development time on something that is only executed once a month, or once a quarter, or even once a year? If you don't need to iterate on the reports, waiting a while for something that is almost never done is fine

* Often simply adding a new index can reduce a query from hours to seconds. But why bloat your DB with an index and potentially reduce insert performance for something that's almost never needed?

~~~
bartread
> But why bloat your DB with an index and potentially reduce insert
> performance for something that's almost never needed?

Oh, for crying out loud: will you _please_ stop trotting out this tired
nonsense.

This _may_ have been a problem _sometimes_ in the 80s and 90s. With any good
modern RDBMS, say SQL Server 2017 (but you can pretty much pick any you like
the look of[1]), and a half-competent developer and/or DBA, insert performance
is almost never a problem when adding an index.

You generally need some extra storage space for the index, but so what?

I have seen, with surprising regularity over the years, tables with no indexes
at all where adding a single clustered index (which is the table itself) can
massively improve performance. In this scenario no additional storage is
required.

 _[1] I pick SQL Server because I know Microsoft started seriously addressing
insert performance, which had been a problem with SQL Server 6.5 and 7, in SQL
Server 2000. Nowadays, if you 're half-competent, there really is no issue
worth talking about. If you're not it is, of course, still possible to do
crazy things that don't perform well. All truly powerful programming
languages, database systems, et al., will cheerfully hand you the rope you
need to hang yourself._

~~~
ShinTakuya
Claiming they have no impact besides storage is also being disingenuous. The
more indexes you have, the more noticeably slow inserts have become on some of
the tables I've worked with. Of course, this was an inherent issue with the
table design (massive table with lots of columns and a lot of indexes) but
sometimes you can only work with the legacy system you have.

In an ideal world with a sanely (not over the top or inadequately) normalised
database I'd agree with you. But in my experience there have been times where
adding an index for a rarely run query was absolutely the wrong decision.

~~~
bartread
And that's fine, but you obviously did some investigation: what irks me is
people trotting out this line about insert performance with no investigation.

Of course, if you over-index a table, there can be some impact but in the
general case that I've seen over the years that's seldom the problem.

~~~
ShinTakuya
Oh okay, I can agree with you there. But I think as a general rule, if
something is done less than once a day and it's already a heavily indexed
table you can probably skip the index unless it's a massive or potentially
massive table. In that case it may be worth exploring alternatives.

------
0xDEEPFAC
Unfortunately, people have contempt for programming in native APIs like _gasp_
Win32. I doubt universities are even producing people capable of programming
proficiently in anything except Java and Javascript - which would explain why
the desktop has turned into a hellscape of Electron "apps"...

[https://medium.com/commitlog/electron-is-
cancer-b066108e6c32](https://medium.com/commitlog/electron-is-
cancer-b066108e6c32)

~~~
stinos
There certainly are universities out there with proper CS courses teaching way
more than Java and JS so your point is a bit moot. But that doesn't take away
that I also have the impression that universities alone do not produce people
capable of programming proficiently in anything at all especially not when it
comes to programming complete programs of anything more than very small scale.
They simply can't because that takes experience in writing actual software.
Whether people get that before they even were in uni of after doesn't really
matter it seems.

All anecdotal, but I've seen a bit too much people with CS degrees who were
clever enough, had all the knowledge, could produce smart algorithms and
everything you want. But the code would just work and that's that. Like: build
process only works on their machine, git history like written by a child or
non-existent, code impossible to integrate in other projects, trainwreck-like,
violating anything you can think of and so on. Is that bad? Well, yeah, but
it's also pretty normal and it's not always problematic: teach them some more
in an actual team and the really good ones will be better than you in no time.

~~~
gmueckl
University is not coding school, either. Students have to learn about a large
set of topics and precludes large projects for the most part. Some
universities counter that by adding mandatory labs that have students work in
teams over longer time scales. But even that is just enough to give them the
bare basics of proper work experience. They will have to get that elsewhere.

Also, writing code that barely works and barely gets its job done is a skill
;). Ideally, it means that the person knows how to get something done with
minimal effort when that is all that is needed. I noticed that I started to
lose that when the projects I worked on became larger and had to meet higher
demands. I tend to do stuipd things like one off scripts "properly" when
simple hacks would get me there faster.

------
helipad
I loved using Winamp over say Windows Media Player in the early days of MP3s.

You could throw hundreds or thousands of tracks into your playlist and could
scroll incredibly quickly through them, even on relatively slow PCs of the
day. In an age before Spotify where to have vast collections was appealing,
all my friends could scan each others' playlists and immediately start playing
a song.

The speed of the software really did help discover new music. Scroll, double-
click, scroll, double-click, scroll, double-click.

~~~
noisem4ker
Same experience today with foobar2000. Faster than any webapp could ever be.
And, by the way, to have a vast collection is still just as appealing.

~~~
mkgolden
Foobar2000 is the bee's knees

~~~
bexsella
It really whips teh llama's ass...

------
hinkley
This comes up in human factors/UX, and it has some implications in both
directions.

The observation is that a series of closely timed delays are experienced as a
single, longer delay - or interaction - by the user.

The upshot of this is that a site where all pages are cheap but there are more
of them may be more pleasant for the user than a small number of kitchen sink
pages (finding stuff with the scroll bar is also slower). However, very very
few of my employers have been willing to sign onto this.

Everybody wants their stuff on page 1. Page 2 at the least. Only losers have
their information on Page 4. And if your stuff in on page 20... think of the
shame. Can you even face your family for the holidays anymore?

What's really fucked up about this is that people consider carousels to equate
to being on the front page. There are websites where I could visit literally
every single page on the site in less time than it takes for the goddamned
carousel to finish doing its thing. The inmates truly are running the asylum
right now. Which is why I've done the Homer Simpson in the Hedge maneuver into
backend work.

~~~
eckza
Backend is best end.

~~~
mankeysee
Not for long. The js people have discovered Node.

------
austhrow743
One important reason I value speed in software is that it leaves me less time
to get distracted. If I'm expecting something to take a few seconds, often
that's enough wait time to prompt me to check my phone or reddit or something.
Best case scenario I've just turned a 3 second delay in to a 10 second delay.
Worst case and frequent scenario because I'm ADHD as fuck is that I get lost
browsing.

An area where I think speed is neglected is when people are thinking about
what to build. Something I see mentioned occasionally by people here, on
reddit, and by friends: They'd like to work on a side project but don't have
any ideas for something useful to build. Just take something thats otherwise
already useful but slow and make it not slow! These days you can't swing a
dead cat without hitting a web app that doesn't need to be a web app, or
desktop app built as a web app. There's no shortage of options.

~~~
jerrre
I very much agree with your first part, and slow software make me physically
uncomfortable sometimes. But I think you overestimate your last point. Can you
name examples of software that could (partly) be recreated faster as a side
project?

~~~
luigi23
Not an OP, but two things have recently come to me: 1\. Calendar view with
hours/minutes on macOS. You have current date on top, or Calendar app. I want
to have shortcut to access this app/view, without leaving full screen mode.
2\. Scratchpad on status bar for macOS. Evernote has it, but I don't use this
app anymore. Just simple scratchpad, same as calendar view, accessible via
shortcut, without leaving fullscreen. I often build an app in Xcode and want
to note sth to myself, but making comments on Xcode would mess up building
process. And I don't want to leave fullscreen mode to go to Notes app - slow,
distracting and I have to create new note in correct folder.

------
JustSomeNobody
Speed is important. But what can be more important for the end user is the
_perception_ of speed.

A decade or so ago I was looking into reporting tools. Crystal Reports was
getting expensive and I was looking for an alt. Some of them were faster at
generating a several hundred page report but CR did something the rest didn't
do. Instead of making me wait for the entire report to generate (several
minutes) it would allow me to view the pages _as they were generated_. This
meant I could read the first few pages while the rest were still in process.
This made CR _feel_ many times faster than the others.

~~~
jakobegger
I think the important part is _responsiveness_.

I once made an app with an export feature. It was pretty slow (I benchmarked
it against other tools and my tool was an order of magnitude slower)

But it was extremely responsive. The status bar updated frequently and was
accurate, and a cancel button responded immediately.

People in reviews wrote that my app has great performance! Nobody complained
that an export would take a minute! I did not expect that.

But then I realized that perception of speed / responsiveness is more
important than actual speed. My app reacted instantly to user input, and never
lagged, even while processing an export. I even wasted a lot of CPU cycles
updating the UI to show status. But the result was an app that felt fast, and
people really liked it.

------
meuk
> A typewriter is an excellent tool because, even though it’s slow in a
> relative sense, every aspect of the machine itself operates as quickly as
> the user can move.

For some reason, coffee machines with a built-in reservoir for coffee beans
annoy me a lot more than the ones with a filter. For one with a filter, I know
I have to put some coffee in it and fill the reservoir. I can determine the
strength of the brew by this as well. The ones with built-in reservoirs should
be able to give you a cup of coffee, but it is incredibly annoying when you
have to suddenly refill the reservoir.

While the total work you do is less, the machine is unpredictable. It feels
like the machine now controls you, instead of the other way around.

------
kieckerjan
So true. It is infuriating to know how much faster have become the last 20
years and to see how software manages to feel as slow as 20 years ago.

~~~
umvi
I remember Windows 95 on my Pentium 4 being lightning fast. Like, I've barely
finished clicking the icon and the program is already up and running.

With Windows 10 and my i7, I usually expect a loading screen or two before I
can use what I just clicked on (esp. Microsoft Office).

~~~
rightbyte
It might be nostalgia but ...

I believe the peak of user experience was Windows 98 sp2 when USB actually
worked.

I miss how you could hear the computer loading stuff when the HD made the arm
moving sound. When it took time to open "My computer" you could hear the
floppy drive looking for a floppy and the delay was fine becouse the reason
was obvoius.

I also miss the snappiness of Win32 GUIs just starting up in a heartbeat. No
animations to hide bloat. If it crasched there was a blue screen and pushing
the power button actually shuts down the PC power instantly.

Oh, and spamming ctrl-alt-delete resets the computer.

------
iainmerrick
Code bloat is such a strange phenomenon, the way it almost inevitably grows
over time. I’ve recently been noticing this with the Android emulator.

I created two emulator instances, API levels 21 and 28 (Android 5 and 9
respectively), identical emulated hardware. The API 21 VM is _much_ faster
than the 28 VM. It’s perfectly usable on my Mac where the newer OS is
unbearably sluggish.

Why is that? With every Android release, there’s a song and dance about the
work being done to reduce yank (“Project Butter” etc), so why does it keep
getting slower?

Google have lots of amazing engineers, the world’s best datacenters and a vast
pile of cash, so if they can’t win the fight against bloat, what chance do the
rest of us have?

~~~
natalyarostova
I may be wrong on this, as I've only worked on one software team, not at
Google, but at least on my team I notice the intense pressure to deliver new
features, as well as new product managers who are evaluated on their ability
to work with developers to ship fast, results in performance becoming a second
class citizen without a very senior very technical owner who ruthlessly shuts
down features and projects to protect these properties.

In short, I feel it's more an org problem.

~~~
iainmerrick
I basically agree, but at the same time, companies compete hard over speed and
benchmarks, so it’s not like performance isn’t on their radar at all. And yet
the bloat problem exists. Maybe they’re focusing too hard on low-level
benchmarks (JS execution, 60 FPS rendering, etc) and ignoring overall app
performance.

------
cosmodisk
6 years ago I joined a Swiss company that was running its entire operations on
a custom built solution on top of Lotus Notes.Boy did we hate it...Every time
you try open something you get this progress icon that used to take anywhere
from a few seconds to half a minute. I must give credit to the designers in
terms of functionality-it did all we needed(I did borrow some design solutions
for my next job), but the lack of speed!!!! I even made an analysis on lost
productivity and produced to my manager...Then Americans bought the company
and eventually ditched that crap all together:)

~~~
pixelrevision
The pain with lotus notes is real. I had to work with it for 3+ years and was
blown away that someone was able to make an email client that took literal
minutes to perform any given task. I always think of it whenever I see any IBM
announcement for new tech.

~~~
cosmodisk
The real takeaway is that despite of all its sluggishness,IBM probalby made
billions out of it...This serves as a brilliant example to a lot of technical
people out here that things they deem important may not be the same as what
the end client thinks they are. Apart from this,my first and hopefully the
last experience of lotus notus could be easily expanded into a pretty long
article about desing, software vendors and product development...It used to
take about a year to add a button on the page layout...

------
markdog12
Users (desperately): "We need fast and correct software!"

Most companies: "Here, have this shitty UI redesign that makes our product
worse and 50x slower!"

------
kaiby
This article really speaks to me. It’s well written, and written like a rock
collector talking about each one of his rocks in his rock collection, only the
rocks are apps of different speeds.

There was a related thing that I heard from a previous CTO that changed my
outlook on how to write web apps: "Users shouldn’t be able to tell that
they’re using a web application. A web application should feel native. That
is, it should load instantly."

------
nojvek
> That said, Sublime Text has — in my experience — only gotten faster. I love
> software that does this: Software that unbloats over time. This should be
> the goal of all software. The longer it’s around, the more elegant it should
> become. Smooth over like a river stone.

This ^ time’s a million

------
danicgross
Should there be a leaderboard for interaction speed? This might encourage
employees to petition for speedups internally.

“We’re on track to be the slowest productivity app on iOS! Let’s prioritize
those responsiveness fixes!”, etc.

------
mnm1
I do not understand apps that add animations that can't be fully turned off
like os x and others. The designers of such apps are clearly delusional in
thinking that I want my user experience slowed down the millions of times I'm
going to use a feature like changing spaces in os x. That's not an
exaggeration. Same thing with unskippable cut scenes in video games. Or
anything like that that's not essential and is going to either be happening
thousands or millions of times or takes longer and a split second. These
designers, as most designers, are designing for eye candy, not usability. They
should be fired for such stupid and human unfriendly decisions. That's how bad
such UX is. Especially Apple's which makes their spaces completely unusable.

------
jstimpfle
The worst thing about _developing_ slow software is that it has a broken
feedback loop. I suppose that affects other qualities than speed, too.

~~~
ghettoimp
This is pretty much the one thing keeping me from writing some long diatribe
about how performance doesn't matter for a large amount of software.

I've got a tool that analyzes ...lots... of data, and takes about 2 hours to
run. This delay completely does not matter at all, when it's working. But man
it's brutal when I have to debug some problem.

------
ilovecaching
This is why I hate Python. The default for Python is slowness and an
incompatibility with the multicore world we live in. What does it sacrifice
these two first class citizens for? Shaving a few seconds off of writing
types, which has also been proven to be fundamentally incompatible with team
written software. Now we all get to write slow cli tools and write type
annotations anyway.

I would love to see people put efficiency at the top of every requirement
list. With languages like Rust you don't even have to sacrifice productivity
or safety to get it.

~~~
marmaduke
Python is pretty speedy for its intended use case of flexible scripting,
though certainly can bog down in large projects or lots of for loops.

Python puts programmer read/write efficiency at the top of the list.

~~~
mruts
Then why isn’t there a function to flatten a list in Python?

I’m not sure what Python’s priorities are, besides majorly sucking.

I can write software in Scala or OCaml or Racket in less than half the time of
Python, while also being 10x faster.

Python needs to die. It’s the most worthless language I’ve ever been forced to
use.

~~~
dragonwriter
> Then why isn’t there a function to flatten a list in Python?

There's a function to flatten an arbitrary iterable into a flattened iterable
and a function to turn any iterable into a list.

> I can write software in Scala or OCaml or Racket in less than half the time
> of Python, while also being 10x faster.

Many people, on many types of problems, find the reverse of the first
relationship.

~~~
mruts
What tangible advantages does Python have compared to Racket? The only thing I
can think of are the high quality data science libraries.

------
meuk
A lot of people are unaware of how insanely fast computers are. If you can do
a computational task in a year, a computer should be able to do it _well_
within a second.

At a previous employer, we had a test that took about 45 minutes, which most
people just accepted as a fact of life. Unfortunately, we had to use this test
a lot. After I optimized it (in my own time, because the team lead didn't
think it had priority), it took 5 freaking seconds. Probably still far from
optimal, but way more manageable.

------
faitswulff
Does anyone know of any other lists of fast software?

~~~
chewxy
The list at suckless.org is generally OK. Not all the software on that list is
fast, but are generally of focused quality

~~~
keithnz
The irony seems to be suckless.org itself seems to suck. I couldn't find the
list of software. Can't be bothered reading walls of text that seem to tell
you nothing useful

~~~
projektfu
Not sure how it looks on mobile, but the list is right across the top, with
sublists under core and tools.

~~~
keithnz
yeah, I worked it out in the end, but the Ux design is so bad there is no way
I'm taking their recommendations for software seriously. Given the upvotes my
original comment is getting, seems others are having the same issue.

~~~
projektfu
Sorry for trying to be helpful.

------
iamthepieman
I find it helpful in terms of UI to bin things into fast and slow. I do this
across the board, so in development, somethings will just be slow and trying
to optimize seconds away is pointless. I also do this in the UI so that long
running operations indicate that they will take a long time and there is
usually a visual queue feature so users can see what operations are running,
how long they have taken so far and expected completion time. An example is
raster operations on large raster datasets. They just take a long time on
standard business laptop hardware that my users typically have. Image
saturation analysis or reprojecting lidar data with standard algorithms can be
an hours long process if the dataset is a few GB.

But the process of queuing that operation up should be lightning fast and the
context menu to cancel a running operation or check it's status should be
equally so.

------
ChrisCinelli
When it comes to write software when you can write something "faster" in the
same time that you can write something slow you should always write it the
"faster" way. It's Obvious but... not really.

For example when it comes to web development, today most of the people still
choose solutions that by default always do diffing of the whole (virtual) DOM
to decide what to change in the DOM and server side build ton of object to
render HTML and destroy them after the rendering for each request (ex: React).
You can argue that the React ecosystem will save you time in writing code
because you can find a lot of good reusable components. Yes, but as you code
grow, moving to a different framework (ex: Svelte), when and if necessary, is
going to be a pretty large job.

You need to pick the right metric. The main one I alway look at is the ROI.
Usually I take "user satisfaction and delight" as the "Return" and the time I
need to develop the feature in that way as "Investment". The second parameter
is usually the risk involved.

If writing it "faster" take 10% more time and is safe may still be worth to go
the "faster" way. But when writing something "faster" start taking 200% and
more risk is added, you want to be very careful. Is it really worth spending
so much time on it?

Fast enough is fast enough.

You do not have to make everything the fastest you can. If a page takes 10
secs to load, what is the advantage for the user if you make it 10x faster? It
is a huge win.

What if it loads in 1sec and you make it load in 100ms? Still a win.

But now what if the page takes 100ms to load and you make it 10x faster? Not a
lot of people will notice the difference.

And if you have a page that loads in 10ms and you can make 10x faster nobody
will even notice it.

So if you like to optimize, go look for places where "10x faster" actually
matter.

It is more complicated in practice but keeping these principles in mind will
save you a lot of time to work on what really need to be done.

~~~
jcelerier
> You do not have to make everything the fastest you can. If a page takes 10
> secs to load, what is the advantage for the user if you make it 10x faster?

The point is not to make it 10x or 100x or 1000x faster, it's to make it so
that it is never slower than a monitor frame (e.g. less than 7-8 ms nowadays)

------
iforgotpassword
I haven't used Mac OS for a while

> macOS dialogs for closing an unsaved file have shifted from “Don’t Save,
> Cancel, Save” to “Delete, Cancel, Save.”

Does that mean if I write some essay, save it, then make some changes and
close the application, it will ask this? This would imply like it would delete
the whole file from disk instead of just discarding the changes I made since
saving. I really hope I am wrong here and there is a different dialog for this
case, otherwise this is just very horrible.

~~~
losvedir
The "Delete, Cancel, Save" is when you close a _new_ document without having
saved it. In your scenario, it's basically saving as it goes. The document
will just close, without a dialog, but your changes will be saved.

macOS is trying to do away with the concept of "unsaved changes" altogether.

~~~
iforgotpassword
Thanks, that makes sense then for that dialog. Doesn't seem as bad as the
author makes it out to be. But in general, I'm not really a fan of this
implicit saving stuff, but maybe I'm just getting old and unable to adapt. :)

~~~
iainmerrick
As a long-time Mac user (long enough to remember OpenDoc!) I massively dislike
it. It’s becoming difficult to open a document without accidentally making
some trivial change, which is then auto-saved. If the doc happens to be in
Dropbox, you see the change notification and wonder, _what did I do?? I just
wanted to look at it!_

------
meuk
One of the reasons I always get annoyed when I work in windows: Programs take
forever, I need the mouse for everything, and god, the installation times.

I recently started working at a company where we use Linux workstations. I
work on a machine where I don't have sudo rights. Yesterday I asked a co-
worker if he could install a package for me. From the time of me asking and
the time that the package was installed on _all the workstations_ , there was
about 10 seconds. Nice.

------
amykyta
Great post. On the topic, the Bloomberg terminal is a dinosaur and is slow to
start from what I remember but email and most of the features are pretty much
instant in their response. There is plenty of resistance from customers to
newer features which tend to be more ‘modern’ looking and feature-full but
have noticeable latency. To give an example, there is a feature to price
mortgage backed bonds, the 15 year old (maybe older?) version loads instantly,
takes command line arguments, on the other hand the new version takes maybe a
few seconds to load and matches 98% of the old functionality plus 30-50% of
new capabilities. The new one is basically universally hated.

------
barbs
One app that I've always found refreshingly fast - Trello.

Sure, it has way less features than other products, but I wouldn't be
surprised if Jira's inherent slowness is what turns off a lot of people.

~~~
Schwolop
I'm so irritated by Jira's slowness that I'm actively evaluating alternatives.
The leading contender is something I'd never heard of before - Clubhouse.io.
It's missing a few things, but it's fast and slick and the difference is
compelling enough to make me think the limitations are worth it for the speed
boost. I'd love to hear others' experiences if anyone's used it extensively?

~~~
nXqd
I totally agree with this, Clubhouse is slick and fast. I enjoy using it
everyday :)

------
musha68k
I used notational velocity for many years. It was great because of its brutal
focus on note taking / finding and it _was fast_ indeed. 10/10 this message
needs to be spread!

------
neop1x
Performance matters! It is important to find the source of the slowness - for
example I discovered some CSS animations are useless and very slow. Vuetify
material button felt very slow on touch until I removed that useless material
ink spreading effect, which IIRC even had to modify DOM after touching it to
work. I still believe JS apps can work fast, if only developers cared more
about speed than all those useless animations and transitions...

------
odqs
Could someone please recommend a fast video editor?

I have been on the lookout for one for quite some time now. I'm looking for
something a little more user-friendly than say FFmpeg, but all the very
feature-light and also feature-rich alternatives seem incredibly clunky and
slow, even on my fast machine.

Thus far I've tried Shotcut, Premiere and Sony Vegas. I would be very grateful
for any suggestions!

~~~
tpxl
Have you tried Blender for video editing?

------
gaze
Nobody likes slow software, and we know that it's bad, but we keep writing it.
How can this possibly be turned around?

~~~
asark
Not sure how to fix business, but for B2C getting rid of the ability to
monetize user data would help. Right now businesses go: well we're gonna have
to vacuum up all their data anyway, and our price is free, so who gives a shit
if we write it in slow and bloated HTML+CSS+JS? All that matters is that we're
on every platform _yesterday_ and sucking up that sweet sweet personal
information.

------
Waterluvian
I once worked with an ortho imagery rectification program that was so
wonderfully designed I described the hours long task of rectification as a
"ballet for my hands"

There's something just so wonderful about elegant, fast interfaces.

------
mmckelvy
> Close to the metal craft.

Loved this phrase.

------
rkagerer
Any Windows recommendations for something with the speed and elegance of
nvALT?

~~~
marmaduke
There's a less beautiful Python/Tk remake called nvpy

------
bibyte
Speed is important for me too. BUT only for the software that I use daily. I
could find faster alternatives for some software that I use. But what's the
point when I rarely use them.

~~~
ant6n
If you daily use software that you use rarely, there may be a point.

~~~
bibyte
I am sorry but I don't understand you. There are two categories of software I
use. One that I use daily and the other I rarely use. Speed is only important
for me in the first category. I hope that clears things up.

~~~
ant6n
The point is that rare software may get used every day ... just not the same
particular piece of rare software.

Or put another way:

“Scientists have calculated that the chances of something so patently absurd
actually existing are millions to one. But magicians have calculated that
million-to-one chances crop up nine times out of ten.” ― Terry Pratchett, Mort

------
zapzupnz
A non sarcastic tl;dr: it’s not that fast software is better, but rather that
slow software feels worse. I don’t know that anybody could disagree with the
sentiment of how using something _feels_ : everybody likes things to be snappy
and responsive, like the app is getting out of the way and letting you get on
with your work.

------
awinter-py
speed matters [http://jsomers.net/blog/speed-
matters](http://jsomers.net/blog/speed-matters)

------
blodovnik
Not all optimization is premature.

------
de_watcher
Have to do a crazy zoom in to see the street names...

------
la12
The real reason in vast majority of cases, why most of our software seems slow
is not because someone used Javascript instead of Win32 C or something else
programming language related. The real driver of slowness are the network
requests for everything.

You could build your software in assembly but if each action has to hit a rest
endpoint, the network request will utterly dwarf anything else happening
locally.

So as more and more software moves to browser as web-apps this slowness is
unavoidable.

Consider how more quicker and responsive Thunderbird feels to using gmail, a
web-app.

~~~
tluyben2
Well, let’s take one of the problem apps; Slack. It is slow because it eats a
lot of memory and makes my computer slow. You are right that networking makes
apps slow, but not to the point they feel slow now. If I have a background
thread getting Slack messages and nothing came in, why is the entire thing
slow as molasses? I know most apps/applications simply do 1-1 page to web api
req and if the web api req is slow they give up (usually with some stupid
message that they cannot connect / reconnect) but why would that be slow; you
can do that blistering fast with win32. And yet my Slack is usually stuck and
sluggish?

There is a lot of laziness going on: not such an easy relationship between
slow web and frontend as you describe. Most apps can work fine with stale data
for most uses; they just do not because then the developer has to think about
it and that costs money/time and takes talent.

~~~
WillYouFinish
Slack is a great example. My first thought was Jira. It’s a great software for
functionality, but it’s so unbelievably slow that I tend not to use it at all.
We have a quite powerful server for Jira and just five users. It should work
out fine, but I encountered waiting times of a minute to just load the start
screen. It feels like running all the time and as soon as you need to do
something in Jira you’re trapped in quicksand.

~~~
tluyben2
Jira, also Youtrack... Why are these systems so slow :( They had almost two
decades to optimize.

