I still use Sublime Text for all of my programming and all of my newsletter-ing. […] The app is simple and superfast; I have it set up exactly the way I like it […], and it’s difficult for me to imagine ever switching to anything else.
Here is a piece of software as sturdy and obedient as a cast-iron pan.
I don’t know who develops it and I don’t care. All I know is that I can place my text cursor and read the surrounding code without a bombardment of popovers, pop-unders, pop-left-and-rights, pop-inlines, pop-in-and-out-too-fast-to-sees. […]
The perfect dev stack is a collection of software that each does one job and doesn’t suffer main character syndrome. I want to code, I’m not looking to make lifestyle choices. I don’t want a bloated everything app. Don’t get me started on the “unified toolchain” plague! Show me the latest VC-backed build tool and I’ll show you ten lines of PHP that does a better job.
If you’re fed up of the absolute state of things, Sublime Text still works.
I do care who develops good software since, at the very least, I want to give them credit. This is the best I could find, if you too are curious. It was prompted by someone asking:
I’ve been a Sublime Text user for over a decade, and now a Sublime Merge user, too. But it occurs to me that I know almost nothing about the team/company behind it.
I wonder if this is a nice example of the (quiet) posture of the company matching the (utilitarian) personality of the software it is making.
Sopwith is a 1984 videogame made by David L. Clark for the original, seminal IBM PC model 5150. It sports the distinctive 4-color CGA palette and an equally distinctive PC speaker soundtrack.
It’s also one of the oldest videogames still in active development, and I was surprised how enthralled I was learning about it.
(First of all, you can play Sopwith in a browser. Choose “single player” and then “novice” first for the game to tell you about its unusual keyboard control scheme.)
The current maintainer of the effort is Simon Howard. He wrote about Sopwith’s interesting history; I appreciate this kind of approachable and caring preservation of obscure titles. The history is worth a read.
From that, I learned a fascinating factoid. The game was intended as a demo for networking hardware, and the original author didn’t realize the game was “in circulation” for many years:
Intended as a trade-show demo, it’s unclear how Sopwith escaped to the general public. David L. Clark didn’t even discover until around 2000 that it had “gotten out”. Little did he know, Sopwith had been circulating for years in collections of early games for the IBM PC. Only a couple of years after the first version was released, ads were appearing in magazines like PC Magazine advertising Sopwith for sale as part of collections of games for the IBM PC
The modern edition started by Howard is called SDL Sopwith (SDL being a cross-platform graphics library):
SDL Sopwith is directly derived from the source code to the original DOS versions, and still includes changelog comments that date all the way back to 1984.
What I particularly liked about the contemporary Sopwith is its guiding document/philosophy page, also worth checking out in full. Here are some choice principles:
Sopwith has a long history that deserves to be honored and preserved. By default, the game should always play like the original DOS version. That means the gameplay in particular should be the same, without any significant differences. Someone who has just discovered the project should find it to be a delightfully accurate recreation of the game they may have played when they were younger. […]
Some new features can be enabled by default, as long as they are subtle, unintrusive, carefully considered and can be turned off. An example is the medals feature.
The game will never try to be “something it’s not”. This means that it will always have four color CGA graphics, PC speaker sound effects and a low resolution display. It will never add (for example) hi-res sprites or 3D models, digital sound effects or MP3 music. The goal is to be “a great old game” rather than “a mediocre modern game”.
New features should be fun and recognize the comical aspects of the game. Features should be carefully considered before being incorporated, not just added arbitrarily and thoughtlessly.
There is something in all this that I feel a lot of software could learn from – not just vintage games. I appreciated Howard being thoughtful about growing Sopwith without forgetting its roots, but also with understanding that some things have changed since 1984. You could imagine remixing “The goal is to be a great old game rather than a mediocre modern game” to something like:
Better be a great focused app than a mediocre sprawling app.
When you visit parts of the website of the Driver & Vehicle Licensing Agency in the U.K. outside of standard office hours, you will see this:
It seems ridiculous, almost like the famous 500-mile email bug, but Dafydd Vaughan explains how it came to be. It won’t be a surprise that the story starts with an old computer system, built around a day/night cadence where people would visit the agency during the day, the information would be collected, and all the data processing would happen overnight:
At the time, many of DVLA’s services – particularly those relating to driving licences were still backed by an old IBM mainframe from the 1980s – fondly known as Drivers-90 (or D90 for short). D90 was your typical mainframe – code written in COBOL using the ADABAS database package. Most data processing happened “offline” – through batch jobs which ran during an overnight window.
The team upgrading it in 2013 decided to not attack too many things at once, and swap the innards but keep the day/night system intact.
I’ll let you read some details inside if you are interested, and if you want to learn why the 2013 decision is still a 2026 (or at least 2025) reality. Like many of these, it is a story of heavy financial and technical constraints. But I will excerpt this bit, because I think many teams in any company – design systems, security, or “core” (whatever that happens to be) – would relate to it:
It’s difficult for an organisation to keep its focus and attention on a complex upgrade – particularly without getting noticeable benefits along the way.
The tricky part is that in many places you do end up in a legacy situation that is exactly as absurd as “an internet service having opening hours,” but you might be too close to the problem to even realize it.
Thank you to everyone who answered the call for good software updates from last week. I received so many nominations that the list below is severely narrowed down, but I appreciated every response!
I grouped the answers in sections I saw emerge organically, I included links to apps, and did some light editing for clarity. (You can always explore more answers on Mastodon and Bluesky.)
I hope you find this inspiring in some way – I know I did! – or at least enjoyable.
Something I asked for
People shared examples of improvements they particularly asked for, improvements that meant something for people close to them, or even simply seeing people given credit for ideas:
I’m a space educator and bring a mobile planetarium in schools. I use a piece of open source software called Gaia Sky. It is developed by only one developer, and I seem to be one of only a handful of people in the issue queue requesting updates. Always a prompt and incredible reply from the developer.
I filed a request: “In my shows, I tell the audience that the rings of Saturn are made of bits of ice, rock, and dust. Then when I fly through, it shows a mostly 2D ring system. Has [making the rings use particles instead] been considered before?” I made the issue on February 12, and by May 11 had a Saturn ring system with thousands of little rocks and pebbles running smoothly in my planetarium dome. Kids loved it.
Earlier this year I contacted Fantastical’s Flexibits requesting that hiding an event was accessible through the menu bar, not only in the contextual menu. Few weeks later, they emailed me to let me know the feature was coming in the following release.
The dev behind OpenStreet Browser listened to my feedback and added a filter item to a more logical category.
The recent SailfishOS update brought back the weather app and implemented Bluetooth for the Android support. Both of those are things my dad asked for, so I was quite happy! :)
The [social network] Pachli developer is amazing, the care he puts on everything, and mentioning every people that was involved on new ideas/fixes/improvements/translations... I do not remember others doing it. It’s great.
Every Pachli update is a prove of something great happened/is happening... Increases the hope world count a little.
I enjoyed using Easy CSV Editor and JSON Editor by VDT Labs in 2020-ish. Unfortunately, JSON Editor was macOS-only at the time while Easy CSV Editor was also available on iOS. So I contacted the guy behind VDT Labs, and asked whether he planned publishing an iOS version of JSON Editor anytime soon.
He got back to me immediately, said he didn’t have any plans, but liked the idea. He asked for my opinion on a few decisions he’d have to make, then published an iOS app literally weeks later. I love using his software. […] When you published I trust in TextEdit, his stuff came to mind immediately despite getting the occasional feature here and there. It’s nothing flashy, but the apps are simply reliable and haven’t changed much at all.
Apps that are updated respectfully, without changing too many things
On that last note…
The last AntennaPod UI update looked great, but didn’t force me to re-learn how it works. It has remained stable from a UX standpoint for as long as I have been using it.
I use the Infuse app primarily on the Apple TV (but also on the Mac and iPad occasionally) and I’m constantly impressed at their singular commitment to deliver on making their app useful for its users in all sorts of small thoughtful ways on an ongoing basis. Most recently it was supporting Plex and Jellyfin-style folder/file naming conventions for movie extras.
The only upgrade that always pleases me is a major Debian release. actually I’m happy because it’s been a rock for more than 20 years for me. I hate how everything is perpetually changing in IT nowadays. Debian doesn’t. The only change I fondly remember is when zfs integration got easier.
Updates that showed developers cared about more groups of people than just mainstream
Pachli’s update to include pronouns of the posters in the timestream.
OCR on macOC and iOS expanded into Swedish a while back. Super useful, especially on OS level, so all apps can use it.
Not sure what version, but the recent macOS that added made-for iPhone hearing aid support made a huge difference in my work life.
TL; DR: Apple established a standard for “made for iPhone” hearing aids that pair directly to iPhones quite a few years ago, but it’s only recently (in the post M1 era) where Macs have supported the same protocol. It means that calls and other audio from my work Mac go directly to my aids, without needing a clunky intermediary device worn around the neck. Since I need to wear the aids anyway, it means seamless access to audio. It’s just such a nice quality of life improvement.
An update that made an app better for me was the recent addition of flood warnings to Watch Duty. I have a mountain cabin in California but my main home is now in coastal North Carolina. I installed, and pay for, Watch Duty for warnings on California fires, but I can now also use it for warnings about North Carolina flooding, which can happen during tropical storms.
Updates that felt genuinely focused on helping users
The grocery list/recipe keeper/meal planner app AnyList. They just added “leftovers” tags and recipe queues to a recent update and my wife’s over the moon. It meshes perfectly with how her brain operates.
It has not been made fully public, but I am playing with the preview release of [font editor] Glyphs. And it’s great: Huge number of small fixes all around, but the whole UI has been revamped to match the macOS latest. Running variable fonts for testing is so much easier with an axes slider. Lots of editing tweaks that make things much easier. Genuinely nice and useful stuff, they pay attention and listen.
Every upgrade to Halide has made me happy. I can’t think of a specific change but every upgrade seems like it does better what a camera app should do: have stuff where your finger needs to go without thinking about it. Anything that helps my finger hit the right place at the right moment without thinking it’s a win. I think a camera app is the ultimate example of cognitive load mattering.
I’ve been building different things with [web framework] Web Origami and the most recent 0.7.0 beta release allowed me to do a lot of things I couldn’t before.
The creator is an absolute pleasure to work with. He listens to folks using the tool. Every update is gold and makes meaningful improvements based on how people are actually using it.
[Window manager] Niri consistently has extremely well thought and well implemented out features. Many of them are things that I hadn’t even considered wanting from a window manager that I now can’t live without.
Every update I have ever received for the Android application Kanji Study has been delightful. Chase Colburn does a great job with steadily improving the app and adding great new features. There are a bunch of little UI flourishes in it that I think you’d like. The kind of thing that comes from a tight loop between developer and users, smoothing off the edges that provide friction.
Something that comes to mind is the way it implements history. If I clicked on one of the characters in the Kanji listing for 美人, it would take me to the page for that kanji, and it’s easy to end up down a short rabbit hole if you’re the kind of person who enjoys leafing through a dictionary semi-randomly. But there’s a good history functionality that makes it a breeze to get back, and you can jump to an arbitrary point in that history instead of mashing “back” until you get to where you want to be. That’s not award-winning design, but it’s good design.
Updates to core stuff that never asks for limelight
Flighty: I don’t think I’ve seen a team work so hard to get the core use of their app nailed perfectly. No enshittification, no horrific UI changes. Their most recent update just further enhances what they’re great at.
[Painting app] Krita’s latest version has on screen text editing and it’s a very welcome addition to an already great tool!
I don’t know how recent it was, but the one for macOS where you can cut and paste text from images was a real pleasure to encounter.
When [3D modeler] FreeCad hit 1.0 – lots of small improvements in the sketching workbench made an area of the app you spend lots of time in so much nicer.
I’m thinking of the Transit trip planning app, which I love! There’s a bug fix for a problem where you would be en route, then looking at a different app on your phone, then come back to find out that the Transit had been killed in the background, and you had to restart your trip planning. That was a definite problem and i’m excited to hear that it’s been fixed!
I was also reading about the big design update they put out last year, which i continue to enjoy and get a lot of use out of. :)
[Text editor] Zed once had “improved font rendering on Linux” in the release notes and the text really looked better after the update.
I really want to share the Fantastical Calendar Mirroring feature. I have happily paid for Fantastical for years. And over that time I have paid for some calendar mirroring tools, none of which I liked for the money. Now I get a streamlined mirroring feature in the app I already love. It was a total surprise too!
I have used Fantastical for years now and, when I had to switch to using a Windows desktop at work last spring, I downloaded the released-but-still-under-development Fantastical for Windows app. I was accustomed to changing the visible calendar group on macOS using Ctrl+1 and would often try it out of habit, even though it wasn’t implemented on the Windows version yet. In fact, I would even mentally convert the macOS Ctrl+1 command to Windows-speak and type Alt+1. Then one day earlier this year, Alt+1 actually changed my calendar group. Much to my surprise, I had again typed the shortcut, despite it doing absolutely nothing many times before, and found that Flexibits had not only added a keyboard shortcut for that setting, they had added the keyboard shortcut I knew to expect coming from macOS.
When did iOS add document scanning with OCR? iOS 17? 18? Much better to use a phone instead of a dedicated scanner for periodic receipt scanning, plus the document then syncs to a Mac.
[Text editor] BBEdit 16 has some nice quality-of-life improvements, like per-project colour settings, which might help me to avoid accidentally making changes to the wrong version of a project, something I’ve done more than once.
This is a sad, sad commentary on my life choices in general, but i happen to be really glad that a recent Outlook for Mac update gained the ability to import PST files. [Legal software] eDiscovery still exports in PST format, so until this feature launched you had another step (or more, depending on your method) in getting exported mail back into a mailbox that lives on a Mac.
App makers working hard on developing trust in ongoing updates
The Playdate game console. They do such a great job adding joy and functionality to the platform with each software update. I continue to love the music and thoughtful interactions throughout, but more specifically the recent-ish update they added to the game browser, adding in folders and improving access to games on the system.
Cities: Skylines II has been on an incredible upward trajectory ever since Paradox gave the game to Iceflake. Optimization, features, just overall feel of the game have all improved since they took over at the start of the year. It’s a great redemption arc for a game that many people want to be great, but fell short in its first few years.
[RSS reader] NetNewsWire: every update does something genuinely useful like action log in one of the latest updates, so I can see what’s the problem if feed update takes suspiciously long time.
Wrike Desktop for Windows: very much a rolling release model, they do a monthly update, and I’m just happy when my work applications don’t break or get a bunch of BS added that I didn’t need (just didn’t want to use enshittification twice in one email). The most recent update was minor, some field admin changes and some further detailed reporting. Can’t beat that.
The release notes I’m always excited for are Zen Browser. They’ve been cranking through a roadmap of user-focused features, and their design is opinionated about it. Not always right, mind, but with strong convictions. Recently, improvements around tab tiling and the addition of “boosts” – color scheme and element zapping without an extension.
Stripe continually improves. it’s the SaaS vendor I use and am most pleased by. Every few months they add a new feature and I usually react “ah, that’s good” and “wow, their documentation is so good I can decide if I want to implement this and implementation will be so easy”
The team at [map software] QGIS consistently makes the app better with each release. Over the years I’ve made my peace with a dorky OSS interface and I appreciate that this isn’t being continually reinvented. Meanwhile, they’re keeping up with all the changes and movements in geospatial tech and ensuring that updates to key packages make their way in.
Let’s hear it for game devs who do free content+QoL updates for years after release. No Man’s Sky is the poster child here, but I’m constantly amazed by the number of indies who substantially add to the game experience long after they’ve been paid. (And yes, I know this helps sell the game + DLCs). I think Criterion’s Burnout Paradise was the first to really surprise me this way. IIRC they didn’t add much content for free (maybe a couple of game modes?), but they overhauled the UI completely.
Yeah, Pachli and [browser] Vivaldi came to my mind too. These are the ones that I’m not afraid to update, and while they were great already, somehow they are still getting better and better.
the Typeface app for MacOS continues to be a spark of joy for me. Recent updates have added a nice font pairings tool and thoughtful UI updates. I always look forward to new updates from this dev.
[Personal finance app] YNAB! This one has been the most consistent over the past few years for me. It feels like every single update just made it so much better. They added a summary home screen, removed some fluff, and added even more reflection features which is really convenient for a budget app.
App makers that feel like they’re going against the current bad trends
For me, every [photo gallery] Ente update so far was a significant improvement and going in the direction I’d like things to go. Recently, I was positively surprised by the new offline gallery feature to use Ente without account from March this year – refreshingly different from where most projects are heading.
NetNewsWire 7 required macOS Tahoe when it came out, but was in a later update made compatible with previous macOS, Sequoia.
[Personal database] Obsidian — one change that was fun.
The folks at FernCRM made their platform AI-optional. They basically will turn off all the AI features if you don’t want them. And for the folks who use those features a tiny bit, they offer selective metering so you don’t have to pay for everything if you don’t use everything.
I literally canceled a premium subscription to a software I liked because it was mandatory and weirdly intrusive. People appreciate choices!
Pretty much any [social network server] GoToSocial update falls into that category for me. [Software framework] Forgejo updates do as well.
I found that projects with a strong anti-AI policy generally deliver delightful updates. I wonder if there’s a correlation. (I really don’t, there is.)
The excellent [podcast app] Pocket Casts just launched generated chapters in podcasts. They’re automatically added with (whisper it) AI, but that doesn’t matter. They just work and are surprisingly useful and delightful to use. This isn’t an “AI feature” - it’s a feature that just happens to have been made possible because of AI.
I find myself looking at the chapters of almost every podcast I listen to now as a sort of preview and taster and navigation menu. Helps me decide if I want to commit to the whole episode or just skip to a particular section. Wonderful stuff. I didn’t realise it would be such a valuable addition until it was added and I started using it. I’ve attached a screenshot from a recent episode of Blair Braverman’s brilliant What To Carry, What To Burn pod (which I can also recommend).
Updates that are presented well and fun to explore
We chatted about good release notes before, and here are some more good updates – ones designed that exude some amount of healthy pride, and ones that people simply enjoy reading.
The first thing that makes me happy is how pretty the notes look. They’re not a boring list of changes.
Soulver 4’s release notes were great: an overview of the new features followed by examples / documentation of how to use them.
I also enjoy reading This Week in Plasma for [Linux distribution] KDE, even if I don’t use it much and it’s not release notes strictly speaking, but the fact they explain what and why they did is so cool.
Apps that don’t pressure people to update
The most delightful part of the [calculator app] Soulver update is that they’re still doing major paid versions (not subscription).
Soulver 2 and 3 never stopped working. (I never got to use Soulver 1, so can’t speak to that.) In fact, the email that announced v4 said: “Please note, there’s no pressure to upgrade if you’re happy staying with Soulver 3, which you can continue to download from here.”
Ever since I started using Blender a few years back, every update has been solid, well documented, and focused on improvements to real things its users care about. Whenever I check the release notes it’s like: “new geometry nodes! more cycles renderer optimizations! more compositor features!” Even if this post jinxes it and the next release has all kinds of AI garbage grafted onto it, it will also never force me to update.
Particular updates that stuck in my memory
I really liked this section:
You asked for recent, but about 30 years ago I got a BIOS upgrade which fixed a bug in the HD driver and made it quicker. That was sweet.
I was just thinking the other day about how the MKII version of Roland’s MC-500 sequencer software is still one of the most joyous software updates I can ever recall. This was in like 1987 or something.
The details are somewhat lost in the mists of time but I just remember getting a whole boatload of new functionality, some of which I didn’t even know I needed, and yet it all fitted perfectly within the conventions established by v1 so there was nothing new to learn in terms of the UI. Amazing stuff for what was essentially a numerical keypad and a few function keys.
The MkII software came out when they released MkII hardware – but was completely compatible with my MkI. That was the big joy about it, getting all the great new features without having to obsolete/upgrade my hardware. (I think it even came with a sticker to put over the logo.) Can you imagine that?!
I hope you’ll forgive me breaking the rules a little bit, but one of my favourites ever was Super Mario Brothers 3.
Let’s pretend as we all should that Super Mario Brothers 2 never existed and look at SMB3 as a sequel that fixed so many things from SMB:
You could now go backwards in a level in case you missed something
You could replay a level you’ve already cleared to explore and find new things
You had a place to put power-ups for later
You could freaking fly
Perhaps that’s the dream – to release an update so good that the users think about forever.
Favorite and least favorite file formats? I’ll start.
Favorite: TXT
Least favorite: HEIC
The answers – both replies and quote posts – are really interesting because most of the time they’re not about inherent capabilities of each format, but:
how well supported it is in the general ecosystem?
how painful it was last time I used it?
who’s using it and for what?
if there is one app I use it with, do I like this app? (interesting in the context of PDFs which some people love, and others hate)
Of course, Walsh put a finger on the scale with her initial example, but HEIC stands out as a favorite least favorite. I understand this is mostly out of its limited support, raising a question whether Apple spent the right amount of time socializing and incentivizing its adoption – even on a Mac, you can’t escape blank stares the moment you drag it into many websites/web apps:
HEIC on the other hand, Apple’s way of making photos smaller and everything else more complicated than it needs to be.
By the way HEIC is when you drag a picture from your Notes app into your email, and then it laughs in your face and is like sorry, girl, I’m HEIC!! I don’t do things like that!!
I didn’t know I had a least favorite file format but yeah HEIC can fuck right off
Sweet fucking hell fuck heic into the sun
Reading the replies here makes me feel like I live in an oddly privileged bubble in an inverse of the usual meaning of privilege for being a poor Android-using mfer who has never seen a HEIC in their life and had to actually look that sh*t up.
Least favorite is a toss up between HEIC (WHICH NOBODY ASKED FOR, APPLE) and WEBP
Controversial but I hope everyone involved with HEIC only tastes soap instead of cilantro forever
I agree with this person that WebP is much better supported than it used to, but it sometimes takes one link in the chain – cough Google Docs cough – for you to avoid a format forever. And, those are always lagging indicators. If a format didn’t work once in an important flow, it might take many years before you come back:
all the people saying “webp” in the quotes might as well be fighting WW2 still. look for another grievance. please
Some other fun answers:
IF IT’S CALLED [C]OMMA [S]EPARATED [V]ALUES WHY DO I HAVE TO OPEN A WINDOW AND CHANGE THE DEFAULT DELIMITER OPTION FROM TAB TO COMMA ??!?!?!
Favorite: MP3 (invented piracy, patents all expired, doesn’t need an FPU)
Least favorite: DICOM (nightmarish metadata, too many possible image encodings, when it wants a 3D volume the solution is just “a bunch of files in a folder”, also IT IS A NETWORK PROTOCOL >:( )
Least fave: .R01, .R02, etc... – nothing needs to be split into multiple rar files! Please stop! The world has moved beyond this.
Least favorite: can I count those awful pointer doc types Google uses, like .gdoc and .gsheet
favorite: transparent PNG
least favorite: transparent PNG that is not really transparent but just a fuckin checkered background
I forgot about this meme:
For least fav I voted for GIF, having not only spent countless hours trying to make good-looking animated gifs that do not weigh tens of megabytes, look horrible, and cause performance issues… but also having worked on two different products (Medium and Figma) that had to swallow gifs made by others, and seeing engineers lose their minds peeking into their insides and how messy they were.
To be fair, GIF comes from the late 1980s, and simply outlived its purpose. It’s a fascinating format that literally deserves a book written about it: the messy patent wars, the pronunciation, the technical format and many surprises hiding inside, even the word “gifs” transcending the format itself to mean “short animated memes.”
To go back to the thread, a small pattern that I also encountered from time to time:
Least favorite: .md, specifically when it’s used for Sega Genesis game roms. There’s already a type of text file type called .md, so Windows tries to open them in notepad. Just call it .gen instead, nerd.
Favorite: TS, the one that opens in my IDE
Least Favorite: TS, the one that opens in Quicktime
I know software updates can be exhausting these days; on top of regular weariness of things changing, there’s contentious stuff like Liquid Glass, or thoughtless AI integrations.
So, I’m curious: What is a recent software update, anywhere, that made you happy? Something that made an app genuinely better for you, or showed a developer listening to users, or was just plain old delightful?
I’d love to learn, and I will summarize the responses next week.
If you want to, you can respond on Mastodon and Bluesky – and see other a few people’s nominations as inspiration – or send me an email. Thank you in advance!
I have to admit that when a reader wrote to me and said…
Every point release of BBEdit delights me. I live in BBEdit. It’s one of the few packages for which I read through the release notes every time (they often have spots of hilarity).
…I got a bit concerned. One thing that I hate more than wasted release notes (“Bug fixes and performance improvements” is the boilerplate’s boilerplate) is funny release notes – the ones where instead of actually conveying what changed, the text field is used for something, erm, “creative.” (Perhaps most infamously, Medium had had a spell of “fun” release notes about 10 years ago, to a mix of amusement and blowback).
But I needn’t have worried. The release notes of BBEdit are just plain old solid good work, with only a sprinkle of humor:
The “Zoom” command makes a triumphant return to the Window menu.
Fixed crash which would occur when displaying completions from language servers which violate the published specification and provide something other than a string for the details field of a returned completion item. (glares at Solargraph)
SNUCK IN A SPECIAL FEATURE FOR CRAIG NO NOT HIM THE OTHER ONE I HOPE HE LIKES IT
It’s been a while since we looked at release notes, and these are a great example of something that can help you understand not just what an application is, but what it will become. For example, I saw this fly by…
Made a change in the minimap so that punctuation isn’t greeked, which helps improve visualization.
…and even though I have never used BBEdit, I immediately started nodding. It made sense; greeking is helpful for letters, but I can see how it can do more damage than good for punctuation that has a pretty specific visual signature. BBEdit’s author knows what they’re doing.
Nothing in BBEdit is “abandoned.” Everything is on the table for possible improvements. Also remember that this is an app that was originally written for classic Mac OS!
This made me think about what separates apps that you’re excited to keep growing from the apps you’d rather see frozen in time.
The release notes of BBEdit made me trust it so, so quickly. Not just the pace of change and clarity of communication, but also indeed this certain feeling that the product is “alive” in all the right ways. Even if I don’t know or use the features, I quickly get a sense that the changes are for me, or at least other people like me, rather than serving unspecified corporate needs, chasing fashionable trends, or pursuing unnecessary pivots. Hell, even the ratio of changes – new features vs. quality-of-life fixes vs. performance improvements – seems good.
On top of all that, it’s fun to read good release notes, because you can learn something new. These, to me, were fascinating:
“Entab” and “Detab” have had their names changed to “Convert Spaces to Tabs” and “Convert Tabs to Spaces”, respectively. This is more verbose but less abstruse.
Jargon!
There is a new setting in the Keyboard preferences: “Enable macOS “Help” key”. This is off by default, so that pressing the “Insert” key which is present on some PC-style keyboards doesn’t open the in-application help. (This frequently happens accidentally.)
Keyboards!
If an FTP browser window is active and disconnected, “Open from FTP/SFTP Server” will start its connection sheet, rather than doing nothing.
Google’s feed-reading tool offered a powerful way to curate and read the internet and was beloved by its users. Reader launched in 2005, right as the blogging era went mainstream; it made a suddenly huge and sprawling web feel small and accessible and helped a generation of news obsessives and super-commenters feel like they weren’t missing anything. It wasn’t Google’s most popular app, not by a long shot, but it was one of its most beloved.
In the essay, Google Reader is presented as a victim of Google+. I was at Google when Google+ was announced and can corroborate the feeling of an end of an era at the company. The first large internal presentation was a shell shock: the arrival of secrecy, bureaucracy, corporate delusion, inevitable sycophants following not-so-inevitable bozos. But perhaps it was the opposite – Google as a company would have changed anyway, and Reader just randomly ended up being among the early beloved things that stood in the way. (I mean, arguably, Google changing for the worse destroyed even Google Search since.)
I am worried about the open web, but excited seeing some resurgence in RSS usage, and more and more people wanting to come back to the feeling of control, care, and intentionality that using Reader represented. Just a few months ago, Roger Wong found himself reflecting on Reader, too:
What gets me is that the vision Wetherell drew on that whiteboard—a single place to follow everything you care about, organized by your taste, shared with people you trust, and non-algorithmic—still doesn’t fully exist. RSS readers are the closest thing we have, and they’re good enough that I’ve built my entire reading and writing practice around one. But the curation layer Wetherell imagined is still unfinished.
I’m introducing a new tag to Unsung, software eulogies, which right now encompasses Aperture and Reader.
One has to be careful about nostalgia since it has its own gravity and can corrupt as much as a runaway World of WarCraft virus. “They don’t make them like they used to” is a potent drug that can make us disinvested in shaping the future, but it is also true that, well, we don’t make software like we used to. Part of Unsung is about finding inspiration in history, and while each one of us can miss a certain era of computing, certain machines, and certain software for whatever reasons we choose to – healthy or not – I do believe we collectively miss Aperture and Reader for the right reasons that are worth listening to.
In 2021 and 2022, product manager Steven Sinofsky wrote a…
…first-person account of what I saw at the PC revolution from the perspective of joining Microsoft as a newly hired software design engineer fresh from graduate school working on developer tools, through my time as a program manager and ultimately leading Office, and then moving to Windows, and everything in between.
The first part covers the challenge of the team in 2007, taking stock of Office after almost 25 years of its evolution. (Number of toolbars in 1983: one. Number of toolbars in 2003: 31.) The second part shows great screenshots of all the Office versions from 1.0 until then, and the remaining four cover the Ribbon redesign process.
Regardless of how you feel about Microsoft Office today, and whether you consider the Ribbon interface a success, it’s a perfect weekend read as it covers universal challenges of software complexity and change management.
It’s such a potent series I’m sure we’ll come back to it. It covers a lot, including – in the first part – wrestling with a definition of bloat or complexity, which in the context of Office was less about the number of functions available, and more about mastery:
[…] In practice, bloat comes from the fact […] that Office does so many things that customers just assume the product can do whatever they need it to do. Despite that fact, customers have no idea how to make the product do what they need. This feeling of helplessness that leads to frustration. […]
Bloat is owning a product that you cannot master.
This below is a great observation about the perils of an idea of a “simple mode,” which Sinofsky argues is always a leaky abstraction:
We tried reducing bloat by hiding features […], but that only added to the mystery of the product. Mac, Windows, and Office all went through periods of “simple means fewer” and tried mechanisms such as short menus, simple mode, or adaptive toolbars. But that frustrated or confused people. No one really wanted to use a simple mode and there was always one command missing that was needed, so simple mode became a complicated way to do that one thing that made someone’s work unique.
It was great to see this argument for a broad definition of a bug, as it slides exactly into my post from a while back:
Ages ago in ancient Microsoft history there was a debate on the original apps team about what it means for something to be a bug. Is it a crash? Is it data loss? Is it a typo in an error message and so on? Out of that was created a notion of bug severity, a measure for how serious a bug might be from losing all data all the way to simple cosmetic issues. However, when it came to talking about bugs with product support or ultimately customers the definition of a bug was very simple “a bug is any time the software does not do what a customer expects”. This definition created a discipline of documenting everything reported about the product and always making sure every issue was looked at, even if a code change did not result. The key lesson was how helpful an expansive definition was.
There are also observations and research about how users “debug” the product to make it achieve something they know is possible, but they don’t know how:
We called the futzing document debugging, and it created a frustration that the product was powerful yet overwhelming. People believed a specific result was achievable but getting from point A to B seemed impossible or unlearnable.
And some about the challenges of figuring out what features people use:
[…] Most people didn’t know or care what buttons they clicked on or menus they chose so long as it was working for them—and that meant when asked, “Did you use X?” most people couldn’t recall. To a skeptical press or IT manager (and they all were) that meant unused features.
I should stop quoting and let you read in peace. But, check this out. Lisa wasn’t the only one having linguistic fun:
Early keyboard shortcuts were simple, like using Ins(ert) key to copy text from the scrap (clipboard).
I absolutely love Jimmy Maher’s body of work. He’s been writing about older games and software in general since 2011; it’s always solid, always an enjoyable read, and always providing new perspectives even on stuff I thought I knew well. (Maher also goes by The Digital Antiquarian.)
I have never played any Ultima games, but this was a gripping read.
[…] Richard Garriott, the motivating force behind Ultima from first to last, has done his level best to write the aforementioned last out of history entirely. Ultima IX is literally never mentioned at all in his autobiography.
But, much though I may be tempted to, I can’t similarly sweep under the rug the eminently unsatisfactory denouement to the Ultima series. I have to tell you how this unfortunate last gasp fits into the broader picture of the series’s life and times, and do what I can to explain to you how it turned out so darn awful.
In some sense software projects always fail for one of the few obvious reasons, and it’s just details that change. Here, the details are fascinating. The Ultima series started in the very early 1980s as a series of small games made by one person, and ended ignominiously as an almost-AAA title rushed to market that no longer wanted it:
They met the deadline — what other choice did they have? — but the playable game eluded them.
It’s not just the deadline. There’s also a studio past its prime, a fascinating but deeply flawed leader, the market forces and trends, and perhaps even some enshittification long before the word’s invention.
It is also a story of the first two decades of the videogame industry itself. It happened so long ago that it almost feels like a fairytale itself, although one with a sad ending.
Maher also lists some learnings that are universal enough to apply to a lot of other projects:
No game can be all things to all people.
Development teams need a clear leader with a clear vision.
Checking off a list of bullet points sent down from marketing does not a good game make.
When the design goals do change radically, it’s often better to throw everything out and start over from scratch than to keep retro-fitting bits and pieces onto the Frankenstein’s monster.
It’s better to release a good game late than a bad game on time.
And, in case you want more, here are handy links to all of Maher’s Ultima essays: I (3 parts!), II (3 parts), III, IV, Multima, V, VI, Worlds, Underworld (2 parts), VII, and VIII. I haven’t personally read them in order, and I’m better for it.
I’m working on a column about the tech annoyances that drive us crazy, and I want it to be as universal as possible, so tell me yours!
E.g. scanning a QR code to read a menu, never receiving the one-time passcode they supposedly texted you, “verify you’re human” by IDing tiny motorcycles, etc.
There are already many responses. I am drafting behind Phillips before he even writes his essay, because I like occasionally checking in with people this way. Not just for commiserating; perhaps scanning the answers will also give you some inspiration, or validation, or quotes for something you can push to make better, wherever you are.
Some patterns I noticed:
A lot of logging in woes: password requirements, bouncing people from apps to web to log in, login flows forgetting context, “I trusted this device” settings you cannot trust.
“Local news websites that crash under the weight of all their pop-up ads and auto-play videos.” This post had a great take:
The way super sketchy bootleg websites used to look (written in questionable English, 2/3 of the window overtaken by ads, constant popups and redirects, incorrect information more often than not) is just how all websites are now.
Hatred of QR codes, or perhaps what they represent: needing to install an app, removing people out of the equation, introducing phones where they weren’t needed before.
Surprisingly little AI. Is that because of the audience or the way the question was phrased?
Software engineer Ajitem Sahasrabuddhe recently wrote a 6-post series called “Iron Core” about airline ticketing infrastructure. The entire series is probably too software engineer-y for us, but the third part has some interesting info about a particular 1960s user interface called “cryptic mode”:
Cryptic mode was born from a hard constraint: teletype terminals in the 1960s billed by the character transmitted. Every keystroke cost money. A command that took 50 characters instead of 10 cost five times as much. Commands were compressed to the absolute minimum.
The result is a domain-specific language whose syntax was shaped entirely by economics. AN for Availability Next. SS for Sell Segment. NM for Name. ER for End and Retrieve. No vowels wasted. No words spelled out.
Apparently the official name is “native mode,” but it gained its nickname because… well, see for yourself.
Asking the system for “Availability for Next flight” for February 8, from Nagpur to Delhi, is just 13 characters:
AN08FEBNAGDEL
And the system responds in an equally mysterious way:
** AMADEUS AVAILABILITY - AN ** NAG DEL SU 08FEB 0000
1 AI 416 Z9 C9 D9 Y9 B9 NAG DEL 0840 1030 32A 0
2 AI 416 M9 H9 K9 Q9 T9 NAG DEL 0840 1030 32A 0
3 6E 5317 S9 T9 W9 V9 Q9 NAG DEL 0840 0755 32A 0
With time these commands became wrapped inside more approachable interfaces and GUIs. But they exist under the hood and…
Many experienced travel agents still use it today alongside, and sometimes instead of, web-based agent interfaces such as Amadeus Selling Platform Connect. For a trained operator working a booking-heavy workflow, it is faster than the equivalent graphical interface for the same sequence of operations.
Except today, you get to choose. At the beginning, when “online” didn’t imply internet, and registration computers looked like this, you didn’t have a choice: this was the language you had to fluently write and read.
I had some idea that many popular games have mods to tweak them – from small appearance tweaks and fan-made translations, to bigger gameplay or UI changes (and even an occasional trojan horse).
What I didn’t know was that for some games there is a whole community of modders who do one thing and one thing only: they fix bugs that the developer didn’t bother fixing.
I won’t lie: this video was a bit of a frustrating watch. The presentation is dry and takes its time. I was annoyed at Bethesda for not fixing the bugs to begin with and creating the whole mess. Also, some of the people in this story do not appear very mature, and post-Gamergate I have little patience for that kind of behaviour.
On the other hand, this covers so, so many interesting things and provoked so many thoughts:
how hard it is to agree what a bug even is,
how a bug fix can introduce more bugs and be an overall net negative,
how a new distribution method for something can drastically change its nature,
that everything, as always, boils down to communication,
that in community- and volunteer-led projects, not spending time on governance will come back and bite you.
Not to mention these topics:
dependencies
change management
centralization vs. federation
copyright and DMCA
version control
volunteer burnout
issues of trust and ego and power
If you are responsible for bug-fixing processes at a company or with a community, I am curious if you find this video valuable. I did.
The funniest moment was that drama/debacle about a certain in-game portal was nicknamed… Gategate.
Not to mention the ending is truly poetic, and not something I expected.
As far as I can tell, no truly huge world-shifting software product has ever existed in only one version (even Flappy Bird had updates). Just about every global software product of longevity grows, changes, adapts, and reacts to other software over time.
So I set myself the task of picking five great works of software. The criteria were simple: How long had it been around? Did people directly interact with it every day? Did people use it to do something meaningful?
I came up with:
the office suite Microsoft Office,
the image editor Photoshop,
the videogame Pac-Man,
the operating system Unix,
and the text editor Emacs.
Ford’s criteria felt more interesting than those of the other similar lists:
I propose a different kind of software canon: Not about specific moments in time, or about a specific product, but rather about works of technology that transcend the upgrade cycle, adapting to changing rhythms and new ideas, often over decades.
This – about Unix – also caught my attention:
There’s a sad tendency in most manuals and programming guides to congratulate people simply for thinking. Not here; you’re expected to think. That can be very exciting when you’re used to being patronized, and it’s one of the best things about Unix.
The 2016 launch of No Man’s Sky and the 2020 launch of Cyberpunk 2077 were catastrophes. No Man’s Sky fell so incredibly short of the promises the founder shared over the years – from smaller ones like rivers on the surface of planets, to huge ones like seeing other players – that some people felt it must have been a scam all along.
The other game was a simpler case study: Cyberpunk was buggy as hell. Not just the abysmal performance, but also the overall quality. People called it “the Hindenburg of videogames” and made YouTube compilations and listicles of its often hilarious bugs: cars exploding for no reason with perfect comedic timing, intimate body parts protruding through the clothes, and the infamous T poses.
In an unprecedented move, Microsoft slapped a big warning atop Cyberpunk’s app store listing, and Sony pulled it from their store altogether.
Over a decade on from its initial reveal, No Man’s Sky both manages to remain the same game it was at launch while also bringing almost every single missing feature (and dozens of new surprise ones) into the title – implementing them intelligently and with great consideration for how it will affect the core of the game. They achieved their redemption years ago, yet continue diligently with massive update after massive update.
No other title has done what Hello Games have managed to achieve. And the best part? Every single update, patch and addition to the game was and is 100% free, with no falsified hype or build-up to each update.
Cyberpunk 2077 had a redemptive arc of its own, too, highlighted and contextualized in this 17-minute video from gameranx. Today, both games are rated “very positive” on Steam, and are actually still gaining daily players.
So, wonderful comeback stories, right? Depends on how you look at it. It’s great that both these games ended up being good products, but perhaps not as great that it was all happening in the open.
The videogame industry tried to get creative about it and established an idea of “early access”: being able to purchase an incomplete game earlier, and watch it get better while the publisher receives funding to keep going. But for every Minecraft there is Godus, and for every Kerbal Space Program there is The Day Before. Plus, neither No Man’s Sky nor Cyberpunk launched in early access with attendant caveats and discounts. (By the way, Wikipedia’s entry for early access is worth checking out – it’s so eloquent I’m surprised not to see any warning boxes.)
There seems to be ongoing and perhaps rising frustration with companies releasing software products too early and fixing them in flight, if at all. Already in 1996, Geoff Duncan wrote about his annoyances with that:
What Beta Means Now: […] In many cases – particularly with Mac Internet software – “beta” doesn’t mean anything close to what it used to. We’ve seen programs in public beta that not only contain innumerable known bugs the developers are aware of and plan to fix, but also accumulate major new features through subsequent releases. Similarly, we’ve seen products that change fundamental system and technology requirements during beta – details which should have been etched in stone long before. Beta often means what “alpha” or even “development build” used to mean.
Subsequently, Google and other web-first companies diluted the meaning of beta labels even more.
The trend of premature launches extended to devices, too. About two years ago, AI assistant gizmos from Humane and Rabbit were pilloried by audiences for launching in an effectively unfinished form. Both devices failed in the market; MKBHD’s video reviews of Humane AI Pin and Rabbit R1 remain both entertaining and informative watches.
Reading between the lines, Mehotra’s interview paints a picture that I think many tech workers will find familiar: features are conceived, coded, and shipped as quickly as possible. He is happy to admit that the feature was a mistake… in retrospect. But in the moment it actually mattered, critical thinking was swept away by the false urgency of pushing things out.
It is worth reading in full and following the links, too; I watched the mentioned (tense) interview, and was similarly frustrated with the CEO’s lack of accountability or even a hint of an explanation of why the feature was launched to begin with. Key line from Samsonov’s post:
If you don’t know what are you trying to learn when you ship a prototype, do not ship a prototype.
This becomes even more important as the difference between a prototype and a final product is now thinner than a retina pixel. Both No Man’s Sky and Cyberpunk had, at least, well thought through foundations.
I understand that for some people gen AI software building tools is a discovery – perhaps for the first time – of a genuine joy of creation. But there’s also the other, newish side, a sort of “cult of velocity” where people show screens filled with agents coding things as if the world needed every possible app right this second.
Velocity and urgency can be important, but it’s hard to be careful and thoughtful when you’re going really fast; unsurprisingly, some don’t know what to do with that newfound AI-powered speed or realize the importance of thinking about crucial aspects other than time to market. (When digital cameras came around, the barrier to entry for photography was drastically lowered – it was possible to take a lot of photos without worrying about cost or quality. Tons of people took tons of objectively subpar photos; some were the end goal, some were a stepping stone toward more photographic mastery. However, I am not sure I remember people on either side ever bragging “I took over 1,200 photos today!”)
All this could be contrasted with movement of slow software (the name is part of a bigger slow movement although has unfortunate connotations in tech – it’s slow as in “speech,” not slow as in “beer”). Jared White in 2023 defined it as:
Sustainable software. Architecting and writing code in ways which are easily understandable and maintainable over time, requiring few dependencies and a rate of change that is healthy for the underlying ecosystem.
Thoughtful software. Working through feature development and making decisions based on what will benefit the userbase over the long term, placing mental and social health as priority over immediate gains or selfish interests.
Careful software. Seeking to understand the ways software might be used for harm, or itself be harmful by taking attention away from more important concerns in the broader culture.
Humanist software. Recognizing that most software—at least in application development—is primarily written for humans to understand and reason about with ease across a wide array of skill levels, and that relying on complex code generators or “generative AI” tooling to resolve complexity instead of simply building simpler human-scale tools is an industry dead-end.
Open software. Looking to established collaborative software movements like open source and the standards bodies responsible for open protocols to inspire how we build and maintain software (regardless of licensing).
I don’t really have a conclusion for this meandering post, as I am not sure a snappy conclusion is possible. Perhaps some of the links above can provide inspiration or food for thought about urgency, reputation, and doing things in the open.
Some patterns I’m noticing are:
Velocity is never an end goal.
Velocity is only one of many ingredients of software building.
It is necessary to think of people who will experience your work-in-progress as it is, not as it might one day be.
Colín is not “in tech,” and the video is of “the king is naked” variety which is very, very refreshing.
Among many good observations, this caught my attention as relating to this blog’s topic:
It’s a little weird to have this almost adversarial relationship with your customer base. They’re not trying to solve a problem customers have. They’re trying to convince people that the product on offer is something more than it clearly is.
What VR is, is a fun parlor trick. What they want VR to be is literal reality.
It does indeed feel Meta’s version of VR/metaverse has always been cargo-culting real world in a particularly awkward fashion, which Colín analyzes deeper.
Too many quotable laugh-out-loud moments, so maybe just this one more:
Down here in the real world, there are really only two things a media technology can be. It can be a solution to a specific discrete informational problem, or it can be an artistic medium. These two things are not mutually exclusive. There is crossover here – like, radio was a military tool before radio plays were ever a thing.
But by the former, I mean you’re literally just making information go faster. You’re reducing the amount of noise between a message and its receiver. Any kind of metaverse is going to be really, really bad at this because you don’t need to look at a weird Pixar version of your coworker in order for them to convey what a deadline is.
Beagle Bros was a 1980s software company making apps for Apple II that is still remembered fondly for their personality.
The company had a hobbyist slant, selling various small tools and collections with fun names like Beagle Bag (in the “Indoor Sports” collection) and DOS Boss and Utility City – similar perhaps to Norton Utilities on the PC side, but with a lot more fun and charisma. This is one of their loading screens, also showing both their recognizable logo and their endearing quirkiness:
How do you understand a man who has three clocks on his wall, showing the time in three different cities-San Diego, Fresno, and Seattle-all, of course, showing the same time (″If anything changes in those cities, we’ll know about it”)?
(I find the anachronistic combination of hedcuts and dot matrix printer typography particularly fascinating.)
Some of their software was more serious; Beagle Bros released many useful tools and even text editing and presentation apps. They also made practical posters:
But other stuff…? It was just goofing off:
How does this relate to craft and quality?
There is this interesting question about how much product and marketing and vibes and lorecorrelate. Did we forgive Sierra On-Line the numerous flaws of their games because we liked the company? Do we love Panic because we like what they do, or because of how they do it? Did Google put doodles on its homepage to distract people from more nefarious things, or because it just felt like a fun way to celebrate things? Is there such a thing as pure selflessness? What is the nature of free will?
Those are, perhaps, topics for future posts.
But Beagle Bros must have been doing something right if there is still a living, elaborate catalog of their works online, 40+ years later. Jeff Atwood also argued in 2015 that it was more than just fun – or that “fun” itself can give back in great ways:
Here were a bunch of goofballs writing terrible AppleSoft BASIC code like me, but doing it for a living – and clearly having fun in the process. Apparently, the best way to create fun programs for users is to make sure you had fun writing them in the first place.
But more than that, they taught me how much more fun it was to learn by playing with an interactive, dynamic program instead of passively reading about concepts in a book. […]
One of the programs on these Beagle Bros floppies, and I can’t for the life of me remember which one, or in what context this happened, printed the following on the screen: “One day, all books will be interactive and animated.”
I thought, wow. That’s it. That’s what these floppies were trying to be! Interactive, animated textbooks that taught you about programming and the Apple II! Incredible.
Steven Frank, the co-founder of Panic, wrote this in 1999, with similar themes:
You never knew exactly what you were going to get. I remember one program listing printed on the side of a bird that, when run, produced a series of wild chirping noises from the Apple’s speaker. And this was from a program that was only five to ten lines long. As a neophyte BASIC programmer myself, I was stunned and amazed. How could you make something this cool with this small amount of code? […]
Beagle Bros’ tools were fantastic. They literally let you do the (allegedly) impossible, like change the names of operating system commands. And they always packed the disks full with extra stuff. Demos of their other products, and strange graphics hacks that existed for no reason other than the fact that they were cool, and because there was spare room on the disk. Beagle Bros. had a lot to do with why I ever wanted to learn programming in the first place. […]
I’ll never forget the book. […] The book was a huge compilation of all around interesting stuff. Weird Apple II tricks that were pointless, but endlessly fascinating. Like the fact that there were extra offscreen pixels of lo-res graphics memory that you could write to, that never got displayed. Or how to put “impossible” inverted or flashing characters into your disk directory listing. Or how to modify system error messages. Not very useful, but really fun to know and really, really cool to mess with. My dad was convinced I was going to somehow break the computer with all this hacking, but a simple reboot always fixed everything.
(I swear I did think of Panic above as a spiritual successor to Beagle Bros without knowing that their work literally inspired one of the Panic’s founders!)
The subtlety: They had utilities which would produced formatted Basic listings and they would give example output of these utlities in their ads and catalogs. It was quite a while before I realized that most of those examples were not program excerpts, but complete programs which of course contained the Beagle Bros signature weirdness. And then there were the seemingly innocent hex dumps. My favorite was from the cover of one of their catalogs, which had a classic picture of this fellow sitting in a chair. On the floor next to him is a handbag with a piece of tractor paper sticking out. On the paper is a hex dump: 48 45 4C 50 21 20 and so on, which are ASCII codes that spell out the message: “HELP! GET ME OUT! I’M TRAPPED IN HERE!----SOPHIE”
After the work the company had done on AppleWorks 3.0, Simonsen felt ready to jump into the Macintosh market with a “Mac AppleWorks” of their own – they called it Beagle Works. Unfortunately, other companies – giants in the Mac market such as Microsoft, Claris, and Symantec – had the same idea. Their resources were far greater than Beagle Bros had imagined, and the race was costly.
The gamble killed the company. It’s likely that the changing software market would anyway.
But the years before seem to still inspire some people. Check out the Beagle Bros Repository – the homepage is a bit confusing (I think it prominently shows last-updated or last-added things for some reason?), but just use the nav at the top. Maybe it will inspire you, too.
Over the past few years, I’ve found myself relying on TextEdit more as every other app has grown more complicated, adding cloud uploads, collaborative editing, and now generative A.I. TextEdit is not connected to the internet, like Google Docs. It is not part of a larger suite of workplace software, like Microsoft Word. You can write in TextEdit, and you can format your writing with a bare minimum of fonts and styling. […]
I trust in TextEdit. It doesn’t redesign its interface without warning, the way Spotify does; it doesn’t hawk new features, and it doesn’t demand I update the app every other week, as Google Chrome does.
But I get the feeling that Chayka would be better served switching from TextEdit to Apple Notes for most of these things he’s creating. Saving a whole pile of notes to yourself as text files on your desktop, with no organization into sub-folders, isn’t wrong. The whole point of “just put it on the desktop” is to absolve yourself of thinking about where to file something properly. That’s friction, and if you face a bit of friction every time you want to jot something down, it increases the likelihood that you won’t jot it down because you didn’t want to deal with the friction.
Part of me agrees with this vehemently – for casual text wrangling, Notes is by far the best iteration of what both the old Stickies app and TextEdit attempted.
But Notes are still evolving. The UI keeps changing. I’ve had a note shared by a friend hanging alongside my own notes for years, without me asking for it. I remember the moment when tags were introduced, and suddenly copy/paste from Slack started populating things in the sidebar. Then there was this scary asterisked dialog that slid so well into planned obsolescence worries that it felt like a self-own:
And the attendant warning, ostensibly well-intentioned, adorned my notes for months, just because I had an older Mac Mini I barely touch doing menial things in a dusty closet:
On top of that, the last version of Apple Notes on my macOS occasionally breaks copy/paste (!), which led to some writing loss on my part. (If you cut from one note intending to paste in another, and realize nothing was saved in the clipboard, you lost the text forever.)
These are not show stoppers. But they too are friction that has to be juxtaposed with what Gruber lists in his essay. They’re also friction of the unexpected, new, stochastic flavour. TextEdit’s challenges, on the other hand, are known knowns. In this context, TextEdit is in that rare – and maybe increasingly treasured – place where it no longer gets updates, but it doesn’t feel abandoned, or falling apart, or at the risk of outright cancellation. (I think on the inside of tech companies this is called being “maintenanced” – not actually staffed to be improved, but still eligible for breaking bug fixes and security updates.)
We need to normalize declaring software as finished. Not everything needs continuous updates to function. In fact, a minority of software needs this. Most software works as it is written. The code does not run out of date. I want more projects that are actually just finished, without the need to be continuously mutated and complexified ad infinitum.
Personally I would be very happy to live in a postcapitalist world where it was 100% FINE that desktop operating systems had “stopped evolving” because they were good enough to meet basically everyones’ needs, and there was no stock price to crash from an old monopoly having clawed its way to the top with nowhere else to go. “Let [certain] software be finished” has always felt to me like oblique pining for humanity to outgrow our current political-economic system.
The fact that in the 10+ years I’ve been using it, there’s only been a single major overhaul update is a feature, not a bug to me.
I have seen this sentiment grow in recent years, as AI is seemingly shoved into every crevice of everything whether or not it even had crevices to begin with. Liquid Glass on the Mac side and incessant ads plus bugs on the Windows side add to the malaise.
But I’ve also been in technology so long that even outside of tensions of capitalism, it’s hard for me to imagine software not changing. Code does run out of date even if you try very hard. So I don’t know yet how to square all this.
Bear is not finished/“maintenanced,” but it seems to not be changing the same way some other software is changing, either. I’m excited reading its blog – even if there are features or updates that do not pertain to me, they don’t bother me, and make me excited for others benefitting. Its innovation feels considered, not reckless.
In a week I’m praising products I didn’t expect to praise, I feel similarly about Lightroom Classic. When Adobe in 2017 forked Lightroom Classic out of the newly-refreshed Lightroom, a lot of us got worried about the “Classic” tag having “dead man’s walking” connotations. But nine years later, and Lightroom Classic is still being lightly updated with fixes, camera presets, and – occasionally – feature changes that largely feel welcome. Lightroom Classic appears, to once again use industry jargon, “stable.”
Maybe the answers are somewhere in this post: celebrate and fund “maintenanced” apps, fork apps into “stable” and “modern” paths, or encourage and practice slow, considered growth. I bet there are other approaches and altogether new ideas to try, too. (There used to be a tradition, when software was physical, to list all the new stuff at the back of the box. What if we started writing out the things we didn’t add?) But I like at least talking about it to begin with. There are apps in my life I want to feel like TextEdit, there are apps that I want to feel like Notes, and there are ones I’m happy to put on the cutting edge/beta/canary path, where bugs are a promise, and motor memory a distant dream.
I yearn for a software ecosystem that allows all of these types of apps to blossom.
What makes the AI chatbots and agents feel light and clean, here and now in 2026? Is it an innate architectural resistance to advertising, to attention hacks, to adversarial crud? No — it’s that they are simply new! The language models in 2026 are Google in 1999, Twitter in 2009. Their vast conjoined industry of influence hasn’t yet arisen … though it is stirring.
And I believe their architecture makes them more susceptible to adversarial crud, not less. I suppose we’ll see.
It’s interesting and useful to imagine — really visualize — the chatbots and agents in ten years or twenty … barnacled with gunk … locked in a permanent cat-and-mouse game with their adversaries … just as a platform like Google is today. In 2036, you send your AI agent out into the internet, and it returns battered, bedraggled, inexplicably enthusiastic about a bargain flight to Bermuda.
This is no criticism — just an observation about the way things go.
The AI community tends to say “this is the worst this will ever be” in response to criticism, but in a very learned sense, in many aspects it is also the best it will ever be.
Or maybe, to steal words from another person smarter than me, Ted Chiang:
I tend to think that most fears about A.I. are best understood as fears about capitalism. And I think that this is actually true of most fears of technology, too. Most of our fears or anxieties about technology are best understood as fears or anxiety about how capitalism will use technology against us. And technology and capitalism have been so closely intertwined that it’s hard to distinguish the two.
I remember The Master Switch being an excellent book that taught us how to spot and anticipate these patterns. It might be worth a re-read.
I recently learned of the OG App from 2022, which offered an ad-free, simpler experience to users frustrated with Instagram changes.
The app didn’t last – it couldn’t last – but it was a fascinating statement.
In a different corner of the internet, Michael Leggett, one of the former Gmail designers, created Simplify – an alternative “shell” to Gmail:
Hundreds of improvements (small and large) to streamline, simplify, and enhance Gmail’s design and functionality. Hide the features you don’t use, customize the ones you do including setting the list and message width and fonts.
Bad design can occur for a number of reasons including but not limited to:
Our needs as users are not well understood, prioritized, or aligned with the company’s goals.
Entropy: The natural decline of products over time as the vision decays or blurs and new features are conceived without consideration of the whole and added faster than the system’s overall design and architecture can evolve to support them.
Good design is hard. Good design is more than making a product pretty. It is about having the right capabilities in an intuitive, respectful, and well-crafted offering. I hope to expand on this topic in future posts.
I know ad blockers and “reader modes” exist, but these alternative shells go much further and change the original app’s design. I wonder what other examples of that are out there.
No, I do not want to install your app.
No, I do not want that app to run on startup.
No, I do not want that app shortcut on my desktop.
No, I do not want to subscribe to your newsletter.
No, I do not want your site to send me notifications.
No, I do not want to tell you about my recent experience.
No, I do not want to sign up for an account.
No, I do not want to sign up using a different service and let the two of you know about each other.
No, I do not want to sign in for a more personalized experience.
No, I do not want to allow you to read my contacts.
No, I do not want you to scan my content.
No, I do not want you to track me.
No, I do not want to click “Later” or “Not now” when what I mean is NO.
If you’ve ever read about “choice architecture” and nudging, this will feel familiar. The modern language for it was popularized in the late 2000s, and the core idea is simple: how choices are presented changes what people do, even if nothing is technically forced.
Then product teams go one step further. Instead of just shaping choices, you can shape timing. Prompts start showing up in the middle of workflows because that’s when the user is “most engaged.”
The industry also has a whole discipline around persuasive design and how to move someone from intention to action with prompts, friction removal, and well-timed triggers. B.J. Fogg’s behavior model is one of the more cited frameworks in this space.
Some nudges are genuinely helpful. But the same machinery that helps you discover a feature can also be used to push you into something you didn’t come here to do. And once the machinery exists, it gets reused.
I am finding myself wanting to quote most of it.
You cannot easily measure the resentment. Or the rage clicks when they smash a button to dismiss another “did you know” pop-up. You cannot easily chart the moment a user thinks, “I used to like this product, and now it feels needy.” You cannot easily quantify the slow erosion of trust.
I have long been frustrated by how the “growth” interfaces haven’t really evolved past cheap and loud pop-ups and defaulting to “let’s just show it.” One of the behaviours that bother me a lot that’s not listed in the post is, for example, installing an app and receiving one or even more “here’s what’s new” onboarding callouts. Hey. I just installed you. Everything is new.
Anyway, maybe one more quote:
Optimize for trust, not just return visits. Short-term engagement can be increased by annoyance. Long-term loyalty is harder and more valuable. The best products I use don’t constantly remind me to use them. They quietly do their job so well that I come back when I need them. That’s what tools are supposed to do.
I liked this book. I consider Cory Doctorow a good, smart writer. He can put together one good sentence after another (“this is why the roads leading to Amazon depots are littered with sealed bottles of human urine”), he can tell stories of boring things in riveting ways, and he can connect various themes and events.
This last bit was a (positive) surprise. The book is a tour of what felt a more vast universe than I imagined. Turns out, the reasons for enshittification are complex and spanning many systems. There are case studies – most you’ve probably heard of – but this really feels like a book in that each one comes with extra depth: details, detours, history. The book travels through a lot of places and teaches quite a few things: computer history, arbitration laws, stock market, history of unions. I would not be surprised if everyone reading this finds a jumping off point to dig deeper into a certain area.
I also didn’t mind the tone – angry, but not too angry, blunt, but not cynical, with an entire section at the end dedicated to “now we rebuild” and some examples of what we’re already getting right.
Only two small complaints:
The book loses a bit of steam at the end. It might be simply that suggesting improvements is naturally harder than riveting stories of Things Gone Poorly, especially if those improvements are systemic and legal. But maybe it could just be a bit shorter.
Cory Doctorow also loves coinage, which – well, justified, seeing how the word that became the book’s title helped the idea travel! But there’s a lot of others words around: enshitternet, disenshittification, twiddling, chickenization… There’s this sentence in the book: “There’s something genuinely wonderful about workers who counter-twiddle their bosses’ apps and escape reverse-centaurism.” There are more like it. At this point, this feels like just bad UI.
But those are smaller things. Overall, this is worth a read. To me, it added a lot more higher-level understanding of systems and processes that lead to bad software (not an altitude level I find myself in), and packaged it nicely into a story.
I’m going to finish by listing a few passages that particularly stuck with me.
Page 34:
Companies don’t treat you well because they’re “good” capitalists and they don’t abuse you because they’re “bad” capitalists. […] Companies abuse you if they can get away with it.
Page 51:
Enshittification – deliberately worsening a service – is only possible when people value that service to begin with. Enshittification is a game of seeking an equilibrium between how much people like the thing that locks them to the service (often, that’s other people) and how much they hate the management of that service.
Page 106:
The death of competition […] doomed regulation. Competition is an essential component of effective regulation, for two reasons: First, competition keeps the companies within a sector from all telling the same lie to its regulators. Second, competition erodes companies’ profits and thus starves them of the capital they need to overpower or outmaneuver their regulators.
Page 129:
That long delay after you reach a web page but before it shows up in your browser? That’s the “surveillance lag,” the delay while all those [advertising] auctions are concluded.
Okay, so maybe I don’t mind all of the newly minted words and coined terms. This one is sharp.
From the vantage point of 2025, optimization is clearly no longer a priority for the tech platforms. Google’s search results have gotten worse. Google doesn’t care. Facebook is awash in AI slop. It welcomes the slop. Amazon is filled with fake products and fake reviews. All of these companies still dominate their categories. Degrading the user experience isn’t costing them. The motivating belief that these companies hadto optimize, or else they would be out-competed, no longer drives Silicon Valley behavior. Optimization was an era. That era has ended.
Most of us got into tech with an earnest desire to leave the world better than we found it. But the incentives and cultural norms of the tech industry have coalesced around the logic of hyper-scale. It’s become monolithic, magnetic, all-encompassing—an environment that shapes all who step foot there. While the business results are undeniable, so too are the downstream effects on humanity.