Linked by Andrew Hudson on Mon 20th Jun 2011 17:19 UTC
BeOS & Derivatives Haiku Alpha 3 has been in development for more than 14 months. In that time more than 800 bugs have been identified and fixed, major sections have been updated, applications have been added and updated, and great progress has been made in supporting additional hardware. Here is a summary of updates, more details can be found here. Also inside, interviews with some core Haiku developers.
Thread beginning with comment 477872
To view parent comment, click here.
To read all comments associated with this story, please click here.
umccullough
Member since:
2006-01-26

Windows, Mac OS X, Android, iOS, and WebOS don't do it, and there's a reason for that.


I honestly hate this discussion - it's just bikeshed in the end... but I have to comment:

Windows most certainly does have a notion of package management - they started doing that with windows 9x - the add/remove programs is a form of this. The registry keeps track of shared lib references so that installers/uninstallers can decide when a shared lib is still in use. Microsoft eventually tried to clean up the disaster of 3rd party installers by offering MSI to developers to help with versioning of libraries and installation to the proper locations. These are all aspects of package management, without the "evil name" that gets everyone all in a frenzy.

OS X benefits from including most of the shared libs already in the system. I don't use it, but I understand that common frameworks such as python and java are included in the OS itself - preventing the developers from having to include that stuff if they wish to use it. Furthermore, there are package management solutions for OS X such as MacPorts - to help people use software that isn't otherwise packaged the way you want it to be.

WebOS and iOS are sort of walled-garden systems - the users (and developers) aren't meant to screw with them.

Android falls into the above category as well, but out of all the options you list - it's the only one that is open source (although, that's debatable given that manufacturers tend to lock it down on their devices)...

In an open source operating system, the creator of the OS can't really define the limitations for the developers. With all of the closed source commercial ventures mentioned above, the vendors are making very strict rules... if you don't follow them, you're SOL. It's pretty damn hard to set similar restrictions on a fully open source x86 OS that anyone can download and compile themselves.

Adding package management features provides at least some form of guidelines that will allow users to access software that developers are producing. From what I gathered, it will encourage "all-in-one" bundles anyway, so I don't understand why people get so bent out of shape about this every time the topic comes up.

Reply Parent Score: 8

JAlexoid Member since:
2009-05-19

I'll add to that, that Android does have a notion of separate and updateable libraries. See Adobe Air apps on Android.

Reply Parent Score: 2

Halo Member since:
2009-02-10

I honestly hate this discussion - it's just bikeshed in the end...


Then ignore it. Seriously.

Windows most certainly does have a notion of package management - they started doing that with windows 9x - the add/remove programs is a form of this. The registry keeps track of shared lib references so that installers/uninstallers can decide when a shared lib is still in use. Microsoft eventually tried to clean up the disaster of 3rd party installers by offering MSI to developers to help with versioning of libraries and installation to the proper locations. These are all aspects of package management, without the "evil name" that gets everyone all in a frenzy.


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.

OS X benefits from including most of the shared libs already in the system. I don't use it, but I understand that common frameworks such as python and java are included in the OS itself - preventing the developers from having to include that stuff if they wish to use it.

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.

Furthermore, there are package management solutions for OS X such as MacPorts - to help people use software that isn't otherwise packaged the way you want it to be.

What percentage of Mac users use MacPorts, though? It's not officially sanctioned or installed by default.

WebOS and iOS are sort of walled-garden systems - the users (and developers) aren't meant to screw with them.

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 falls into the above category as well, but out of all the options you list - it's the only one that is open source (although, that's debatable given that manufacturers tend to lock it down on their devices)...

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.
In an open source operating system, the creator of the OS can't really define the limitations for the developers. With all of the closed source commercial ventures mentioned above, the vendors are making very strict rules... if you don't follow them, you're SOL. It's pretty damn hard to set similar restrictions on a fully open source x86 OS that anyone can download and compile themselves.

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.

Adding package management features provides at least some form of guidelines that will allow users to access software that developers are producing.

Having a method of installation/uninstallation/updating is good. Having a way of getting software is good. No arguments there.

From what I gathered, it will encourage "all-in-one" bundles anyway, so I don't understand why people get so bent out of shape about this every time the topic comes up.

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.

Reply Parent Score: 1

jessesmith Member since:
2010-03-11

Have you ever worked with systems that shipped all-in-one binary packages? Most users don't like it. They constantly ask "Why is Firefox over 90MB?" "Why does it take so long to download updates?" "What about my bandwidth caps?" "How come some packages haven't addressed security concern XYZ?"

Breaking software into shared libraries and using dependency resolution greatly reduces bandwidth and vastly improves security (one library can be updated instead of every packages on the system). Yes, there are some downsides.

Every so often some developer won't test changes properly and something will break, and it means users can't just drag-n-drop an application to a new machine and expect it to work. There is a trade-off. But demanding everyone move to all-in-one bundles ignores the fact that a lot of users don't want them. Even some who think they do change their minds once they see the problems that arise.

Reply Parent Score: 3