Interesting addition to my “low end apps are cool” posts (Uber, Spotify) from Michael Tsai’s post on Fast Software is the Best Software:
Speed in software is probably the most valuable, least valued asset. To me, speedy software is the difference between an application smoothly integrating into your life, and one called upon with great reluctance. Fastness in software is like great margins in a book — makes you smile without necessarily knowing why.
[…]
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.
I was wondering this morning before seeing this why all software isn’t written like it’s designed to run on low end machines – not literally for the low end, necessarily (though that’s a great, and the most practical, benchmark), but for minimum footprint and maximum performance. Do we create bloat in our apps always in the interest of developing faster? Developing cheaper? My bet is no, we often create bloat simply because nobody is minding the henhouse.1
What happened to craft? What happened to wanting to support the greatest number of users? What happened to wanting to create the smallest, fastest apps?
IE 8 my schedule
This reminds me of a time (I’ve probably recounted this before) when I was on a team developing a schedule for a SaaS. When we were getting close to release, we got a little more serious about testing on IE 8 because, guess what?, a major logo client required it.
But guess what happens when you take a company of devs and you don’t tell them they have to use IE 8? They develop on Chrome (or, back then, Chrome and some Firefox/Firebug).2 And guess how often they use boxes that mirror what the users are going to use? Never. Literally never.
Guess which is a better approximation of end users’ experiences with your app, the phat dev box with Chrome or a four year-old tower with IE 8?
I think this is a lot of why software runs slowly. And it’s not simply that devs use better hardware, it’s that the difference between great hardware and bottom of the line – all the way down to below-TracFone-level Android phones in third world nations – is much greater than we (as devs) ever anticipate as we code and develop.
Unless devs develop and test on representative hardware, they’ll never truly value their app’s performance.
Why don’t we want to write thinner apps? Why isn’t this appreciated? Have you ever heard someone ask why you have and if you need each dependency your repo’s taken on? Have you taken a look yourself?
Sometimes it’s just as simple to create thin apps as thick when you’re starting a greenfield project. Laying down a good, thin foundation and making platform-accessibility a goal from the start creates better software.
1 Also, he’s right about Sublime Text. It’s insanely speedy. So many apps seem to keep pace through the years. It upgrades its version, you upgrade your box, but the app is still about the same speed. Sublime’s performance, on the other hand, screams now.
2 Did we have Safari specific errors on macOS too? Yes, yes we did, for exactly the same reason. Nobody was using the platform.