Hello Yigal,

BCS wrote:

It is my strongly held opinion that the primary argument for dlls and
friends, code sharing, is attempting to solve a completely
intractable problem. As soon as you bring in versioning, installers
and uninstallers, the problem becomes flat out impossible to solve.
(the one exception is for low level system things like KERNEL32.DLL
and stdc*.so)

so, in your opinion Office, photoshop, adobe acrobat, can all be
provided as monolithic executables? that's just ridiculous.

Office, I wouldn't mind. Photoshop, it's got lots of plugins (#1) right? adobe acrobat, it might as well BE a plugin (#1 again).

My work uses this monolithic model approach for some programs and this
brings so much pain that you wouldn't believe.

How exactly?

just so you'd understand the scale I'm talking about - our largest
executable is 1.5 Gigs in size.

That's point #3 and I'd love to known how you got that big. (I guess I should add a #5: Resource only DLLs.)
you're wrong on both accounts, DLL type systems are not only the
common case, they are the correct solution.

I didn't say that aren't common. I said it's a bad idea IMO.
the "DLL HELL" you're so afraid of is mostly solved by using
jars/assemblies (smart dlls) that contain meta-data such as versions.
this problem is also solved on Linux systems that use package
managers, like Debian's APT.

If you ignore system libraries like .NET its self, I'd almost bet that if you look at it long enough those systems, from a piratical standpoint, are almost the same as installing dll/so files to be used only by one program. That is that the average number of programs/applications that depend on any given file is 1. And as I all ready pointed out, I'll burn disk space to get the reliability that static linkage gets me.

I seem to recall running into this issue with .NET assemblies and .so files within the last year.
monolithic design like you suggest is in fact bad design that leads to
things like - Windows Vista running slower on my 8-core machine than
Window XP on my extremely weak laptop.

If the same design runs slower with static linkage than with dynamic linkage, then there is something wrong with the OS. I can say that with confidence because everything that a static version needs to do the dynamic version will also, and then a pile more.


Reply via email to