Haiku longterm roadmap - some ideas and clarity

I am not sure if this should go in the Suggestion Box instead, but since I have both questions and suggestions I thought this is the better place to ask. I love Haiku, but this is not only a sentimental feeling; it is based on good design decisions of the original BeOS. Unfortunately time-wise I cannot contribute to Haiku currently as I would like (busy with a PhD), but I am thinking of writing a whole new GUI after the PhD which could actually position the next Haiku version as the best option for a personal computer.

Increasingly, as personal computers became more powerful, server-type features became part of the desktop operating systems more and more. This is certainly true for both Windows (since NT) and Linux (right from the start), but even for Apple (based on BSD). I really don't want a web server running on my laptop, to be honest (nor do I want a mobile interface), And do I really need or want a multi-user environment on my personal laptop?

So my first question is this: What were the design aims of the original BeOS? I assume that Haiku will want to aim at that and not just get stuck at version one (BeOS R5 compatibility). BeOS was marketed as "the multimedia OS". Multimedia has improved a lot since those times, especially on the hardware side. Do Haiku plan to support OpenGL? Do we want to support all the new hardware? Can we really call Haiku a BeOS successor as multimedia OS if we don't? If this is not the long-term aim of Haiku, what is? IMHO BeOS wanted to be the next Apple OS, meaning that even though it was marketed as the multimedia OS, it really wanted to be a full-on personal OS, a worthy option for Apple (and I still think it would have been a better choice than NEXT ;-) ). But this is a bit more than just a multimedia OS. Is this what we want Haiku to be?

Another thing to keep in mind, is that the desktop platform is becoming increasingly less important as mobile increases. However, for one thing it will remain the most important platform (at least for the foreseeable future and maybe forever): development. It means that as other OS's start to focus on mobile, server or the cloud, this could be an opportunity for Haiku to shine as a development platform. C++ is one of the few languages that is suitable both for low-level systems programming and for high-level application programming (another one that I like is Object Pascal = Delphi/Lazarus). Also, as a multimedia OS, Haiku could be the ideal platform for Game development, one aspect where both Linux and Mac have always trailed behind Windows.

In the long term, do we want Haiku to be a multi-user system? Multi-user systems make a lot of sense on a server where more than one user can be logged on simultaneously, but do we really want that for a home computer? The one area where having at least a normal user and a root user makes sense to me, is in terms of security and preventing malware from infecting my computer. From this perspective, some of the decisions with regards to the Package Manager and system directories being read-only, makes sense. However, then we have the issue of binary compatibility? IMHO, it should not be needed to change any BeOS application to get it running in Haiku... if it was, we loose all the advantage of binary compatibility. The whole aim of this compatibility is to have the full range of BeOS applications available for Haiku right from the start, instead of having to bother with application development for Haiku version 1.

Reading through the forums, I could not help but notice the growing frustration with the slow pace of development of Haiku, the current structure of Haiku Inc and the development process. I agree with previous posts that have suggested a Debian-like development cycle. Have an unstable version (the nightly builds) where things are experimental and expected to break from time to time. Then have a testing version where they are moved to once they have no obvious bugs and are fairly feature-complete. And then, at some stage freeze the testing version so that no more new stuff gets added, but only all the bugs in it are resolved in order to release a "stable" version (which might still be alpha or beta, since it will not be complete, but will at least be relatively bug-free).

But the second aspect to address, is the applications. In contrast to a typical Linux distro, and more like a typical Windows set-up, BeOS was an operating system only. The applications were installed by the user. I think Haiku should make a clear distinction between the operating system itself and the applications running on the OS. The aim for the first stable release of Haiku is that of an OS, full binary compatibility with BeOS, able to run all the original BeOS applications. But in contrast to Linux, the GUI and the kernel are not separate in Haiku, they are simply different modules, exposing a certain API to the user applications. The original BeOS applications should serve as the test cases for the testing and stable versions of Haiku OS. But new Haiku applications should also be developed or ported in order to draw more users and this should not be the concern of the core Haiku developers. These applications can already be aimed at the second stable version of Haiku, meaning there should already be a fairly clear idea of what this future Haiku version will look like. And this will mean that there should maybe already be developers working on additional features for Haiku that was not part of the original Be0S, but which will be part of the second stable Haiku version. This will be a known unstable version where things are expected to change and occasionally break.

