Hacker News new | ask | show | jobs
by pjmlp 334 days ago
Linking is not done the same way in all platforms or compiled programming languages, if anything most of the inercia has been on FOSS OSes.
1 comments

Really, on which platform is a static library not a bundle of object files?
Moving goal posts, you point apparently was about linking as general OS process to make libraries, and not static libraries in particular.

So many differences, not every programming language relies on the OS linker UNIX style, many have had the linking process as part of their own toolchain, outside BSDs/Linux, other vendors have had improvements on their object file formats, linking algorithms, implementations of linking processes, delayed linking on demand.

Bytecode based OSes like Burroughs/ClearPath MCP, OS/400 (IBM i), also have their own approach how linking takes place and so forth.

Some OSes like Windows Phone 8.x used a mixed executable format with bytecode and machine symbols, with final linking step during installation on device.

Oberon used slim binaries with compressed ASTs, JIT compiled on load, or plain binaries. The linker was yet another compiler pass.

Many other examples to look into, across systems research.

Far from "Linking works the way it does because of inertia.".