| > This seems like a questionable design decision. Nope. > Should a program be allowed to behave differently based on its name? Yes. The program can also inspect any other part of its environment, including the parent process. What makes sense to inspect here depends on the particular program in question. The symlink example is still useful today. > From a 2020s standpoint, this seems highly undesirable Nope. > it makes software less predictable It doesn't. It makes it more predictable if programs can easily provide compatibility interfaces. Yes, you could do the same with a wrapper but removing friction matters. > and goes against modern design principles. Then modern design priciples can take a hike. > Today however, disk space is no longer considered an issue It should be considered an issue though. I buy better hardware to get more use out of it, not for lazy developers to needlessly piss it all away. This is just yet nother example of "securit" people trying to make their lifes easier by making other's lifes harder. And as usual it's only theater since almost all of the "exploits" apply to arguments as well which for many programs provide plenty opportunity to include arbitrary strings. Fix your tools instead of expecting the world to work around their limitations. |