I got the feeling that a lot of the application developer frustration with Haiku, was that changes specifically to the file directory structure, permissions and package manager, broke things that used to work. If there was a feature-stable testing version as well as an unstable version of Haiku, this would probably not have happened. The Package Manager, for example, would only have been able to enter the testing version once it was certain that no existing applications would be broken in the process. Then the testing version would be made available to the public to play with and test.From a user perspective, one of my frustrations (coming partly from a Linux background) is the fact that there was no full Haiku "distro" with all the most important application software already installed. I liked Senryu for this reason. If we want users to test our OS, we need to provide them with applications that they can use to test. Really, unless I am a kernel or module developer, an image of the OS without any applications is useless to me. I don't have the time or inclination to reinstall my applications from scratch every time.

The support for old, but useful, application software is one of the reasons for Windows'popularity (the other reason was their OEM licenses which effectively prevented PC's from coming pre-installed with BeOS or Linux). For this reason, I think it will be important for future Haiku versions to keep binary compatibility with BeOS. This is still better than having to keep compatibility with DOS or early Unix programs. The multi-arch options on Debian with both 32-bit and 64-bit programs running smoothly, shows that it is not too difficult to do. I think a similar approach should work for BeOS (32-bit and 64-bit as well as the gcc2 and gcc4 compiler alternatives). At a later stage, most apps could be ported to the newer ABI and the 32bit, gcc2 system could be run as a full-on emulation "skin", similar to WINE on Linux, for the few remaining legacy apps.

