Linked by Andrew Hudson on Mon 20th Jun 2011 17:19 UTC
Permalink for comment 477893
To read all comments associated with this story, please click here.
To read all comments associated with this story, please click here.
News
Linked by Thom Holwerda on 05/22/13 22:23 UTC
Linked by Thom Holwerda on 05/22/13 13:38 UTC
Linked by Thom Holwerda on 05/22/13 13:30 UTC, submitted by JRepin
Linked by Thom Holwerda on 05/21/13 22:06 UTC
Linked by Thom Holwerda on 05/21/13 21:45 UTC
Linked by Thom Holwerda on 05/21/13 15:53 UTC
Linked by Thom Holwerda on 05/20/13 22:43 UTC
Linked by Thom Holwerda on 05/20/13 21:50 UTC
Linked by Thom Holwerda on 05/19/13 23:15 UTC
Linked by Thom Holwerda on 05/19/13 23:11 UTC, submitted by Drumhellar
More News »
Sponsored Links



Member since:
2009-02-10
Then ignore it. Seriously.
You've missed my point, so I'll repeat it succinctly:
THE PROBLEM IS WITH DEPENDENCY RESOLUTION.
"Package management" is just the Linux term for installing/uninstalling software. There is plenty of approaches to it but that's obviously core functionality. Personally, I don't like the term because it's loaded with presumptions. Incidentally, it's actually Haiku developers who took the phrase "Package Management" from their survey and translated it to mean there was a clamouring for a Linux-style package manager. Look it up. I've moaned about this presumption before.
Anyhow, you're right: Windows does have the idea of installing/uninstalling software (like all modern OSes). It also has the concept of shared libraries and the manifest to avoid dependency/DLL hell (but NOT dependency resolution, but something as nearly as crappy).
Why does Windows have a manifest? Because they thought shared libraries were a good idea in the early 90s and they wanted to preserve backwards compatibility. Not because it's a good idea. In fact, it's such a terrible idea that Microsoft has discouraged it "for over a decade" (http://blogs.msdn.com/b/oldnewthing/archive/2011/06/20/10176772.asp...).
Windows packaging also sucks. It's unnecessarily complicated, requires installers, and no unified update mechanism. No stupid dependency resolution, though: usually what you download is what you need. No interweaving webs of open source dependencies. Windows installers are generally standalone.
All OSes should include the functionality of common shared libraries as native functionality. Windows, Android etc do that too.
Linux doesn't, but that's more due to Linux's decentralised model, which isn't one that Haiku seems to be following.
What percentage of Mac users use MacPorts, though? It's not officially sanctioned or installed by default.
That has very little bearing on the merits
of dependency resolution, though.
An exploit in a library or the size of packages are the same, whether or not the systems are walled-gardens or not, or whether they're open or closed source. They could have chosen either.
Android isn't a walled-garden (I can download standalone APKs and run them on my handset), and again, it has little bearing on their choice.
For the record, I don't think "open source" should matter. It should be about the best damn software, not an ideology. Open source will win when it'll be the best overall, not because it's the open source.
Firefox eventually won because it was good. Mozilla lost because it was crap.
Apple can't force people to use bundles rather than MacPorts on Mac OS X. Steam has replaced installers on Windows for games because installering and updating sucks. On Android, Amazon's Appstore is competing with Google's Android Market.
It's all about brand and the users. Haiku's advantage is that it's a single OS that is centralised and integrated, allowing it to make make sane defaults and force them through. Haiku is similar to Mozilla in that regard.
Having a method of installation/uninstallation/updating is good. Having a way of getting software is good. No arguments there.
Even if it does, unless all packages are bundles and there's no dependency resolution, you end up with all the disadvantages. That's the problem.
If there's dependency resolution, you've just added a crapload of mental complexity onto users, even if only 10% of packages use it. That's without going into the development effort required.
You can never be sure that you can simply run an application and it'll just work without downloading more. You can never be sure that you can copy an application from one PC to another without the Internet and it'll just work. You can never be sure how big an application and its dependencies are at any given time. You can't never be sure that deleting a bundle will also delete its dependencies etc etc.
You'll also end up with one primary installation method and another being treated as second-fiddle. It's inevitable. Chances are that the package manager will win... which will mean more ports, increase the amount of dependencies, and reduce the chances of commercial software catching on. That's a huge issue that has massively set back Linux.
Anyway, that's my argument. I expect it'll be ignored but I feel I have to try.