Here is a representative screenshot of Haiku environment on 4k (3840x2160) screen running my native Media editor for Haiku (audio+video). It took me 2 years of a couple of hours per week to build it from scratch.
Haiku relies on ffmpeg to decode videos, so there is no difference between other systems. BeOS used to have yuv420p, yuv444 etc supported colour spaces with supported drivers, and the interface kit BBitmap supported YUV colour spaces via overlays, so you gain efficiency by doing one conversion less. Haiku lacks proper drivers so has to pay the price. For a video editor which needs BGRA colour space, you’d use shaders (SpirV or GLSL) to convert colour spaces. Haiku lacks HW accelerated drivers so it loses there as well (compared to mainstream OS’s). Also, Haiku has no vaapi HW driver so it loses there as well.
On the plus side, Haiku has a fantastic API and with BMediaKit and translators, decoding a video stream is a couple of lines of code (much nicer than raw avformat API from ffmpeg). The async bitmap transfers/uploads are multithreaded so it wins there. Haiku allows efficient sharing of media buffers between apps, so drag/drop between apps is really efficient.
I went overboard with making the video editor as multithreaded as possible. A thread for thumbnails, decoding, audio mixing, opengl, the main gui window, preview window, effects gui, encoding, etc. They’re all threads. The editor is really smooth, and can do 4k editing. I cant wait to see how it will runone day with actual HW accelerated drivers.
IMHO every fringe OS community should invest effort into developing good full-fledged drivers for at least one reference hardware configuration. I wouldn't mind buying a specific video card, a specific motherboard etc even if they were rather old and overpriced in case if Haiku had stable hardware-accelerated drivers supporting all their features.
Given open-source Linux drivers which can give a good clue about how to interact with specific hardware this task doesn't seem impossible.
This looks like a great app! I'll have to check it out. I wrote a video editor for BeOS back in 1998 called UltraDV. Nothing really happened with it, but a lot of the code continued to live on and evolve in the Muse Reasearch Receptor hardware VST box.
Thanks for the feedback. I never tried UltraDV, however I did have a copy of personalStudio.
Regarding VST plugins, I do have the book "Designing Audio Effect Plugins in C++" by Will C. Pirkle and plan to add VST plugin support to Medo. However, I know nothing about VST use cases so I'm developing in the dark here ...
It’s cool knowing that this was developed in Melbourne. I still feel like it’s a little city in little Australia, but I know there’s some crazy talent in town. Thanks for you hard work!
Regarding VSTs in a video editor: for doing any dialogue work (eq, compression, de essing) would be some use cases I have (I use some VSTs in FCPx). Also for working with music (same eq, compression, gating/ducking). Not having to bounce the audio through a DAW of some sort to just get it to sound right is a huge productivity boost.
For anyone curious, Melbourne has 5,159,211 people, which puts it ahead of fan-favorites in the US like Los Angeles, Chicago, Philadelphia, San Francisco, Boston... and literally every city in the United States with the exception of New York!
In fact, it has more people than the states of Wyoming, Vermont, Alaska, North Dakota, South Dakota, Delaware, Rhode Island, Montana, Maine, New Hampshire, Hawaii, Idaho, West Virginia, New Mexico, Kansas, Mississippi, Arkansas, Nevada, Iowa, Utah, Connecticut, Oklahoma, Oregon, Kentucky, Louisiana, Alabama and South Carolina.
> For anyone curious, Melbourne has 5,159,211 people, which puts it ahead of fan-favorites in the US like Los Angeles, Chicago, Philadelphia, San Francisco, Boston... and literally every city in the United States with the exception of New York!
I tried to look up what the "metro" population of Melbourne is, but could only find a reference to "greater Melbourne" being around 5M. LA metro area is 12M.
Don't deceive yourself. The numbers involved and the underlying reality are a little different than what you're thinking, since it all depends on where you draw the lines. The entire state of Victoria, including Melbourne, has something like 6.7 million people. [0] The United States has 11 combined statistical areas [1] with populations greater than Victoria. The way large cities are laid out, it often makes little sense not to include the suburbs.
LA County and the Chicago metropolitan area each have roughly ten million people, and NY metro is at least twice that. They are really, really big. The most interesting thing about Melbourne and Victoria is its rapid population growth. The graph might not be a hockey stick, but it is extremely steep.
That said I am always surprised when I see local stuff that is of high caliber. It always feels like it is a little guys proving it on the world stage.
That said... Little city!? I surprised that folks would see this place as small. I would have thought that back in the 90's but we have slowly become, maybe a little too much, a big city.
Thank you, it was a labour of love :) I still have an enormous amount of work to do, eg. adding many more audio filters and effects, text effects, programable OpenGL effects, and of course bug fixing. Hopefully in a decade or so it will be a solid dependable application.
I enjoy the BeAPI. In my opinion, the Interface Kit (GUI) has just the right balance between having enough features to be useful and not getting in your way. The BMediaKit realistically has 2 purposes, decoding/encoding and streaming and ideally should be split up into 2 kits. The Haiku based packaging system is really great for developers, since installing headers/libs requires zero effort, it just works. Tracker (file navigation) is fantastic, finding header files takes less than a second. Deskbar needs to apply 20 years of modernisation and adopt features from other OS's. The browser situation is terrible, though. System administration is really well thought out, however, it needs user accounts and encrypted volumes.
Regarding other development environments, I've done professional Qt development, and I'm displeased with the ownership and kitchen sink model. Ownership and auto layout make dynamic widget hiding a real pain, especially since you cannot remove a widget (ownership issues). Layouts with dynamic widgets are another pain point.
A family PC has more than one user. I'm sure that the same people don't want to, say, share their browsing history and log-ins or have the same taste in wallpapers.
Do these really still exist[0]? As far as I can tell, they only ever existed during the window between when internet access became ubiquitous and when smartphones became ubiquitous and laptops got really cheap.
Besides which, I think there are better ways to accomplish that goal without user accounts. User accounts exist to protect the system and users from other users in a shared system or network, which doesn't really apply in a Desktop use case. Instead I would say what you want is switchable user profiles, plus encryption to actually protect your documents if that's important to you, because it is trivial to bypass filesystem permissions for local users anyway.
[0] I'm sure somebody is doing it, but I have to imagine that within the vanishingly small Desktop PC market this use case is itself vanishingly small.
Seeing this and the other day about SerenityOS I have the feeling from checking the home page that focus is on certain graphics experience, and so I wonder why build a OS from scratch instead of a window manager over Linux, apart from the coolness factor. My question is what things can impact the user experience if you are allowed to start from a fresh design?
Linux 20 years ago wasn’t what it is today. Low latency audio for example, that was something that BeOS in the late 90s could do out of the box, a similar experience on Linux required special kernel patches and some compromises or it simply wasn’t there at all.
Audio latencies of less than 10ms on consumer hardware were otherwise unheard of. Windows, out of the box, was still operating in the 100+ms range.
Yet after 20 years of Linux distros, we still see Linux struggling with getting a simple desktop together without X or Wayland crashing itself and logging you out because of someone wanting to tweak their desktop via a custom init script or systemd script.
Let me know when I can support 100% of all Linux distros and users like I can with macOS and Windows.
There's only one macOS and only one Windows. You can support only the big distros (basically Debian/Ubuntu or/and Fedora/openSUSE; for example that's what Chrome does) and let respective distro maintainers handle issues to other ones. Or just use Snap or/and Flatpak.
I would love to see a BeOS/Haiku userland on top, of the Linux Kernel. That would bring wide hardware support, including HW accelerated 3D (something BeOS was always lacking). It is not going to happen though, the attempts that were didn’t go far and porting the entirety of Haiku would be a gigantic effort that no one is volunteering for.
IIRC that was one of the two/three main ways forward discussed and planned for after Be Inc went belly up.
- OpenBeOS (Haiku) - rewrite from scratch
- Option 2 (can't remember if it had a name) - was just to Implement BeOS userland on a Linux, to get free access to drivers etc. Most of the Be community was not interested, and I cannot remember if they even got started..?
- (YellowTab - Some company had access to BeOS sources and started releasing and somewhat updating the OS on a commercial basis - but don't think they actually had the rights to do that....)
This would probably have meant that the Mac wouldn't have become so popular amongst developers. At least that was the reason for me to switch to Mac because it's a "proper" UNIX with a window system that actually works ("Linux on the desktop" has mostly caught up in the meantime, but 10 years ago that was quite different).
BeOS was less compatible. There were also many improvements to it in the later versions. When NeXT bought Apple[0], BeOS was not even in its pre-release phase. Its heyday, such as it were, was really on Intel, with R5 and the Personal Edition, in the last few years of the 90's.
I would love to see a hardware company pick up Haiku and “do an Apple”: make a small set of focused computers with excellent support for a specified set of hardware.
Intel should do this. It's rounding error and they can use it to push the envelope. Intel should have done this with Linux, Solaris, Beos years ago to push Microsoft.
The NDK wouldn't be a problem, but requiring powerful devices speaks volumes about how lacking is Android in that field, when one can build low latency synthesizers and effects using a cheap old Raspberry PI 3.
https://www.youtube.com/watch?v=YtU8jMtbplE
True low-latency workloads on modern Linux (and 10ms is definitely low-latency!) still require a custom patchset (namely PREEMPT_RT). It's slowly making its way through the process of being upstreamed, but still.
I'm glad you mention audio because I'm going to spend 60€ on a dedicated microphone just because Linux cannot use simultaneously my Bluetooth headphones and their integrated mic without manually changing the codec (which additionally sucks when using the mic). Some problems improve but others simply never dissapear, like audio. Maybe there is a lack of interest or maybe is a design or a process problem, I don't know.
Linux plus the PREEMPT_RT patchset would make a nice low-latency kernel for multimedia and UX-focused workloads. It would still need quite a bit of user-level work compared to most distros, however.
Some other OS projects have legitimate reasons for starting from scratch, e.g. Redox being written in a memory-safe language. I suppose you could class Haiku's compatibility with original BeOS software as reason enough.
#1 reason is probably nostalgia, and just the idea that you have a simpler, older-style OS. vs a modern OS just reskinned to look old.
Personally i think speed: I see a 90s UI and I expect stuff to happen almost instantly on my modern Desktop. Also expecting less bugs because it’s a simpler OS. But in practice even though Linux is much larger and more complex it’s probably still faster and less buggy.
So probably just the idea.
EDIT: Should also add, probably because these OSs do some core things differently than Unix and Windows. Those OSs are constantly updated but the core features are still old, so the niche OSs could possibly implement them “better”.
You probably cannot add 1+1, that person meant the 90's style desktop means there is no unnecessary cruft in it, therefore it won't try to amaze the user with eyecandy, so operations will happen instantly. And less code means less chance for bugs.
The OpenBSD bug on Xenocara which allowed root needed more code, not less.
So this is the case with pledge(4) and unveil(4), you need (a little) more code in onder to sandbox setuff properly.
NT4 was much more complex than W98SE, yet NT4/w2k was much better on multitasking (by a huge margin). I've seen w98se crawl even with a Pentium 4 and 512MB of RAM with just 3 IE windows open back in the day, while 2k flied.
>The OpenBSD bug on Xenocara which allowed root needed more code, not less.
X was considered and still is a "hack".
>So this is the case with pledge(4) and unveil(4), you need (a little) more code in onder to sandbox setuff properly.
You don't write a graphical subsystem and then tries to sandbox it. Sadly nix advocates won't ever understand this logic.
>NT4 was much more complex than W98SE, yet NT4/w2k was much better on multitasking (by a huge margin). I've seen w98se crawl even with a Pentium 4 and 512MB of RAM with just 3 IE windows open back in the day, while 2k flied.
Let me compare apples with pears, i mean two different approach for OS development which have almost nothing common except the w32 stuff, and let me conclude the newer is better.
I don't really see your point.
Not having proper (accelerated) graphics drivers seems to a problem that all alternative OSes suffer from.
Is there any effort addressing that which is flexible enough that say both Haiku and Serenity could use it?
I've met the haiku devs, their answer is absolutely, and I don't want to misrepresent their reasons so forgive me if I misspeak, this was a while back.
I believe they thought the graphic system was innovatively designed to be tightly integrated and straightforward to understand. I believe they also thought their audio stack, native file system and multitasking model was really great.
I believe it's much more cathedral than Linux so ostensibly there's fewer interim layers and the ones that exist play nicer with each other. I'd guess this would be true for illumos as well but I am not going to pretend I've even looked at the source of either.
If anyone says something in this thread that contradicts what I said, trust them over me. This was probably at least 10 years ago
I would totally do it if the software support was there.
As for the second question: Haiku is about starting over and taking computing down a road not taken. Windows and Unix come with baggage that I'm frankly sick of after using both for years - Windows has bloat and hostility towards the power user, Unix has constant breakages. If Haiku is mature enough to use and doesn't have that baggage, then that's what makes it a more favourable platform.
Tried to run it on few old ThinkPads and it froze frequently. Seems others have better experiences but to me it didn't appeared capable to be used for daily work.
That's very interesting! What work and other activities do you do on it, and how does it compare to the last OS you used full time? I've been curious about BeOS since I read Neal Stephenson's "In the Beginning There Was the Command Line", but I'm too young to have ever seen it in action.
Time for me to re-read "In the Beginning ...". Here's one quote that stands out:
> The BeOS needs a megalomaniacal egomaniac sitting on its throne to give it a human character which everyone loves to hate. Without this, the BeOS will languish in the impersonifiable realm of OSs that people can never quite get a handle on. You can judge the success of an OS not by the quality of its features, but by how infamous and disliked the leaders behind them are.
Also, here's BeOS in Stephenson's Cryptonomicon:
> Randy types "Finux" and hits the return key. "How many operating systems you have on this thing?"
> "Windows 95, for games and when I need to let some lamer borrow my computer temporarily," Avi says. "Windows NT for office type stuff. BeOS for hacking, and screwing around with media. Finux for industrial-strength typesetting."
> "Which one do you want now?"
> "BeOS. Going to display some JPEGs. I assume there’s an overhead projector in this place?"
> > "BeOS. Going to display some JPEGs. I assume there’s an overhead projector in this place?"
I vaguely recall wondering whether Stephenson was drunk when he wrote that, back when I first read it. Like... As if Windows, both 95 and NT, or "Finux" (can't recall whatever that was; a specific distro, or his codename for Linux in general?) couldn't display JPEG?!?
It is not. We are talking about a tool. An OS never meant to be sexy or visible or distracting or eye candy. It should support and serve the user and only the user. It have no other task.
>What work and other activities do you do on it, and how does it compare to the last OS you used full time?
Some programming, porting, listening music, organizing files, email, chat. None of this requires a wannabe mainframe OS on desktop, but also way too cumbersome to do it on mobile devices.
It works for me. It lets me eliminate most distraction from my life. I maintain the conviction: what not possible with Haiku should not be done at all.
>I've been curious about BeOS since I read Neal Stephenson's "In the Beginning There Was the Command Line", but I'm too young to have ever seen it in action.
I have read it, it is a great example for the bias in the IT: always pick the mediocre solution and kill/ make impossible everything else. Sadly the programmers were always too autistic to understand what the auhor tried to say and the managers only interested in ROI. Therefore we are fucked with *nixes.
You've been defending and praising this tool throughout this thread. You work to improve this tool for yourself and others, even though this work wouldn't be necessary if you used a different tool. I can't imagine you are doing any of this professionally.
It feels to me that Haiku is as much a hobby as a tool to you. And if that's the case, I think it's fair for others to express interest in said hobby.
I remember following Haiku (I think it was originally called OpenBEOS) right from the get go.
I used to read updates on its development progress about it on OSNews. It looks like all the posts of the Haiku's progress going back to the early 2000s are still on the OSNews site (https://www.osnews.com/topic/beos-derivatives/page/19/). I think I gave up on following its progress (or lack of it) at around 2004.
I liked BeOS a lot... in the late 90s and early 2000s... I may still have the BeOS installer floppy (can't remember if there was also a CD in the package) somewhere in my basement. Haiku is definitely not something I would use today, but I'm still glad they're still making forward progress.
Uh, not having used BeOS (but I remember really yearning for it in the mid-90s in college), it would be easier to understand your comment if you clarified. In what way is menu interaction different in BeOS/Haiku?
It's one of those things that probably takes way less time for you to describe, than for me (and whoever else might be wondering) to go and find out on my own, so it would be super helpful. Thanks.
I use that same sort of menu in XFCE for quickly accessing a folder in a deep hierarchy, and I really like it. A lot faster than navigating through a file explorer.
That said I've used another application on Windows that had deeply nested menus, and hated it. The difference was in how the menus were implemented. The menus for this application would close if the mouse moved off the menu at all, while the GTK ones do not - they only close if you hover over a different menu item (opening it instead) or click off the menu. That made navigating the application's menus a tedious exercise in "threading the needle" with the mouse cursor.
Hence, "option". So you can toggle the feature on and off. Please don't deride people for needing special accommodations in their daily driver software.
I've tried BeOS a looonnng time ago (it was very responsive but it didn't have software) but I don't remember anything specials about menus, care to refresh my memory?
Could you details some of those ideas? I don't have time to install it right now, and am curious if I should add it to my list of things to try sometime.
- Unixy desktop OS, at a time when there weren't other commercial desktop unices aimed at anything other than high-end workstations (Solaris).
- Very friendly (but also effective) installer. Probably the best I'd seen, at the time. Hell, maybe still the best.
- File meta-data as a 1st-class feature. Some cross-platform version of this remains a huge boon to computing efficiency that we've yet to work out. BeOS was ahead of the curve.
- I cannot emphasize enough how magical the performance was. A single-core pentium back then with maybe 64-128MB of memory, if you wanted to browse the web and listen to an MP3, on Windows or Linux, you could expect pops and other problems with playback any time you hit the CPU. Video playback while doing anything else? You kinda could, but there'd be dropped frames and audio issues all over. BeOS? Buttery. Smooth. Practically no matter what you did to it. And the system would keep responding snappily to input, under load that'd have Windows or Linux lagging. UI and media rendering/playback prioritized over everything else, it seemed, and turns out that's 100% the right thing to do for a normal desktop OS. I've seen exactly two other operating systems that could even come close to touching it on low-end hardware, on this front: QNX (w/Photon) and iOS. And iOS cheats to achieve it, by aggressively killing anything that's not in the foreground—and it was kinda better at it in earlier versions, on worse hardware, when it hadn't bloated so much, so that's less true these days.
> Very friendly (but also effective) installer. Probably the best I'd seen, at the time. Hell, maybe still the best.
The Installer in BeOS/Haiku does't do anything special: it just copies everything from the source to the target. The Installer is available in the installed system too, therefore you can install your installed and personalized system to a different disk, basically cloning everything.
But you forgot the bootmanager from your list.
I still yet to see anything like this 2 in other OS.
>You can use Omni OS or Solaris as a desktop and i bet it's vastly more Desktop capable the Haiku.
Yep, it is a well known phenomenon some folks like to larp as mainframe administrator on their home pc but it wont make a server OS a desktop OS. This is also true for linux.
>No ZFS is a filesystem, and the Omni OS installer copies the image from the iso to the disk, the haiku installer is not a OS too.
I meant you can definetely use zfs tools to clone a volume, but who want to read the zfs user guide for this? From the user POV starting the Installer and picking the new target to copy the whole installed and personalized system on a GUI is the simplest way. No other desktop OS does this, because while programmers know the storage technologies evolving every day and storage space was always an important question, nobody tried to help to the user to move the installed system to a different disk, instead they offer sketchy 3rdparty disk cloning tools.
Mediocre solution, but we never expected anything else from programmers, most of them dumb / soulless.
HINT: Solaris is not a Mainframe OS, and Haiku is a single user system (aka launch everything as "root/admin"), and now think about it why it's so easy to copy files from one system to another ;)
No, obviously i am wrong here. nix users doesn't larp as mainframe administrator, no way. They just simply doing the same, but it is definetely different, because they doing it on a pc.
Man, i am speechless. Are you one of those who advocates for unix user handling, so you can abuse it to separate processes and don't even notice, how stupid to follow practices from the 60's? But hey, you can have an apache user...
Sad, but true, most people talking here should never picked IT as a profession.
One of the big ideas in BeOS was a thread per window, or even perhaps a thread per view. This helped realize a lot of the cool BeOS demos where multiple windows were open playing videos, rendering OpenGL or otherwise keeping the CPU busy.
That's not really a good thing, though. You don't need "a thread per window" especially w/ modern async computation, you just need the UI to be in a separate thread from anything that might keep the CPU busy to begin with.
Yes we've learned a lot in the last 25 years, and it certainly isn't a good idea, in retrospect, to have the C++ API for your GUI Frame object to extend the thread class.
That said, in the days of single core, single event loop on all the major GUI frameworks (X11, Win32, Mac OS), it was absolutely a revelation about what was possible. The dovetails nicely with an earlier article about how quickly the pace of performance improvements felt magical in the early 90s, from the release of the 80386 to about 2010.
Pretty cool to have the docs about the system available. It would be nicer with more drivers, but that's the price of being opensource (like GMA on Linux).
There isn't one. You might get something that looks a bit like it in screenshots, but there's nothing that works like BeOS tracker (filemanager) and deskbar do.
https://raw.githubusercontent.com/smallstepforman/Medo/main/...