Haiku isn’t a BeOS successor anymore

So I got accepted into GSoC again! I’m going to be working on WebKit2. But what is WebKit2, or even WebKit, for that matter? Well, WebPositive uses WebKit to render its web pages. Currently, we use the WebKitLegacy API to communicate with WebKit. It would be nice to switch to the newer version: WebKit2. However, our port of WebKit2 still needs work. At present, it has lost its ability to even render any webpage at all! So, getting WebKit2 to work will be the primary goal of my GSoC project. If there’s time left, I might be able to integrate it into WebPositive.

The advantages WebKit2 has for WebPositive will be mostly invisible to end-users. The code will hopefully be more maintainable than the deprecated WebKitLegacy and we’ll get access to several newer APIs such as the ad-blocking API. Perhaps the most visible change: problems in one part of the code should be less likely to crash the whole browser.

↫ Zardshard on the Haiku website

The current state of WebPositive, the only native Haiku web browser, is emblematic of why I have personally lost all interest in the successor to what is still my favourite operating system of all time. Haiku OS supports several browsers, and if you read any forum post about which browser to use, or watch any of the enthusiastic Haiku videos by the insanely awesome Action Retro, they’ll all advise you to use any of the non-native Qt or GTK browsers instead – because WebPositive just can’t compete with the ported, non-native browsers.

Since everybody using Haiku is opting to use the better ported browsers, WebPositive has fallen even more by the wayside; now it has to play catch-up, and by the time WebKit2 has been properly ported and bug-tested, and has been integrated into WebPositive, which then has to be bug-tested as well, we’re going to be months, if not years, down the line. In the meantime, the ported browsers will have been regularly updated with newer, better versions. Unless the focus for the single most important application of any general purpose desktop operating system is placed solely on WebPositive, it simply won’t be able to keep up with the ported browsers. Why even work on WebPositive at all at that point? It’s not like anyone is using it, so why bother?

And this highlights a problem for people like me, who prefer to have native Haiku applications instead of ports of software I can already run elsewhere. As a former BeOS user, I am not interested in a vessel for running Qt applications that I can, in all likelihood, run better on Linux. Why would I go through the trouble of assembling a machine with hardware Haiku supports, only to then run the same applications I’m already running on Fedora or OpenBSD, but worse?

If you browse through Haiku Depot today, it feels like the vast majority of modern, maintained, and working software are ports of Qt (and GTK) software we already know and love from other, more mature, more stable, more usable, and more feature-rich platforms. Haiku has chosen to pour a lot of energy and manpower into becoming an operating system designed to run ported, often Qt, applications, but the downside to that is that new and maintained native Haiku applications, that play to the strengths of the platform, are few and far between.

A Haiku developer once told me that real people use Haiku every day, and they need real applications, and ported applications make it possible for not only Haiku developers themselves, but also normal users, to run and use Haiku every day. This is a valid argument that I fully understand and agree with – it just means Haiku isn’t for me. And while that’s sad for me, it’s entirely fine. Haiku’s developers have chosen to focus on building a daily-drivable operating system with tons of ported applications, instead of an ideologically pure operating system you can’t really use because it only has like 4 native applications and nothing else.

And that’s a valid, smart, and practical choice that I fully respect and understand, even if it means Haiku isn’t really a BeOS successor anymore.


  1. 2024-05-09 9:40 pm
    • 2024-05-10 12:43 pm
    • 2024-05-11 3:18 am
      • 2024-05-11 7:15 pm
        • 2024-05-11 9:26 pm
  2. 2024-05-09 9:51 pm
  3. 2024-05-10 1:38 am
    • 2024-05-10 3:45 am
      • 2024-05-10 4:44 am
  4. 2024-05-10 2:08 am
    • 2024-05-10 3:40 am
  5. 2024-05-10 4:13 am
    • 2024-05-11 3:20 am
  6. 2024-05-10 5:42 am
    • 2024-05-10 8:34 am
    • 2024-05-10 2:01 pm
      • 2024-05-11 8:58 am
      • 2024-05-12 9:59 am
  7. 2024-05-10 6:14 am
  8. 2024-05-10 6:33 am
    • 2024-05-10 8:09 am
      • 2024-05-11 3:21 am
  9. 2024-05-10 9:07 am
    • 2024-05-10 2:07 pm
  10. 2024-05-10 9:52 am
  11. 2024-05-10 10:53 am
    • 2024-05-10 9:23 pm
      • 2024-05-10 10:22 pm
  12. 2024-05-10 9:19 pm
    • 2024-05-10 9:24 pm
    • 2024-05-10 10:13 pm
  13. 2024-05-10 10:16 pm
    • 2024-05-11 7:30 pm
  14. 2024-05-10 11:10 pm
    • 2024-05-11 12:31 am
      • 2024-05-14 11:29 am
        • 2024-05-14 5:15 pm
  15. 2024-05-11 3:13 am
    • 2024-05-11 3:23 am
  16. 2024-05-11 6:45 am
    • 2024-05-11 10:40 am
      • 2024-05-11 5:34 pm
        • 2024-05-11 5:47 pm
  17. 2024-05-11 5:51 pm
  18. 2024-05-12 2:31 am
    • 2024-05-12 4:39 pm
      • 2024-05-12 10:19 pm
      • 2024-05-13 5:29 am
        • 2024-05-13 9:08 am
  19. 2024-05-13 3:45 pm
  20. 2024-05-14 1:46 pm