There are a number of things that BeOS got right and that I think any future Haiku should aim for:

  • Fast boot-up time! Nothing else compares... As more and more server-type feature become part of the personal PC, the system just grows bigger and slower. While this is fine for a server that should stay online 24/7, this is not how most people use their personal laptops or what you really want on your own computer. The fact that Haiku tries to keep things simple, starting only a handful of services, have a modular design and with everything well-integrated into a single system, means that no OS I have tried can compare to it in terms of bootup or shutdown. We want to keep this speed advantage and should resist any feature creep that might endanger it; more features should not impact boot time or shutdown time
  • Using an OOP language (C++) to write the system. How cool is that? This is something that can actually draw developers and should make things easier. Although I prefer Delphi to C++ simply for its compile speed, the fact that Haiku is written in C++ has always been a drawing card from a developers point of view IMHO.
  • When I last used Haiku frequently, the whole debate on a Package Manager was just starting and as I remember it, opinions were pretty much divided 50/50. While I love my package manager in Linux, I liked it that for BeOS (and Haiku at that stage), I could just drag installation packages to the right folder and instantly have a running program. I hope that this can still work like this in addition to the Package Manager, at least for the first release of Haiku. (Behind the scenes the Package Manager can work all kinds of magic to make sure that the right libraries is installed and that the software can be removed cleanly later if required, but as a user, I don't want to be forced to use the package manager for installing programs, especially not since I might want to install programs not available from a central repository and doing it was so easy in BeOS). Making things easier for the user, even if it takes a bit more programming, should be a given. Could something like the nixOS system work on Haiku for this?
  • I still remember the multiple 3D graphics on BeOS (turning teapots anyone?). If Haiku can keep the focus on its multimedia abilities, including support for modern graphics and sound cards, it can be the perfect gaming PC platform. The main problem is that it will need a big enough user base to draw game developers. But porting a game engine like Unity, or one of the open source alternatives that uses C++, should be a priority, I think. For a home computer this is simply non-negotiable.
  • Stability because of the modular design and small size. When I first started using BeOS, Windows 95 was still the most common OS used on the desktop. BSOD was common. One of the reasons why BeOS was so small, fast and stable, was because they were in the unique position of being able to design and write an OS from scratch without needing to support legacy applications. By contrast, Windows still support DOS, 16bit, 32bit and 64bit programs today, making it bloated and prone to breakage.
  • The BeFS. Journaling and a searchable DB build into the filesytem itself, long before journaling was common in any of the mainstream OS'es. Still a good design. ZFS seems to offer many of the same advantages. But once again, I am not sure if we want to have multiple options for a file system on Haiku. If we want an OS for tinkering and configuring, Linux should be the better choice,
  • No issues with multi-user support for a personal computer that was only used by a single person. Keep it simple (KISS)... the only issue here might be future malware that should not be able to bork the whole system or install itself without the user's knowledge or needing any special programs to remove again from the computer. Maybe by having "hidden" user and root accounts and preventing any user program from changing system files.
  • The familiar bash shell and POSIX compatibility was available for those special occasions when I still need/want a terminal. POSIX compatibility should also help with porting Linux software, especially those based on QT.

So far my ideas... Anything to add or areas of major disagreement?

You have pretty much said what I have been thinking for a long time. I agree 100%.

the desktop remains relevant not just for development, but for media production, also. while there are mobile apps for music and video creation, they pale in comparison to what’s possible on a desktop – even laptops are barely suited for the amount of data that has to be moved across a any number of drives and streaming devices, across any number of inputs. more professional-grade equipment is priced for the consumer market than at any point before and more people are creating quality media as a result. there is not yet a smartphone or a tablet that matches the pressure sensitivity of a wacom or yiynova tablet, so illustrators still use laptops and desktops. there is no smartphone or tablet that offers usb3 or thunderbolt input, so video editors still use laptops and desktops. there is no smartphone or tablet that interfaces with midi and osc devices, so musicians – even those that include an ipad in their setups – still use laptops and desktops. there is no smartphone or tablet that allows for video streaming over hdmi or hd-sdi, so small media studios still use desktops and laptops. there is no smartphone or tablet that tethers to cameras, edits raw footage or connects directly to a printer, so photographers still use desktops and laptops. there is no smartphone or tablet that allows for transparent access to the filesystem, even. there is no smartphone or tablet to adequately handle anything remotely media-related on its own – they can’t render video, they can’t be color calibrated, they really can’t do much more than browse the internet and store heavily compressed photo and video.

but! on the desktop we can do plenty that’d prove useful to someone who uses their phone to upload to various social networks (instagram, vine, snapchat etc) and so much more. through haiku, also, this can be done affordably, not nearly as much a result of the zero dollar price point as it is the result of the design of the operating system itself allowing for interapp communication with little need for tying up extra resources to work on the same media. for that we don’t need opengl, even – for video we really couldn’t use it anyway because ffmpeg and the other open source libraries available to us don’t use opengl (which btw is supported in haiku and has been for a pretty long time now). what would most benefit us for usb is support for usb3 – gotta be able to move those files – but in the meantime, were an oem to build a haiku box they’d want to include esata and usb2 instead. aside from that, we’re good. it’s up to app devs to make it happen.

mobile’s good for some things, but the desktop isn’t going anywhere anytime soon.

Seems to me you have plenty of time to think. Too bad you haven’t any to contribute :slight_smile:

Bye

Damn, that was well said…! (:-)) Wish I could state my position with such clarity! (But I guess I don’t have to – you’ve pretty much said it for me…)

As Spinach says, I don’t think the desktop [or maybe we should call it the “capable computer”] is going away anytime soon. Phones are great when you want to chat, or look up something on the web,though personally the fad for watching movies on a 3 inch screen doesn’t attract me at all. Tablets are a bit better for that, but I’d rather wait until I can sit back and watch on a reasonable vision-spanning screen. Or even [gasp!] go to a really big screen at a theatre! If you want to do much more than that, you’re going to need a flexible interface like K/B and mouse (or even a pen tablet). Fingers alone don’t really cut it.

So yes, I think Haiku should focus on the single-user, K/B & mouse (etc.), machine. (To me, a good laptop is pretty equivalent to a desktop machine, except for the ability to add cards and so on.) And for me, media manipulation is of supreme importance. Aside from writing code, I use a computer mostly for making music, and occasionally graphics, [Well, yeah, I admit I surf the web a lot, too.] If I had access to good video apps, I might try that also.

Personally, I feel that Haiku’s media capability has lagged somewhat, after BeOs’s roaring start. The Media Kit still suffers from poor latency (by default anyway) and inability to reconnect sources and destinations as one would like. I’d like to see a lot more effort in that area.

Anyway, that was a welcome voice.

