←back to thread

Software Friction

(www.hillelwayne.com)
141 points saikatsg | 1 comments | | HN request time: 0.467s | source
Show context
zackmorris ◴[] No.40720119[source]
Don't forget deprecation. Today Apple and AWS (among a great many others) are notorious for unilaterally turning off services that people have built businesses around.

The responsible thing to do is to create a new service and then write wrappers that emulate the old service's interface and business logic, before finally turning off the old service at some point in the distant future.

But it's more profitable to make a shiny new service and end support for the old one. Capture the profits and pass the costs on as externalities to developers.

This may seem like a small inconvenience, but I have watched basically all of the software that I have ever written over a career become unrunnable without significant modification. The friction of keeping up with deprecation has expanded to take up almost all of my time now. In other words, the rate of deprecation determines the minimum team size. Where once 1-3 people could run startups, now it's perhaps 5-10 or more. It's taken the fun out of it. And if it's not fun anymore, seriously, what is the point.

replies(2): >>40720511 #>>40732206 #
laserlight ◴[] No.40720511[source]
> Today Apple and AWS (among a great many others) are notorious for unilaterally turning off services that people have built businesses around.

I'm curious. Can you give a few examples of such Apple services?

replies(1): >>40723430 #
1. zackmorris ◴[] No.40723430[source]
I probably should have said Apple APIs or libraries. It's been a while since I did macOS/iOS programming, and I got out of it because I got tired of seeing stuff like this:

https://developer.apple.com/documentation/assetslibrary/alas...

Looks like maybe they've slowed down on their deprecations a bit:

https://developer.apple.com/documentation/ios-ipados-release...

https://developer.apple.com/documentation/ios-ipados-release...

It was rough 20 years ago with the Carbon to Cocoa transition, Objective-C to Swift, CoreGraphics to OpenGL to Metal, etc. Always a moving target, never cross-platform. It's all so opposite to how I would do things. I remember when the US national debt was $3 trillion in the 80s, now that's Apple's market cap. Makes it hard to focus and make rent these days when so many other people are rolling in dough.

For anyone curious, with AWS I get notices every few months about some core service or configuration option that's getting discontinued in 6 months. Last year it was launch configurations for ECS (maybe the EC2 portion) that had to be migrated to launch templates (can't recall exactly). A deploy failed before I could finish a large feature I had been working on, which caused me to drop everything, which led to overlapping merges in git and associated headaches that set us back weeks. I should have been ahead of that, but it couldn't have come at a worse time.