Or giving in. Symlinks are a lazy hacky mistake. The original Unix authors knew it and tried to fix it in Plan9, but I guess now we’re stuck with that mistake forever. Even WASI supports symlinks.
The Plan 9 solution looks better to me. At the very least if you keep them then paths should be resolved lexically. I think most people are under the false impression that they are resolved lexically (i.e. foo/bar/../baz and foo/baz are the same).
But IMO it’s better just to not have them and use another solution where you might have used them.
I haven’t actually used (since Plan 9 is dead) and I doubt it covers every use case for symlinks (e.g. this wouldn’t let you commit them to a git repo), but I really think the benefits of symlinks not existing at all would far outweigh the effort of having to think of alternative solutions.
Sadly we don’t get to live in that alternative history now… :-/
It doesn’t matter if a bunch of crusty compsci academics think something is bad if it just works™ in real life
And I am saying this as an academic. I’ve seen my colleagues write lots of papers that faded like a fart in a fan factory while Unix is still chewing ass and kicking gum 1970s style
Or giving in. Symlinks are a lazy hacky mistake. The original Unix authors knew it and tried to fix it in Plan9, but I guess now we’re stuck with that mistake forever. Even WASI supports symlinks.
https://dl.acm.org/doi/10.5555/1267724.1267731
What would have been a better solution?
The Plan 9 solution looks better to me. At the very least if you keep them then paths should be resolved lexically. I think most people are under the false impression that they are resolved lexically (i.e.
foo/bar/../baz
andfoo/baz
are the same).But IMO it’s better just to not have them and use another solution where you might have used them.
Sorry, I didn’t follow any of that… What is the plan 9 solution? I searched, but didn’t see anything obvious
Basically it uses bind mounts instead. See this page for details.
I haven’t actually used (since Plan 9 is dead) and I doubt it covers every use case for symlinks (e.g. this wouldn’t let you commit them to a git repo), but I really think the benefits of symlinks not existing at all would far outweigh the effort of having to think of alternative solutions.
Sadly we don’t get to live in that alternative history now… :-/
That problem seems tiny relative to the convenience that symlinks offer…
Not having them.
It doesn’t matter if a bunch of crusty compsci academics think something is bad if it just works™ in real life
And I am saying this as an academic. I’ve seen my colleagues write lots of papers that faded like a fart in a fan factory while Unix is still chewing ass and kicking gum 1970s style
The objections to symlinks are not academic. They have real world flaws.