[quote=korli]Seems to me you have plenty of time to think. Too bad you haven’t any to contribute :slight_smile:

Bye[/quote]

He just did contribute well enough…

Well asked, well written and I agree for the most part.

As far as Desktop environments and managers, I still haven’t found what fits me, or what fits a pedominently right-thinking brain. File managers, desktop managers, heck, even “multimedia” OSs are designed by left-brain thinkers. The gist is, I would love to see an intuitive desktop with an intuitive file manager. Nothing squared, but more like relevant circles with relevant information nested inside, last file used, programs used, etc, per whatever category the user defines. This would cater to the more artistic non-savvy, underserved consumer base. Plus, it would finally get us to loosen the square look presentation shackles I find so unatural.

Thanks for your comments, Chavoux. Maybe you should’ve broken the big post down into several smaller ones…

Personally, being an ex-BeOS user starting R3, I don’t care any more about why Be Inc. span its PR this way or that way 15 years ago. I’ve been using Haiku fulltime much longer than BeOS. Almost all the apps I use are open-source and available from haikuports. Sure SoundPlay would be nice, but I’d much rather have an actively developed ‘clone’ than the real thing from way back then.
To me, Haiku at the current stage and probably for a long time to come, is a general purpose OS for people that like to tinker with computers and love the understandable design of Haiku. I guess, if I had to pidgenhole Haiku’s audience, I’d say it’s more the “maker” people, less the “artists” at this point. And here IMO it comes round circle to BeOS: with its Geekport BeOS and its BeBox appealed to the tinkerers. Once they dragged out the old MediaOS chestnut and later on InternetAppliances, chasing the needed money, the decline has started…
Don’t get me wrong, handling media and communications is important, but should be adequately possible for a general purpose OS.

Anyway, from some comments with regard to package management and how it should be drag&drop etc., it appears Chavoux hasn’t tried Haiku recently. I suggest to do that first. Makes arguments much more convincing.

Regards,
Humdinger

Hi Humdinger,

The only reason I don't have Haiku currently installed, is because my last 3 laptops used EFI and I could not install it. My laptop would not even recognize the DVD as installable. I do want to try it again in virtual machine (as soon as my Linux install is done). But I used to prefer Senryu in the past because it came with a full set of applications pre-installed. IMHO a "stable" release of Haiku should include some useful applications which have been tested and are running stable on it, not just the OS (for drawing more users). Even the "testing" branch should include applications (to be used for testing it). For the unstable, actively developed branch (nightly builds), it makes sense to keep the OS and the applications separate.

Just as a point of interest: don't you think Linux adequately fills the niche of being an OS for tinkerers?

One other thing I wanted to add and forgot in my original post. Relatively few Open Source projects design things from scratch. I think it has to do with the fact that it is difficult to share the exact same goal, when not being directly together. Having an existing design to copy (Like UNIX for Linux and BeOS for Haiku) helps to keep developers focused on the same goal. But going beyond that, to write something which has never existed before, solving a problem that has never been solved before, seldom happens in the Open Source world. Haiku could become one of the few exceptions, I think, if we can decide on a common future roadmap.

But I actually agree with you that Haiku should be more than just a multimedia OS. However, I think the design is perfectly fitted to having multimedia as an area of strength. I even agree that it is currently a "tinkerer" OS, but I do not think this is what it should aim for. For a number of reasons it should shine as the ideal home computer at the end (which is why I also think gaming is so important)."

Regards,
Chavoux

BeOS 3D graphics were just an unaccelerated OpenGL implementation. Getting from there to the hardware accelerated 3D everybody else has been enjoying for almost twenty years means a lot of work. Without all that work, the game engine you want will be unusable.

Haiku’s approach is to leave all the quality of implementation work until “later”. Which was perhaps a sound idea for an OS that was going to ship in 18-24 months and use that to gather strength for bigger and better things. But Haiku is into its fifteenth year.

[quote]
By contrast, Windows still support DOS, 16bit, 32bit and 64bit programs today, making it bloated and prone to breakage.[/quote]

No version of Windows supports all four. The 64-bit Windows editions drop DOS and 16-bit Windows application compatibility, leaving it to you to install something like Dos Box if you still want to run DOS in 2015.

You are right about Windows, but that shift has been so slow, that I (and probably most Windows users) have not even noticed that support for DOS and 16bit Windows has been dropped. And this still make my point that Haiku will need to keep legacy BeOS support at least for a while, even if it becomes a shiny modern OS. And my suggestion is that it later moves that support to a kind of "emulating shell" (not a full emulator, nor keeping it in the main system) like WINE on Linux. This will help to keep things modular so that breakage in one system will not affect the stability of the other. The important point is, that from a user's perspective there has not been many (if any) situations where a user application no longer works because of an OS upgrade. One factor in this has been that the development tools have also improved and moved on to the new OS versions. By the time that DOS and 16bit support has been dropped, there were barely any user programs that only run on those platforms, most programs having been ported or updated to run on the newer OS versions before this (and even for the few exceptions, like really old games, DOS Box is still available).

I confess to never having looked at the Haiku source code, but how doable is it to use the existing Linux 3D drivers in a Haiku C++ wrapper class? The nice thing about OOP is that the interface and the implementation can be separate, so it should be possible to replace the Linux driver(s) with a native C++ implementation later (if we really want to) without breaking anything, as long as the interface is designed well and with enough foresight.

Back in the BeOS days or before there was a package manager in Haiku, bundling applications might be useful. Today, I much rather open HaikuDepot, look through the featured applications or browse through specific categories and install what I need.

It is. But it is quite fractured compared to the all-is-one-project Haiku. Linux feels to me very complicated, in parts cryptic, and historically focused on the CLI. Paradies for hardcore tinkerers, not so much for the rest. Also, a drawback in many ways no doubt, but Haiku is lacking so much that anyone can find a project to make difference: from programming all sizes of projects to documentation and translations to user support, PR, art…

I’m saying enjoy the wide open opportunities for a very diverse hobby, don’t count on Haiku to become the leading gaming platform or music production power house. Unless hardware manufacturers and big names in the software industry start investing, and why should they? :slight_smile:

Regards,
Humdinger

it’s neither fair nor safe to assume everyone trying haiku is able to get a steady internet connection, and in absence of such connection there ought still be access to documentation and a handful of apps. some apps do still come preinstalled in the nightlies but documentation doesn’t and that’s a real pain in the ass considering the space it takes up is so tiny.

it isn’t, except in the case of gallium3d which kallisti5 did a bunch of work on in the past couple years and is now supported upstream with updates from mesa. still, getting hardware acceleration is difficult and won’t be pursued till r2.

OK, maybe this is just my personal situation, but I am not always online, so having a live OS with bundled applications makes sense for us guys living in 3rd world countries. Once I have done the download, I can disappear into the bush and still be able to have a useful system. Doesn't it take a lot of time installing all the programs you like every time you do a reinstall? This is currently my problem on Linux where it can take me up to a week to get a system with all the software I want and need installed. Granted, I install a lot of research tools etc. that not everybody will need and have slow internet, but even on Linux I am hoping to one day find a live distro with all the development tools I want pre-installed, just like Kali comes with (almost) all security tools pre-installed.

I agree with you on the fragmentation of Linux. It is both a strong point (Linux have been ported to both super-computers and mobile devices) and its weak point (too many ways to do the same thing, confusing to understand how everything fits together, etc.). I agree that one of the things that drew me to Haiku was this aspect and I really hope that it will not fragment in future. Even though I was originally one of the protesters against the idea of a package manager in Haiku, now that we have one, I don't like the idea of a separate Haiku fork without it. What I would like however, is that it is important that binary compatibility with BeOS not be broken because of the package manager. E.g. for those program that expect hard-coded paths like the original BeOS, create symlinks to enable them to run unmodified.

Where I differ with you, is that I truly think Haiku has the potential to become the desktop/home computer OS of the future. Yes, maybe not in the short term, and maybe not in version 1 while it only has BeOS R5 compatibility, but as a well-designed base that took the right decisions on what a personal computer OS should be (small and fast, among other things), it can become a force to be reckoned with. The catch 22 will be to capture a large enough part of the market to make it worthwhile for gaming programmers to write for Haiku as a preferred platform, especially if it can provide the libraries that makes it easier to write games than on any alternative. Why not?

