20 Years of Haiku
haiku-os.org
haiku-os.org
https://raw.githubusercontent.com/smallstepforman/Medo/main/...
I'm curious what it's like to develop media applications for Haiku. Are there any advantages you felt made it easier or more enjoyable?
Thanks for sharing.
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.
Why? It's a desktop OS. The use case has a median user count of 1.
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.
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 ...
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.
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.
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.
Oh, it also has more people than Puerto Rico.
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.
Is Melbourne really larger?
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.
Maybe you can say something about this, given your in-depth work Haiku and media:
BeOS was famous for being able to run all sorts of media content on relatively slow hardware, that any other system would struggle with.
Is that still true for Haiku? Or did the other OS’s catch up, or maybe the hardware did?
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.
Given open-source Linux drivers which can give a good clue about how to interact with specific hardware this task doesn't seem impossible.
NetBSD drivers are particularly convenient to port, also because of the license.
I don't think it is reasonably easy to port Linux drivers but they can be a good source of inspiration and hints when engineering drivers of your own.
Non Unix O S
Open Source software project
Twenty years on, wowat the speed of your thinking
Haiku sets you free.
:)
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”.
That's not my experince on late 90's. You sneezed, and w98se BSOD'd.
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.
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.
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.
From an 'time to release' POV it'll take much longer, but it's not like they're expecting to earn money from the release..
Haiku is still here while all the BeOS clone projects on top of Linux/BSD kernel died..
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.
Most maker audio devices are making use of bare metal with Cortex and ESP32 chips, if the ultimate performance on the cheap is the goal.
- 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....)
When on the subject of "things lost in the mists of time", did the original OpenBeOS lead (Michael?) ever return?
[0] For -$400M :)
They won't.
Let me know when I can support 100% of all Linux distros and users like I can with macOS and Windows.
During the last 30 years it was proven tt is impossible to create a seamless window manager / desktop environment on nixes.
>what things can impact the user experience if you are allowed to start from a fresh design?
It lets forget everything about the harm, mess and pain the nixes made.
But I’m not personally on board the just-use-Linux train. There’s room for innovation at the kernel level.
Hasn't Linux had issues with this before? (The famous "fuck you nvidia" Linus meme comes to mind).
Even if they just release all the information required to make one, you still need the labor to write the drivers.
I think what parent is really asking is if there is something like rump kernels[0] for GPU.
[0] is this even a thing anymore? rumpkernel.org seems to have become a generic IT news aggregator.
Because 75% of all public servers are UNIX-like and nowadays by default most commodity computing capacity is on the GPU.
Indeed Linux on the Desktop has been a disaster but that's no reason to make OpenCL and similar efforts a disaster too.
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
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.
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.
> wannabe mainframe OS as a desktop
Equally applies of BSD as Linux (but there isn’t as much clamor coming from the FreeBSD desktop crowd).
> 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?"
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?!?
Utterly fricking weird.
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.
I like everything else about it.
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.
[1]: Posting the relevant image from sibling comment https://www.haiku-os.org/files/slideshow/drilldown.png
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.
I assume BeOS didn't make that mistake.
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.
No choice of desktop managers or window managers, just very lean and streamlined software with little redundancy
I think people like it because its neat.
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.
- 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.
Well there was Coherent OS but yes Unix was considered high-end/high-price
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.
It's almost like operating systems have gone out of their way since the 90s to overcomplicate this process.
Then again, Haiku went out of its way to overcomplicate its otherwise simple "just copy it" application installation process just a bit too.
2. Zfs-dump zfs-restore
;)
We are talking about desktop operating systems here, so this is completely irrelevant.
>zfs
Not an OS.
You can use Omni OS or Solaris as a desktop and i bet it's vastly more Desktop capable the Haiku.
>Not an OS.
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.
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.
Look buddy i stop here you lack basic knowledge.
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 ;)
And thinks zfs is a 3rd party tool on solaris...lost for words..
Sad, but true, most people talking here should never picked IT as a profession.