My opinion about operating system development, especially open source ones

I think this is a good opportunity to repeat my opinion about operating system development, especially open source ones.

In order for an operating system to be really good, it needs to be cohesive. Think Apple (or Be) versus for example Linux. Apple has a goal of how they want to present their products to the end user as to create a cohesive user experience. Linux adopts the Unix way of combining small individual functions which creates a non-cohesive user experience.

In order to create a cohesive user experience the development team needs to work in the same way towards a common goal. That requires a strong leadership that can direct the developers to work on what is needed to create a cohesive user experience.

Open source development usually do not have a strong leadership; each developer is allowed to work on what they want, the way they want. Decisions is made by consensus which has never worked (think design by committee).

In order for your work to create the cohesive user experience that Haiku requires to distinguish itself from the fragmented hell that is Unix/Linux, work needs to be performed on more parts of the system. In order for that to be done Haiku needs a strong leadership, preferable a single individual, that can direct the developers to work on what needs to be worked on. Unfortunately this is very uncommon within open source projects.

When Haiku hired @waddlesplash they missed a opportunity when they gave him free will to work on anything he wants. His work is valuable and good, but he does not always work on the things that needs to be worked on. This results in Haiku still not being as cohesive as it should be, but more importantly it means Haiku is still not released and not close to being so.

There are individuals that have identified that Haiku needs a strong leadership and have shown a will to help with that task, but all of them, including me, have been chased away because they are not developers and the developers do not want to be told what to do. Commits is the only thing that seems to count in order to be recognised as a resource.

Haiku needs a strong leadership to push the project in the right direction. If that happens, not only will Haiku reach a final release sooner, donations will skyrocket for which the project can hire more developers creating a positive feedback loop.

Addition: Haiku has a mostly cohesive user experience thanks to the goal of copying the work of Be. But by adding functionality that did not exist in BeOS, meaning system design decisions are now up to the project, Haiku is slowly turning from mostly cohesive to more un-cohesive. This trend needs to be stopped.

No, it doesn’t.

The developer team is very much able to talk with each other and define a common vision.

I think Haiku already proves you wrong here.

What if Waddlesplash was the leader? Do you think he would make better choices for himself then? I don’t think so, he would make the very same choices.

So, your options are:

  • Haiku hired the wrong person somehow? Who should they have picked then?
  • Waddlesplash is actually right, and all the other developers are somehow making the wrong choices and working on the wrong things?

Haiku is simply too large of a project for a single person to have a good understanding of where it needs to go. Why put all the responsability in the hands of one person (who may, you know, make the wrong choices, because no one is a supergenius) when you have many brains available?

Not at all. In fact, several non-developers have ā€œcommit accessā€ and a vote right in the decisions. But if your goal is ā€œI want to be the strong leader and other people should do what I wantā€, ypou are not welcome here.

All this talk about needing a strong leader and how you could be the one, but not a single hint of what we should be doing. So, please start your role as the chief whatever engineer here and tell us:

  • Which things should we immediately cease all work on. Is it Bluetooth? Is it the stability fixes and performance improvements? Is it the WebKit port? Is it the ARM64 port (that is mainly handled by someone who isn’t part of the developer team at the moment?) Is it improving the Wifi support?
  • What should we be focusing on instead? 3D acceleration? Multiple displays? Other things that are already somewhere in the next steps of the roadmap? Something that we completely missed?

I also think your model of how Apple works or worked is misguided. The popular culture love single geniuses, but that was not entirely the case. Apple had engineers working on all their products, and they all made great progress on things, not always driven by leadership. I’m pretty sure a lot of things went from the bottom up: someone starts toying with an idea, and then it is adopted by the leadership. Because that’s way more efficient, way more motivating for everyone, and, as I said, allows to use everyone’s brain instead of just one brain. Yes, teamwork requires more coordination and discussion, and this has a cost. But the alternative is not a dictatorship, it is, eventaully, a person working alone because they are not willing to accept any input from anyone else and want to be in single control of the vision and roadmap. This works in an actual hierarchical system (if you have employees who get paid to work on what you tell them to). This doesn’t work in an open source project, and especially not in Haiku, which, due to a completely distributed leadership, attracted the ā€œworstā€ free electrons that would not be happy with a hiearchical setup. Other talented people who want to be told what to do went to other places where such leadership exists. So you would have great difficulty managing the existing developer team. Or, more likely, most of us would leave and do something else that’s more fun.

14 Likes

This is unavoidable because open-source projects work on mostly volunteer effort. You can’t tell volunteers what to do the same way you can employees: because they’re working on this in their spare time, usually for fun. If you try to tell them what to do too much, it’ll start to feel ā€œlike a jobā€, and they’ll just leave and go do something else. You can see this happen time and time again when project leaders do try to force contributors to work on specific things or leave: they choose to leave instead.

Anything related to improving Haiku, and within reason. If I start working on things that are technically improvements but nobody wants or needs them, I am sure the Inc. and the community will have something to say about that.

So how are we supposed to judge what does need to be worked on? Everyone will have a different personal opinion about this because everyone has slightly different priorities. So should we get a committee together to determine the direction? But you say ā€œdecisions made by consensus […] has never workedā€ā€¦

If you have specific complaints about what I haven’t worked on that you think is necessary, or what I have worked on that you think is unnecessary, then let’s hear them. And let’s see if a number of other people agree; and if they do, then I’ll have to see if I can accommodate those requests then.

Most people around here seem to agree that Haiku is leaps and bounds ahead of where it was in 2021 when my contract began, at least. Building an operating system is a lot of work, and I’m only one programmer.

People don’t like being told what to do by people with no ā€œstake in the gameā€. A manager at work has ā€˜stake’ because he has power over your paychecks. A fellow developer on an open source project has ā€˜stake’ because they’re right alongside you ā€œin the trenchesā€ doing the actual work. Everyone else may have valuable insights that you should pay attention to, especially if they’re long-standing users who use the system every day, but that doesn’t mean they’re at all equipped to make good decisions about how to develop the system; and people are always going to chafe at having to take orders from people that have no ā€˜natural’ reason (e.g. money, expertise, etc.) to have power over them.

I would probably make very similar choices, but there are times I have made compromises, or ā€œkicked the can down the roadā€, or otherwise made decisions that aren’t necessarily optimal but they were the only reasonable thing to do with our lack of resources. So if we had a full team of programmers working on Haiku and I was their leader, I probably would make different decisions than I have been making, because we’d have the resources to do things differently.

But that’s not the case right now, and if I was ā€œproject leaderā€ but the project just had all the same resources (or rather, a lack thereof) as we currently do, then indeed I would likely not do very much differently.

This much I don’t think is the case. A main leader would have to depend on people under them to inform them of the facts on the ground, sure, but with that information they should be able to make good overall decisions. Haiku is much smaller than many other organizations that have single leaders and do very well for themselves. But again this depends on having people who a leader can give directions to and expect they be carried out, which is just not the case with volunteer work and can’t be.

12 Likes

I think it’s very simple: As @PulkoMandy said Haiku is cohesive despite being developed without a strong leader. [Edit: I must admit that the beginning of Haiku was the proprietary BeOS.]

Also for system-tinkerers an OS being not cohesive might be an advantage. [Edit: This is worth being explained more. Think of a system programmer who wants to play around with OSs, and he/she can use for example different init systems.]

I really wish I could get out of this pointless hospital. I am healthy enough to function but am not allowed to leave. One suggestion would be to emphasize using a stock POSIX layer so the kernel wouldn’t need to be fully debugged.

2 Likes

I am getting incredible flashbacks to a long term troll on a now defunct BeOS forum here.

2 Likes

Have you talked to any Apple users in recent times? Say, since the launch of Liquid Glass or so? And by that logic, our yardstick for a really good operating system should be, for example, OpenBSD. Quite a few people would agree.

Ah, yes, the great man theory. You might want to look up how many times Steve Jobs got in the way of progress at Apple with his dictatorial approach, to the point that he was fired from the company he cofounded. (That Apple floundered without him is an indictment of businesspeople, not evidence that he was good for the company.)

Those who can, do. Those who can’t paint themselves as ā€œleadersā€ and stand around giving orders. There are people in this community who develop Haiku. Others package applications. Yet others maintain independent port collections. Or simply test things, add compatibility data and so on. You seem to offer… opinions. See what the problem is?

10 Likes

If only. I would be happy to read some useful suggestions on what is going wrong, what the current leadership structure has failed, what cool features we could be working on. But there’s not even that here. It’s essentially a very long post to say ā€œthings would be better if I was in chargeā€, with not a single piece of information about what should actually change.

If there were opinions, we could at least make use of them…

8 Likes

If you aren’t aware @Null, Syllable OS is an example of this actually happening… Years ago it was at a similar developmental stage as haiku and was actively developed and releasing. Then one individual tried to tell the developers what to do, to be a ā€œstrong leaderā€, and the whole project died very quickly. Meanwhile the haiku model is still going strong.

5 Likes

I totally disagree with most of your points :wink:

  1. Linux / Unix is astonishingly cohesive, given it’s fragmented development background
  • short command option are written with a dash, long ones with two dashes
  • There is a File Hierarchy Standard, which is followed by most distributions
  • Most Linux Systems use systemd
  • There are multiple different Desktop Environnments and Windowmanagers, but they are internally consistent, just choose the one you like.
  • All this happend without a strong leader or dictator, just people working together.
  1. How would a strong leader dictate individuals, who are working for their own reasons, unpaid? They would simply walk away. I think waddlesplash could earn a lot more money elsewhere, i think he is doing a fantastic job, you cannot order someone who likes to fiddle with hardware drivers or scheduler to work on the GUI and expect good results, people don’t function that way.
  2. Who gives YOU the right to decide the RIGHT direction? Shouldn’t that be a democratic decission? By whom? Only the developers? The users? the people of the world (of whom 99.9% couldn’t care less)
  3. BTW, i think Haiku should be more like a FTL spaceship, that can also dive into the Ocean and timetravel :wink:
  4. What parts of modern functionality are turning uncohesive, exactly?
3 Likes

I always wondered what happend to syllable

4 Likes

@Null Design your great plan, put your vision in writing, if it is that great, people who are waiting to be told what to do will come and work on it

5 Likes

There was some discussion about it here… a long time ago now. Syllable vs Haiku - #10 by cipri

5 Likes

Haiku is not Linux,
as Linux is for Example not in a Beta Stage!

And no, Big Tech Firms used Linux, to make money and their own view on Operating Systems.

The people working together where paid developer in some big Tech Startups. Paid by a CEO with a business plan to make profit!

The big boss and CEO of a free Operating System like HAIKU, is and should be the User!

Without user, an Operating System will be only a development experiment without life!

2 Likes

Ahoy @Null,

I cannot pinpoint anything from your post to write an answer. I would do it in a general way.

As a Haiku end user and experimental pimper of my Haiku I can say that who install Haiku do it from very different purposes, so I can except that developers also ā€œdriveā€ Haiku development with different goal and do not force anyone.

I mean some user want to install Haiku on modernish or actually purchased new HW to run Haiku - it can be because they would use it for work as well, and as reliably working ported browsers with some new features available makes it doable with specific kind of requirements in focus - for example development work.

As I was red on forum, developers can select different tools, different languages, even tools for game development that were ported to ported games, also many emulators and virtual machines, virtual environments which secured in Haiku itself.

If it’s not enough cross platform development available for skilled people to do it from Linux or some of BSD. Mostly works on 64 bit, but some also available for Haiku 32bit also.

This also affects those people who would use Haiku daily driving : only Haiku or booting to any commercial or open source OSes which not reliably use for Haiku actually even despite its overall stability on Beta5 or moderate one on Nightly if you remain longer on a working hrev* without chasing the latest :slight_smile: but getting features still not available in more stable Beta5 version.

Also here are the users who would switch/escape from Windows, but experienced Linux and/or Mac and those also had not worked for them, so they hope in Haiku. More of them make haste Wine to have a SW to immediately use the known apps – not wait or learn Haiku but only the minimum to launch the good old Win apps with Wine … those they used and familiar with. I do not understand why they don’t use Linux as there the Wine stuff matured enough to run their stuff.

There’s another branch of users who

would like to give second life a dusting machine

or
buy one for installing Haiku for only -

toying with Haiku, experiencing or finding interesting

gaming with old games on Haiku, DOS or ported ones

installing BeOS software.

Also here are those who have RPI or or anything else ARM based and/or RISC-V SoCs/boards – so the different architectures they would use with Haiku on it.

It is at least a dozen kind of end users, as also they have some combos from these archetypes of users, so direction they would dictate in which directions the Haiku development would go actually.

Fortunately more of them patient – so this way agressive or hasting posts are not tolarated generally here - not only by developers but some end users as well. Unfortunately it cause that some poster does not feel it right or rightous as they hit in walls – from their perspective they offer good thing. They had not considering with open source development, and that Haiku is not a product, but a community driven alternative possibility to commercial products.

Even selectively use from those other open source softwares which widely available - prefer MIT license and philosophies and logic used in other open source OS related softwares that better fit to Haiku philosophy and logic. This way BSD layer and BSD drivers in networking. This way rather Wayland than extended X11.

Of course these rules not extended to Haikuports ported apps and from other ones from other repos like Besly or from sites like SourceForge. I think these wide variety of apps availability on Haiku drives some user to not consider Haiku as an open source project.

As many firm – even the big deal yenki one s and some commercial enterprises – have development teams to contribute to Linux and Linux distros – even for Desktop GNU/Linux : kernel drivers, firmwares for HW, services, automated solutions, applets for drivers, development libraries for programming languages, etc. This way GNU/Linux not just an open source project but there are some as a product as well.

In Haiku there’s no tech industry’s or shareholders’ money – thankfully.

I think it would be more promising if development would be as it progressing now with a twist.

For Beta releases the devs cook the Haiku itself and they decide its release cycle – all right,

BUT what if the end users can select
– one long awaited feature to be added Haiku – e.g. multimonitor support – (voted by end users)

-- and one FIX related boot, install, drivers or Haiku service would not kicked down on the road any longer – and so, also selected by developers.

This way despite of open source reality there would be 2 goals you can name for those who miss Haiku clear goals, but development independence remain as it would be. A release cycle cca. 1 and half – 2 years at Haiku, so it is long enough term for Haiku goals, but does not overwrite the overall roadmap.

Also if someone ask or make haste different goals,

then you can link the results of vote for new feature and one FIX kicked down on the road that selected by dev team and unite their effort to be in next Beta release (and also include ā€œyour development is highly welcomed for that matter !ā€ as some writes so already … :stuck_out_tongue_winking_eye: )

This is my opinion on Haiku development and one possible improvement
that respect the voluntarility of open source development and yet still include a way when developers/admins unite their efforts to achive a named goal for a named release of Haiku or a Haiku service (like package repository signature verification).

1 Like

I think all the developers share the goal to make haiku ā€œbetterā€.

One might see better as better hw support, drivers for new hw, as the wip on i2c touchpads, the other sees better as better and more native apps, the other more ported software.

One sees the best possible performance on older low end hw as most important, the other wants a blazingly fast modern workstation for cad or video.

someone (i think waddlesplash) developed xlibe, to port x11 sw to haiku, someone (afaik x512) did a kind of techdemo wine implementation.

I think we could do some kind of a bounty program to get specific features, but overall i think the haiku development model is quite impressive and successfull in giving us a fast (not quite yet full)-featured Desktop OS, which actually works for a lot of tasks on a wide range of hardware.

This is an incredible achievement for such a small community.

Onward to beta 6 and to R1

4 Likes

FWIW in my opinion Waddlesplash has chosen his time very carefully and well, he often works on stuff other developers have a bit less interest in because it’s less fun, which frees up time for other developers to work on more exciting stuff, which in turn is a better fit for weekend contributions. There have been a whole lot of cleanups, order of magnitude improvements in speed (and reliability) etc. All in All Haiku is in a much better place now that it was the last beta. And honestly that has been true for every beta now, each one was substantially better than the previous one. So I don’t see us going in a wrong direction. I am quite happy with our direction.

14 Likes

I think it’s very nice. I’m looking into it at present on a RAM % $ mining with some nice efficiencies. The terminal looks complete enough for POSIX development. I’m not sure I’d be great at system development, even though I once read the Amiga Kickstart disassembly. I don’t need many features I can get in Linux, and for such a efficient OS, I could even live with VESA frame buffers. I did alpha test the SiS chipset video driver in SuSE Linux in the mid '90s. I don’t need multi monitor, but I’ve an idle Intel NUC with dual HDMI ports.

It’s the ports v. native apps thing in the end. The hey thing sounds kind of ARexx/Rexx, and I’m no node/JS fan. WebAssembly maybe, skipping all the JS. Maybe one day VCV Rack will be ported officially.

So, in summation, you’re doing it right. Things are looking good. The AI RAM and GPU poverty idiocy is on your side. But it is true that the PWA is all Android/Mobile for many. Thoughts of apps are helped by exciting APIs.