I recently read a question on here about static and dynamic linking, which reminded me of some questions I’ve had about it. From that post, I can see what the technical difference is (including object file contents directly instead of merely pointing to it), but I’d like to know a bit more about the pros/cons of doing so.
A while ago, a friend of mine who’s been programming several years was lamenting that C# isn’t statically linked and saying that that was the feature he desired most for a future version. Unfortunately I’m a novice and don’t really understand this statement.
Thanks for any enlightenment!
I am not sure if static linking is a really good idea in C# to be honest, for a million reasons. One reason is that, as opposed to languages like C or C++, C# has the concept of assemblies, which are basically executable files or DLLs.
Now if you want link things statically in .NET, you either
I’m sure there is a clever way to avoid these problems, but I don’t quite see the point of statically linking in a managed environment like .NET or Java. I mean, statically linking indeed improves performance, but not THAT much. And we don’t use managed languages for their execution speed anyway.
Another issue is DLL hell, but in .NET, that’s pretty much a solved issue anyway.