Haiku continues to be on its roll, this time making tons of progress porting Wine to run on Haiku. Rockstar Haiku developer X512 has managed to not just start porting Wine to Haiku, but also to get so far as to run actual Windows applications on the platform. The screenshots in the Haiku forum thread speak for themselves. This is amazing work, and I can’t even begin to imagine how so much progress can be made in such short time.
That being said – and the reason I’m late with this story – I’m not entirely sure porting things like Qt, X.org, and Wine are the best way forward for Haiku. As an old BeOS nerd, what I want are fully native, platform-optimised Haiku applications that make use of all the unique features the operating system has to offer. I’m not interested in yet another platform to run Qt applications, LibreOffice, and a small handful of Windows applications.
I really don’t like being a grumpy old man when it comes to relatively small, alternative projects whose members code for free, but none of the recent amazing news coming out of Haiku has made me more interested in Haiku – in fact, it has only made me less interested, and less enthusiastic. Haiku and BeOS occupy a special place in my heart, and the focus shift from focusing on Haiku as an API-compatible clone of BeOS to yet another platform that runs Qt, X, and a few Windows applications worse than Linux or BSD do is not something I’m particularly thrilled with.
But here’s the cool thing – what I think is, and should be, entirely irrelevant, and these developers need to keep doing what they want to do, whether randos like me want them to or not. That’s the nature of open source.
I understand what you mean. I’ve never used BeOS, but I absolutely adore Haiku. I always have Haiku installed in either a partition or VM, and I’ve written some tiny Haiku software.
All of the non-native software that is being ported to Haiku made me uncomfortable at first, but now I’m of the opinion that “the more software, the better”. Having non-native software exist that allows more and more people to use and eventually develop for Haiku is better than people being less interested due to lack of software.
Yeah I am glad most of the developers have gotten over the non-native software hump… I mean its great to have all native software installed and yous should be able to filter that in any package installer….but I just need my computer to work and that means all cross platform APIs need to be supported.
Sigh… I wish they had went with a pacman based package manager though, and a plain jane BFS installation instead of the layered packagefs.
If they wanted anything crazy beyond that they could have perhaps ported to ZFS etc… or other snapshotting FS.
“I’m not interested in yet another platform to run Qt applications, LibreOffice, and a small handful of Windows applications.”
Neither am I, but I’ve come to accept the fact that a large cash infusion into ReactOS is the only way a usable alternative operating system will come to fruition. Everything else is pretty much just Unix kernel + package manager, all of which are barely different systems to the end users.
Haiku is a very nice and responsive desktop oriented OS and it is much further along than ReactOS. A world where we had Linux on the server and Haiku on the desktop would be pretty nice actually. If Steam ran on Haiku, I could see it being a real contender.
The strength of ReactOS, if they ever get there, is in the ability to continue to support existing systems that are being left behind. It is the compatibility with existing Windows applications and device drivers that makes ReactOS attractive, not so much that Windows is the ultimate expression of what desktop users need. At least, that is my view.
I am a fan of ReactOS and have been following it for many years. With things like Wine and Proton, it seems just as likely that Windows users will migrate to Linux though as to ReactOS. Haiku as a mainstream option seems a longshot but if it can basically be as easy a target as Linux, there is no reason why it could not build a substantial following or even be the leading option. That is what efforts like this could eventually lead to.
Or maybe we will all end up using SerenityOS.
It is amazing and interesting to see though that so many applications can be run on a system like Haiku and that it can support a reasonably modern and capable desktop experience when environments like OS/2 ( whatever it is called these days ) struggle to provide even the most basic facilities. It is a real testament to Open Source.
To be honest, anyone that doesn’t have nostalgia for the early 90’s GUIs of BeOS, Amiga, etc. are never going to like their desktops. It’s a major nonstarter with the general public.
As for the idea of the public migrating to Linux, here’s a Youtube clickbait video maker gently letting you down about the Linux desktop not being remotely ready for prime time: https://www.youtube.com/watch?v=Rlg4K16ujFw
Honestly, ReactOS will be more popular than desktop Linux, even if it takes 20, 30, or 50 years. Desktop Linux will remain perpetually stuck in the status quo of inventing different standards instead of just uniting to make a singular good desktop and software management system that doesn’t rely on package manager nonsense under the hood. All ReactOS needs at this point is a small percentage of people interested in it (less than 10%) to start a small monthly donation so they can get more full time developer contracts going.
Haiku is a sufficiently strong design it can stand and fall on its own merits. While native is good cross-platform software as a thing has got slightly better. People who have read my comments before know my thoughts on how bad cross platform development is (including versions and different compilers). Think beyond the bad toolsets because that is all you have known or experienced… Qt and SDL etcetera are all broken by design which has been explained and demonstrated.
Even if Haiku got fully optimised native applications being slack about cross platform development so they are locked into Haiku is a very stupid move. Abstracting threading models to take advantage of Haiku’s architecture as well as multicore support and thread support on other OS platforms is a thing which is something a native Haiku developer would need to think about if they want to reach a wider market. That means a good portability layer and abstractions included in your design thinking from day one… Also don’t forget about distributed processing and scaling. There’s no point being precious about this.
I tended to agree with the earlier views that Haiku needed to be distinct and the Linux crowd rolling in with their “distros” and QT applications was not wanted. I think that was a good view at the time as the last thing you need when carving your identity at the beginning is bikeshedding from the peanut gallery. It’s just too much clutter and distracting. Now Haiku is approaching minimal usable functionality it’s useful for Haiku to accommodate none native applications. Within sensible limits end users only care for what they can do and that means applications and within reason the more the merrier.
There’s a case for a small performant none snoopy OS without the hairshirt office politics. Haiku can fill that role. I don’t think ported applications or API compatibility layers like Wine effect that.
I don’t think Qt and SDL are broken by design. SDL is not a UI toolkit, obviously, it is just an abstraction over drawing on a canvas, getting input, loading images. People commonly use it to create games, and a few people use it to create apps that use a lot of graphics (like emulators or XServer clients.) Qt is just an abstraction over common Desktop UI metaphors, but uses C++ extensions to do this. Neither are broken, they are just limited by their approach.
Compilers used to be more of an issue, but mist platforms now have a version of GCC and/or Clang. Because they are common, it’s mainly the release version available that ifs the limitation. C++ is a moving target, so you will always fall behind in versions after a new release of the C++ spec, unless your platform keeps their compilers up to date.
Your comments are always very preachy, but I’ve been doing this for 30+ years and have programmed on multiple operating systems (not just Windows and Linux) in multiple (and varied) industries. I know and use PowerPC hardware, I know and use ARM hardware and work with embedded devices in my day job. I didn’t just start programming last week. So all the flapping about compilers to me sounds more like 10 or more years ago, not now. The only C++ compiler that I deal with (on non vintage hardware) that is not Clang or GCC is the MS one. And honestly, even that is pretty compliant these days.
They are broken by design and I explained why more than once. Nobody paid attention the first time and I’m not explaining again. Limited by approach = broken by design so basically you agree but can’t bring yourself to admit conceptual flaws which were proven by example by later topics and further discussion.
I wouldn’t pay much attention to chasing the C/C++ spec. Stick with the solid stuff and optimise later without trying to be a smartass. It’s only a moving target if you chase the bling. Not only that but the C/C++ specification is broken by design and chased up a few useless dead ends as many coders openly acknowledge. I don’t see any point in encouraging that.
I haven’t coded for 10-15 years but “pretty compliant” is still not compliant so my position on compliance remains sound.
Not preachy. Just pretty certain what my point of view is and I haven’t heard anything yet to justify modifying my view.
I couldn’t care less what you code or code on or what compilers you do or do not use. I only care about the concepts and specifications and conformancy, and what I use or would use and practice if I still coded. That’s because I feel it’s worth having an objective view rather than pointing to sources of authority like a codebase or time-served. Both can be flawed…
HollyB,
Actually I’ve asked you to explain it many times but you are constantly avoiding specifics just like a politician. Here you once again had a good opportunity to clarify your reasoning, but again omit any specific arguments. You keep making unbacked assertions and end the discussion there as though unbacked assertions are somehow enough to convince others, but it’s not. At least not when you’re talking with other professionals. You speak fondly of abstractions but henderson101 is absolutely right, there are many portable libraries that provide abstractions and solve portability already. Furthermore henderson101 is right that compilers and quirks are much less of an obstacle than they used to be. It used to be the wild west, but things have matured and it’s easier to count on standards.
That’s a bit rich coming from you; you’re always talking about borland and watcom C. Sure they were nice for their time, but they’re from a bygone era that has much less commercial relevancy today.
…such as?
This is so hypocritical though, you virtually never provide any objective reasoning for anything you say. I have no issue with your opinions, but they come across as extremely preachy when you keep pushing them as dogma without so much as providing the slightest evidence.
Let’s just take one of your claims: “Qt and SDL etcetera are all broken by design”. I think this is a reasonable topic to flesh out. But noting insightful or informative can come of it as a pure argument from authority as you current have it…so what specifically do you mean? What is your reasoning and how exactly was your code better?
It’s entirely your prerogative to refuse to answer legit questions like these, but realize this: the lower the bar you set for yourself by avoiding specific details and evidence, the less compelling and convincing your arguments become to others.
Best of luck getting specifics from her. I pretty much just gloss right over her comments these days because they are just replayed platitudes over and over. She seems to believe that the tools and frameworks of today equate to the same level as they were 10 to 15 years ago for which anybody in the industry for that long knows, they are not.
I agree that tool chains are much more consistent and compliant than they were years ago. Partially that is because of the dominance of GCC and Clang as you say. ReactOS was mentioned and it is built with both the Microsoft compiler and GCC I believe. That is quite a non-trivial code base. Linux can be built with both GCC and Clang on multiple architectures. I read an article just this morning on a dev that moved from C to Rust and was celebrating how that swept away almost all the cross-platform differences for them. At the level of end-user applications we of course have things like .NET and Java which may finally be delivering on their promise of bringing order to cross-platform UI dev.
Especially for UI, we are not quite there yet but the situation is so dramatically improved from 20 years ago that it seems wrong to keep trotting out the old arguments at this point.
I enjoyed reading your insights on the subject. Thank you.
> “a small performant none snoopy OS without the hairshirt office politics”
It took me a while to interpret what you meant here (after I stopped giggling) but I think I got it… Small, performant, doesn’t spy / snoop on its users, and not made by people with an almost “religious” like zealotry to their software or code?
Yes and as you can see from higher up the thread sunk cost egotism there are people who won’t like it being said. I also note after tablets of stone blustering dyed in the wool male privilege replies that moderate and reasonable people tend to take a different view and think “fair points”…
(Mostly male) coders need to learn both some psychology and systems theory and philosophy. Why? Because how people reason effects perception and ways of working and outcomes. An example of this is a peer reviewed paper published recently which revealed 30% of women have worse results when operated on by men than by women. When men or women were operated on by women there was no difference. This study revealed there are hidden biases throughout the mental and training and practice model. Coding practice, teamwork, and culture and narrative of software development is no different in principle.
Here’s a link:
https://jamanetwork.com/journals/jamasurgery/article-abstract/2786671
But apparently I never explain anything…
Interesting read except for the fact that the linked article has nothing to do with the topic at hand. You keep saying that the tool kits are broken by design so some of us give you the benefit of the doubt but request explicit examples (aka proof of your claims). You respond with insults and accusations if egotism.
Nobody is claiming that the software in question is perfect, but I am pretty darn certain that none exists. Now, is that software fundamentally broken like you claim, extraordinary claims do typically require extraordinary proof for which we are simply asking you to present.
YAAAAY!!!
I’m totally going to dual boot my Mac if it works well. My current OS requirements are a decent browser (Web+ was passable last time i checked, there’s others ported mostly natively) and Steam for streaming from my Win7 PC.
If WINE can run Steam, and maaaaybe something like Chrome, i’m switching in an instant. It’s really dependent on how well Haiku runs on my MBA. I dual booted it nearly 10 years ago on a MBP with most hardware supported, so i’m really not expecting to have a hard time.
The biggest issue with Haiku, is uptake. It’s a solid OS, with solid hardware support, a small but solid set of native applications, and a solid group of developers. The biggest issue with it, and IMHO the only reason it hasn’t yet taken the crown as the go-to open source desktop system, is lack of 3rd party applications and a lack of general exposure. Things like QT, and especially WINE, significantly drop the “scary” factor when end-users are trying a new OS. The unfamiliarity, and lack of familiar apps are a big stumbling block for most users
I have been using BeOS for a long time. I still boot it today. I also boot Haiku, though my hardware that runs it is somewhat limited, so it is mainly on terrible and old hardware. I owned a BeBox. I own PowerPC hardware, including some that still boots BeOS. I feel like I have a good grasp of the BeAPI, as I wrote a load of non trivial apps in the past.
Native is best. Non-native marginalises the OS and leads to lazy ports. The mistake that Be Inc made was forcing threading on to the average Joe programmer. But we all use multithreading now (right? I do, every day in my work.. ) so it’s not some mysterious magic any more.
I think Haiku could reduce the pain by one simple trick – make a userland app server extension that removes the locking and makes it possible for apps to behave like there is one main thread for the UI… then 99% of the issues porting apps vanish. This would sit a long side the regular API, and would mean the regular API could still be used.
It’s sort of a double-edged sword. With Wine and Qt, we get applications to run and use, even if we’d rather have native apps. Like, I’d happily give up LibreOffice and Calligra if someone wrote a halfway decent native word processor. But, since Haiku has those two, it’ll be less likely that someone will write another suite because there’s already two fully functional ones.
It probably doesn’t help that, right now, anything native has to be written in C++. I would guess that new people looking into Haiku probably have their own favorite language to write in and would prefer to use it over learning a new one.
RedoFromStart,
This is always the dilemma facing indy OS development…If you invest resources in supporting foreign applications, then you get the obvious benefit of more application support, but at what cost? While compatibility is ostensibly good, you can end up loosing the innovative edge. Supporting those applications may be a costly long term commitment and you’ll almost certainly be in the position of always having to catch up to a competing platform.
Mainstream platforms in many ways can become tethered to their past success – like windows and win32s or linux and posix. And in my opinion this opens up opportunities for new platforms to out-innovate mainstream ones. The problem however is critical mass. An indy platform, no matter how innovative, is going to be useless for users without widespread community support. This is one of the main reasons why IOS and android are a duopoly today. It’s not for the lack of alternatives, some of which were actually pretty good, but none of them were able to achieve the all important critical mass.
Non-native applications are obviously not ideal and won’t push innovative boundaries, but I think there may be an existential need to do it anyways. It’s temping to say they can add compatibility while pushing native applications, but I think you’re dead on calling it a double-edged sword that marginalizes native apps.
Critical mass and inertia. Change can be hard, and if the effort required to change is significant, it’s reasonable to question the ROI. Incumbent players are in a tricky position: if they innovate and break the tie with their past, do they still maintain an advantage? Windows on ARM (and its predecessors) come to mind: if WOA can’t run existing apps or can’t run them well, then why use it? Because it has familiar UI? Sure, that’s a consideration, but if I effectively have to migrate to new applications, why not just migrate to a new platform with a more robust app catalog instead?
The key is meaningful differentiation. BB 10 and Windows Phone had some interesting features, but these did not outweigh the ecosystem disadvantage from being late to the game.
gfive4,
I agree with you about this. At the same time though I think it’s easier to be an incumbent facing these challenges than an independent developer with no market share. Incumbents can coast for decades with less innovation and still manage to squash startup challengers. They’ll just copy the innovation, buy them out, or use their market control to make competing non-viable.
I hate that we ended up with a duopoly, but I cannot avoid that fact. The biggest problem for me as a consumer has been the inability to get the apps I need on the phones I wanted
X512 has done some great work porting Haiku to RISC-V and now porting Wine to Haiku. Something to be said for the technical side of this kind of work, but it probably won’t get Haiku into the hands of many additional users.
I still can’t figure out why the Raspberry Pi 4 isn’t a higher priority than it is. It is a stable hardware platform with a small set of drivers needed. I’ve tried to run Haiku on a number of different Intel-based computers with none working particularly well Most started to boot and then just froze. It runs stable in a VM, but without a hardware “identity” Haiku is more a curiosity than useful.
I couldn’t have said it better, Thom. While these advancements are obviously of great value to anyone wanting to use Haiku as their daily driver *right now*, I’m more interested in seeing better hardware support and, like you, would love to see more Haiku native apps come along, or at least full ports to Haiku’s native rendering engine. I want my 2001 era BeOS workstation in a modern incarnation with hardware accelerated graphics and all the BeOS/Haiku native bells and whistles.
What are the “unique features the operating system has to offer”? Are these still relevant or have they been obsoleted by advances in other OSes or in hardware itself?
The on,y chance of that happening is to port some Haiku APIs to others os just like the people from Gobe dihd to port their office suite. But nobody is interested in that.
Apparently wouldn’t be that hard…. the build system already builds the libraries on Linux it just doesn’t have a version of the App server that can render to X or Wayland.
…that’s not how it works. Just because the libraries can be cross-compiled on Linux, doesn’t mean they’ll RUN on Linux
Hmm just curious, does wine support .net 5 and above on Haiku? If it does that’ll be a boon since an awful lot of windows sw nowadays is eriten for that platform wich would only help Haikus sw catalogue, The best outcome would ofc be if .net got a native port of the libraries and runtime but that seams like a rather large job
Cross platform native software development is easy if done right from step one as I have explained numerous times. People keep chasing symptoms not the causes. Fix the cause and the rest follows.
Some have you have already posted pointers to solutions and those comments need much more prominence than the dyed in the wool blustering of people stuck in the past of broken cross platform layers and tools. With C/C++ you need to code to a portability layer not the compiler which means abstractions and #defines to nullify compiler quirks and do this for every single potential compiler and compiler version and SDK level. You also need your portability layer to be ambidextrous so you can compile and cross compile on any supported platform. Haiku having bindings for none C/C++ languages is also a good idea as C/C++ is an atrocious specification. You only need to do the above once which none of the so-called cross platform development tools do. Handling native GUI on every single targeted platform is trivial if done right but you need to think the cross platform SDK through from step one not try to bolt it on afterwards. And yes if you want to toggle between any interface in real time on the fly you can do that too if you code for it from step one. Also for anyone who moans about desktop versus mobile form factors if you’re making a mess of that you’re doing it wrong. That’s what different layouts and feature targetting are for. And before anyone starts blowing off about this it’s exactly what Adobe do with Lightroom on the desktop and mobile. You can build all of this including platform constraints into your tools if you think it through from day one.
I get fed up reading comments from people who do not understand the utility of this nor who understand the design principles behind this and who continue to play dumb. I figured all this out 15-20 years ago before I quit coding so how anyone doesn’t get it today is a mystery. (I even posted on the free download of Abrash’s book which got me started on portability but nobody paid attention.) Some people clearly get it as comments have indicated but they are drowned out by pages of people opining on a subject they know nothing about nor have ever coded for and who are stuck regurgitating broken by design examples which didn’t get it right at step one.
HollyB,
Broken how though? Stop giving non-answers and be specific!
Nearly all portability toolkits have already created their own portable abstractions just like you claim to have done, so why do you think your abstractions are better? Can you back up any of your statements with concrete examples or not?
You like to claim to be superior to today’s professionals but since everything you post is vaporware it’s hard not to be to skeptical of your claims. Honestly most people with experience will happily back up their opinions and they tend not to gloat as much. Your posts have been the exact opposite of that: 100% gloat and 0% follow through. While I agree with many of your opinions and I think you have plenty to contribute, I’m just trying to ask you to stop taking the “better than thou” tone. Reasonable?
God in heaven you lot… I drafted a reply but it’s not worth posting it. I’m not feeding the male toxicity on here so leaving you alone until you put your dick in your pants and clue up.
HollyB,
That is a clear non-answer, evades responding to questions. Also, you are being extremely sexist…honestly I don’t think I’ve seen anyone be more sexist than you on osnews. Sigh.
Your misandry is really toxic to this community.
You can’t expect to be taken seriously if you don’t want to back up your claims. I have no clue what your gender is, and I don’t really care. I reply to you as one human to another, and there is no difference in my reply if you were a man, woman or anything in between. If you behave badly, bigheadedly or like some jumped up snob/brat, you get treated with the same disrespect.
Using misogyny as an excuse is pathetic. You can look back at all my comments and see my style is the same since I first had to register a user (originally you didn’t need to in the early 2000’s.) The first managing editor when I joined this site was a woman, and she is still a person I follow on social media and respect. She was also STRONGLY opinionated and was probably more confrontational than Thom has ever been.
This is a discussion about computers, operating systems and programming. If you bring a spoon to a knife fight, expect to lose?
My issue is much like @Alfman… but also that you keep saying “I wrote about my opinions before and no one paid attention”… here is your issue: if I look at your profile you have made 100 comments since 22.11.2021, and I assure you I am not going to wade through 100 comments trying to pick out nuggets of information.
Maybe you need to create a blog or something like that, put all your claims/ideas/experiences in a post and direct us to that? That way you would be able to prove you said it before without us needing to wade through all the rest of your waffle? I guess, if you are trying to be anonymous, then you won’t put up any blog, but maybe you should do something, as it would then make your comments have context.
Also – I can only apparently list your last 100 comments in the WordPress UI, so if I want to look further back, it would take massive effort. Despite what you might think about yourself, I don’t care enough about your claim to have “already explained” to want to do that, and therefore put you down as a lot of hot air – as others have said. You seem to have the opinion that you are not just another commenter on this site and what you say is significant or important enough that people will have taken notice, but I have been on and off this site since Eugenia was the primary editor (since circa 2001, when she did what Thom does now) and people come and go and comments fade in to obscurity with extreme speed. I have heard it all before and seen people get frustrated like you seem to be because they are a small blip in the life of OSAlert and expect to have been more of a big splash. Assume no one cares and no one will remember you or what you say… and when they *do*, then, and only then, you can feel like your comments mean something more than a moment.
Friendly advice, take it or leave it, but stop complaining that no one pays attention.
Microsoft is putting a lot of effort into supporting Linux applications on Windows. They consider it a plus if their OS platform can run everything.
Yes, native is better, but if Haiku wants to cater to today’s needs of their userbase, then it makes sense to get Wine running. It’s a pity that Wine on Haiku still needs an X server.
My bad. There is integration using Xlibe already.
evert,
MS of the 2000s was much more anti-linux, but that position resulted in MS loosing tons of marketshare as the industry moved to linux as the main internet/cloud computing/HPC OS. These are industries that microsoft, for one reason or other, failed to make windows dominant development platform. Supporting linux is microsoft’s attempt at getting developers back. Some will go back to windows of course, but many of us who remember microsoft’s “embrace extend extinguish” strategies of the 90s will probably be wary of anything microsoft does because behind closed doors there’s a good chance that’s what’s going on.
We’re in the “embrace” and “extend” phases at the moment.