Hacker News new | past | comments | ask | show | jobs | submit login

Remember DLL's on Windows? Having one new app upgrade a shared DLL was the source of so much pain in other apps. In a perfect world where interfaces are rock hard and apps code to them perfectly rather than how they actually work, shared libraries are a fine idea. In the real world of desktop software, though, independently tested, self contained packages are a much more robust solution. OS X's application installation system works wonderfully, and the libraries they provide to enable publishers to push updates works well enough.

And, disk space usage from redundant code is a non-issue.




Of course I do. That's one problem package management solves. You (software piblisher) don't update libraries you don't own - just your application. Shared functionality, like how to read PNG images is managed by the system. This also forces library makers not to break interfaces, solving the other problem you mentioned. If you need a specific version of a given shared component, you state that dependency in your package and, if possible, the proper library gets installed with your package.

Added disk usage was never the issue. Consistency of behaviour is. With shared components you know your machine will decode PNGs in exactly the same way across all the applications installed.


Oops, I just meant if you remembered the havok they wrought, not whether you actually remembered them or not. Didn't mean that to sound the way it did.

I think the problem comes when software devs code to the actual behavior of a library's interface rather than to the stated behavior (which may not even be completely documented). I think this happens pretty frequently, and always if the library's behavior deviates in a way that breaks the program.

In the context of Mac OS, I would prefer not to rely on the library makers, etc. to do the right thing in not changing interfaces, especially in the event that an earlier version didn't quite meet its spec. I'm OK with the earlier version not meeting spec, as long as the software maker accounted for that (which he did, if his software based on it is solid).

Also, I think consistency of behavior is more important in unix-style single-purpose apps than with monolithic Mac OS style apps, due to the former's higher likelihood in being used as part of a script or larger program. I agree that package management is a good thing on Linux, and shared libraries probably are, but I'm not convinced that's true on Mac OS.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: