"Expensive" is (to a degree) fungible with "time", when the APIs in question are stable.
When I write free software, if it's against a stable API, I'll polish them. Maybe not entirely at the start, but eventually. That's true for Cocoa, POSIX shell, a Linux-specific daemon, etc. And I'll put more effort in at the start, too.
But when I write free software for GNU/Linux desktops using e.g. GTK+, what's the point? In a year, attention to small details (e.g. pixel-perfect menubar spacing) will break. In three years, changes break core usability features (e.g. windows in good default positions, or DnD / other IPC protocol changes). By six years, fundamental toolkit changes mean I'll have to rewrite most of my view code and throw out all the polish I did.
Refining, validating, fixing, and polishing isn't exciting for a lot of people as new features, but it's only "very boring" when I often find myself doing it for the third or fifth or tenth time.
The idea that it "requires a major corporation" to do this is an invention caused by the high rate of churn resulting in an ecosystem that needs constant re-polishing to avoid breakage. On my darker days, I think they're doing it on purpose, to make sure they're "required."
Re: Interesting take, but it would not *stay* an advantage...
When I write free software, if it's against a stable API, I'll polish them. Maybe not entirely at the start, but eventually. That's true for Cocoa, POSIX shell, a Linux-specific daemon, etc. And I'll put more effort in at the start, too.
But when I write free software for GNU/Linux desktops using e.g. GTK+, what's the point? In a year, attention to small details (e.g. pixel-perfect menubar spacing) will break. In three years, changes break core usability features (e.g. windows in good default positions, or DnD / other IPC protocol changes). By six years, fundamental toolkit changes mean I'll have to rewrite most of my view code and throw out all the polish I did.
Refining, validating, fixing, and polishing isn't exciting for a lot of people as new features, but it's only "very boring" when I often find myself doing it for the third or fifth or tenth time.
The idea that it "requires a major corporation" to do this is an invention caused by the high rate of churn resulting in an ecosystem that needs constant re-polishing to avoid breakage. On my darker days, I think they're doing it on purpose, to make sure they're "required."