Slightly older, but also slightly more fundamental to the system, you need
look no farther than Solaris's `/bin/sh` for an illustrated example of the
pros and cons of maintaining backwards compatibility. It was a pain by,
say, 2007, to have to check if you were running on SunOS and use
`/usr/xpg4/bin/sh` (IIRC) if you wanted a POSIX shell--by that point the
other major vendors (and Linux) had something POSIX as the default shell.
But Sun had an installed user base with a bunch of shell scripts that
depended on pre-POSIX semantics.
Of course, people don't do a particularly good job of writing POSIX shell
either. Just this past week one of our refactoring projects at the Rubin
Observatory had some difficulty because Debian uses dash as its
non-interactive POSIX shell. Some bit of some conda package that we need
claimed to work with dash (and POSIX generally) but in reality didn't. But
it always worked fine on bash and zsh, so no one had gotten bitten until we
did.
Adam
On Fri, Dec 31, 2021 at 6:40 AM Michael Kjörling <michael(a)kjorling.se>
wrote:
On 31 Dec 2021 16:55 +1100, from robpike(a)gmail.com
(Rob Pike):
And of course you're right, but we've
known how to roll out breaking
changes in software for a very long time now. And we do so often. Few
Unix
programs from the past would compile and run
today without being updated
to
"modern" interfaces and compilers.
I believe it could be done, and I believe it should be done. Rolled out
carefully and explained well it would please far more than it offends,
and
is arguably far closer to correct than the
current situation.
Seems to me that we have a decent, relatively current case study of
this with Python 2 vs Python 3.
Which is probably a good bit easier actually, because maintaining the
ability to run Python 2 applications while introducing the ability to
run Python 3 applications is likely easier than introducing changes to
how something as relatively fundamental as how ".." behaves in paths
while at the same time maintaining backwards compatibility with the
old behavior, where different users and different applications on the
same system might very well expect different behavior...
--
Michael Kjörling •
https://michael.kjorling.se • michael(a)kjorling.se
“Remember when, on the Internet, nobody cared that you were a dog?”