Great post and 100% agree. One thing I would add is that some focus should be placed on compatibility on some key hardware platforms. A good platform would be the Intel Compute Stick. This should be easier to achieve since it’s x86 and is relatively inexpensive at just over $100.

Another important platform is the Raspberry Pi. Raspberry Pi is an extremely low-cost platform that at least from a hardware perspective, shares a lot of the same goals as the original BeBox (Geekport vs GPIO, etc.). Their hardware is relatively open and consistent as well which should be relatively easy to maintain a port. The best part about it is that if Haiku is ported, it should have a performance advantage over any other operating system on the Raspberry Pi platform. People could get their own Haiku-box for less than $50.

The performance on either of these won’t be barn burning but the idea is to find low cost entry points where people can begin to adopt Haiku and begin porting/creating applications to drive the platform.

I want to be able to use Haiku as my main OS because I prefer its design and simplicity over the alternatives but its still too buggy and lacks too many key apps for me to use it properly.

For myself and many others, I absolutely MUST have:

  • A stable, modern browser

  • A terminal

  • A decent, offline productivity suite (Libreoffice)

That’s not asking much in 2015. Haiku is OK for browsing and terminal work but the lack of a usable office suite is a showstopper for many. There is currently only ThinkFree office which isn’t FLOSS, isn’t officially supported under Haiku and the real killer is its inability to print. Haiku cannot honestly claim to be a desktop OS until it has a usable port of an office suite complete with printing support.

Both this and the ‘Do you Love Haiku?’ thread big up Haiku’s fast boot speed but I’m currently quite disappointed by that, or at least I have been since I started using a SATA3 SSD. I’ve got a Samsung 840 EVO and Arch running MATE takes about 6s to boot whilst a recent Haiku nightly takes about 16s to boot from SSD. I was expecting Haiku to boot faster than Linux but maybe the Haiku kernel doesn’t support SATA3 properly yet or maybe its because BeFS isn’t optimized for SSDs yet?

I think the Haiku nightlies already come with a pretty good selection of software. The sad fact is that there isn’t a whole lot more to include that your average user might want. Qupzilla is always the first thing I install but I can understand why the devs would want to ship the ‘more native’ Webpositive instead. On a related note, you do realise you can update Haiku without doing a re-install Chavoux?

I think we can safely forget about Haiku ever becoming a serious (3D) gaming platform. Its over 2 years since Valve started supporting Linux and more like two decades since AMD/ATi started supporting Linux and STILL the AMD GFX drivers for Linux are crap compared to Windows and the Intel drivers still trail behind Windows despite Intel having a sizeable team working on the Linux drivers full time. Haiku would pretty much need to ditch its own kernel and app_server in favour of Linux and xorg/wayland just to get the second rate graphics support Linux has (if you’re not using Nvidia’s proprietary drivers).

Until Haiku becomes more stable and gets at least a Libreoffice or OOO port it will remain only of interest to retro computing fans and hobbyist OS devs.

It seems to me that Haiku does not really have a goal in mind except to maybe one day have binary compatibility with BeOS R5. That seemed all well and fine 15 years ago, but not today. Haiku has a unique opportunity to position itself as the #4 OS of choice for the desktop user, behind Windows, Apple and Linux. Without that goal in mind it is forever destined to be just another hobby OS for some few developers to tinker with in their spare time. Is this what what we want? I will be interesting to see what direction the project goes after the Kitchen is merged and debugged. Maybe the development team can give us their vision of where they see Haiku going. What goals are shared and where do they differ?

[quote=danboid]* A stable, modern browser

  • A terminal

  • A decent, offline productivity suite (Libreoffice)

That’s not asking much in 2015.[/quote]
that is a lot to ask, especially from a couple dozen people with lives and dayjobs who are doing this for free. firefox, chrome and opera each have devs working fulltime, for pay. ms word, libre office and google docs have people working fulltime, for pay. you’re not about to get all that for nothing.

that’s not true, haiku’s got upstream gallium3d support, which is what wayland uses, so.

i’m neither of these things, and there are others here who also aren’t.

linux has never had a goal outside of unix compatability. several applications have had goals, but applications are not operating systems.