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 wrote: > On 31 Dec 2021 16:55 +1100, from robpike@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@kjorling.se > “Remember when, on the Internet, nobody cared that you were a dog?” > >