Haiku doesn’t have much of a technological edge at the moment, given that the current goal is to reproduce BeOS 5 PE to its fullest extent before modernizing.
Where it does have an edge, though, is how’s its being designed first and foremost as a desktop OS with responsiveness as the top priority above all else. The latter especially is depressingly uncommon in modern operating systems.
As someone who likes responsiveness, I've always wanted BeOS to take off. However, at this time, does OS responsiveness matter?
I'm running three apps right now: VSCode, Slack, and a web browser. Given that VSCode and Slack are basically other browsers, how much does OS responsiveness matter? Has the responsiveness battle just moved to the browser?
How much are people really running other than a web browser on a desktop/laptop now-a-days? When I evaluate an OS today, I'm going to care about how good its trackpad drivers are, whether I'm likely to have wifi issues, whether it can run the *nix tools I need to do my work, maybe whether I like the way it switches between windows/apps, and whether there are modern browsers to run on it. Responsiveness was a big deal back when I was running a Pentium II and BeOS had amazing demos (and I presume real-world usage) with uninterrupted video while multi-tasking and just buttery-smooth context switching in an era where you'd have your system lock-up. Heck, it was many years before OS X got past the beach ball of death happening constantly.
However, today, it's my browser that locks up; it's my browser that I want to be able to smoothly scroll through a web page.
I really want Haiku to succeed, but it feels like we might have moved beyond the OS for so much that the OS can't have the same impact it once had. On the one hand, the web has made it so that alternative OSs don't need a boat load of software to be usable. On the other hand, because the browser is now the OS, the usefulness of an alternative OS is lower.
How much are people really running other than a web browser on a desktop/laptop now-a-days?
Currently open on my machine:
- Safari
- Firefox (streaming audio)
- A program converting a 500 page PDF to 500 300dpi PNGs
- A bash script extracting PDFs from a municipal web site.
- A program downloading my video viewing for the week and converting it to a format better suited for my iPad
- iTunes serving audio and video to TVs in two different rooms
- An FTP program doing weekly backups
- A mail client
- A VPN client
- A spreadsheet
- An IDE (Coda2)
And if I were to look at my wife's laptop, I can guarantee that she's running more than just a web browser, and she's not technically inclined.
People have been pushing browser-only machines since the days of Novell's "thin client" strategy in the 90's. Netbooks were a fad. Consumption-only gained a small amount of traction recently with Chromebooks, but even the non-technical people in my office are dumping their Chromebooks for real laptops these days because they realize they have needs beyond Google's ecosystem.
Maybe we'll get there some day. But for now, if you want a laptop computer, you have to have an actual laptop computer.
This is one of my pet peeves. Netbooks were great as a small disposable internet console. They weren't just for consumption - the keyboard meant you could use them to compose text. The problem was that people bought them when they wanted a super cheap laptop, and so netbook manufacturers kept making the screens bigger and the processors faster until they stopped being netbooks and turned into crappy cheap laptops.
The new wave of tablets with keyboard covers are basically what netbooks were, but for a good decade there we lost the idea of a small cheap internet console which could be used to compose text.
I've got a Samsung NC10[1] running Haiku beautifully. It's a 32-bit machine with just 2Gb of RAM and it's never run so smartly. I'm very impressed by Haiku's stability and consistency. The extended attributes on files are an eye-opener. Your mail client is a settings window, a compose window and a file manager. Just add the attributes you need for email to the list view.
The fact that Google has added support for Android and officially exposed the underlying Linux subsystem, proves that outside the US school system, they are hardly getting any major sales.
Otherwise they wouldn't need to pivot it into a general laptop OS.
It's been 3 years since W10 came out. I recently tested W10 in a VM to see how it's matured. It was unusably slow. Things would take seconds to appear, sometimes dozens of seconds.
Then I tried Windows 7, and I could not believe the difference. We're talking 5-10x faster. Everything just responds instantly. Too bad they're ending support in a year.
People keep bringing this up, but I really don't think I, or anybody, should need an SSD in order to have a fast-acting computer. Spinning rust, RAM, and CPU clocks are faster now than twenty years ago, CPUs have vastly more cache, we have more CPUs, and our compilers and prefetch algorithms are smarter than ever. Why, then, are the same basic tasks not any faster, and sometimes slower? Why is the answer to use even faster technology?
I agree but what I have noticed from doing some troubleshooting is that applications now-a-days (or rather always) use up more hardware as time goes by. For example, I verified with perfmon that my IDE accessed over 50,000 files when i clicked on 'Open' and the directory tree popped up. It accessed every file in my Documents and other standard folders. Browsers also use up a lot of disk IO. Just by getting an SSD you speed up your web browsing.
You’re missing the point. With concurrency handled in user code and (I’d add) reduced latency from SSD storage, do you even want the OS to be excessively preemptive? Doing so has large drawbacks in terms of cache performance, and the difference is no longer noticeable.
I'm not missing the point. I want lightning fast response from software to my actions. If there is one thing I cannot stand, it's when the input loop loses events, which happens very often on Windows and my Linux powered TV. I want to throw them both out of the window, it drives me insane.
I miss the instant-on, straight-to-REPL, ~1 second reset features of my old Commodore 128.
And I am not kidding in the least when I say that. Regarding more modern operating systems, BeOS was so nice to use. Here was an OS that had UI/single-user needs baked in to it from the beginning, and it was a breath of fresh air. I'd liken it to the experience I had switching from a 60Hz monitor to a 164Hz one- I didn't really think about it much at the time, other than I wanted a gsync-capable display, and one was one sale. But the smoothness of the scrolling, mouse use, etc was so much more pleasant. And yet I never would have complained about the 60Hz screen until shown the alternative.
Venturing in to personal opinion, I'd also say BeOS was developed at the inflection point between engineering running the show, UI be damned, and where we are now, with designers running the show, actual capability be damned. It was a good mix.
"I miss the instant-on, straight-to-REPL, ~1 second reset features of my old Commodore 128."
As a C=128D owner, I hear you loud and clear. It's a slap to the contemporary programmers' faces that a 1 MHz MOS 6510 based system was more responsive than multicore GHz, hardware accelerated systems we have now.
The one thing that has not changed over the 20 years since BeOS was around is waiting for the computer to respond. We still wait, except now we're often waiting on network rather than OS latency for that button to indent, or do something.
I find it very noticeable, not least as in terms of those basics we seem to be stepping backwards for responsiveness.
Loading software should be quicker, but no one cares about space and size any more, especially as more and more becomes a front for a browser. Even native software is faintly disappointing. You load a game in seconds from the lightning fast SSD then it takes 2 min to load the save as that's bigger than some OS's. :)
> Given that VSCode and Slack are basically other browsers, how much does OS responsiveness matter? Has the responsiveness battle just moved to the browser?
You can't build a responsive browser on top of an unresponsive OS.
> How much are people really running other than a web browser on a desktop/laptop now-a-days?
I’m definitely not a normal user, but I’m running emacs, st, tmux, stumpwm, dunst, gocode, cupsd, sbcl, redshift — oh yes, and Firefox too. Honestly, I’d love to be able to get rid of my browser, because then I could run emacs in a terminal and get rid of X entirely.
> I'm running three apps right now: VSCode, Slack, and a web browser. Given that VSCode and Slack are basically other browsers, how much does OS responsiveness matter? Has the responsiveness battle just moved to the browser?
The thing that always blew me away with BeOS was the time it took to cold boot. From powering on a machine to being ready to work. It was seconds. Still faster than a chromebook.
That sure is something that most OS'es today can't do.
You can configure most Debian variants to boot in seconds from a decent SSD. Ubuntu Server edition was really pushing this for a while, the desktop editions don't seem to prioritise boot times quite so highly.
Hell, even Windows 10 boots from an SSD these days in less time than my BIOS takes to start the Windows boot process...
The thing is though, BeOS in 1999-2000 was booting in 5-10 seconds on (in my case) a 300MHz Pentium II with 64MB of RAM and a PATA/IDE spinning disk. Even a stripped down installation of Windows 98 took several times longer on the same machine. I lived in BeOS for over a year and a half on that machine, only booting Windows for a few games. It was pure heaven.
Desktop boot time mostly doesn't matter, it is an infrequent event -- once a day at most, if the system is shut down at night. Server boot time, on the other hand, does matter. You really don't want a server to be down for longer than it has to. Being able to reboot in 10 seconds is huge compared to rebooting in a couple minutes.
Now, given that servers are fundamentally running the same OS, improvements geared towards that market tend to bleed over to desktop as well. Desktop just has a bit more to bring up, with a graphical environment and everything.
I agree on the responsiveness part and would like to add that the fact that BeOS dropped you to a debugger shell when it crashed is something missing from modern desktop OSs. Just like the Lisp Machine (Genera, at least), introspection is something that’s present in Haiku and BeOS that was cut out of many modern desktop operating systems for “security” and “ease of use”.
In the JavaScript world, debugging is almost a bad word. It’s almost impossible to maintain a sane debuggable trace though a “modern” JavaScript application. I find I have to ignore basically all of the standard frameworks and transpiration pipelines and just write old school PHP-like code in Node.
I say all of this because I feel that my community has lost control of the debugging pipeline and I applaud Be and Haiku for making that a priority.
I find the benefits of committing to an always-running, always-traceable-in-production execution thread is an EXTRAORDINARY productivity gain (vs console.logs and connecting to IDEs manually via various witchcraft)
> In the JavaScript world, debugging is almost a bad word. It’s almost impossible to maintain a sane debuggable trace though a “modern” JavaScript application.
I felt this last week as I tried Webpack 4 on a new project. The source maps weren't correct, and instead of debugging my app I had to debug multiple Webpack plugins and work out which one was breaking the source maps.
Never did find out, but I fixed my app by debugging it mentally. It sure made me wish for a developer-first language.
> The fact that BeOS dropped you to a debugger shell when it crashed is something missing from modern desktop OSs.
Windows has that - if you have e.g. Visual Studio installed (or any other app that registers itself as a system-wide debugger), then application crash dialog will immediately offer to attach the debugger at the point of the crash.
A GUI feature I read about in 5: menus were going to have a colorized band that followed through all the menus and submenus. It seemed like a feature that would really help with complex software, but of course never saw the light of day. To this day, drilling down to deep submenus quickly becomes user abuse. It wastes a lot of time to have to drill down to something only to have all the menus disappear because the mouse tracked off the submenu accidentally.
It was also just cool to have a GUI mounted on a Unix like os - which wasn’t Linux.
Nowadays though I’d like to see some Plan9-isms adopted instead of cloud stuff. I think people would benefit from being able to make their own user experience that was kept more or less unchanged and the same files and preferences available on all of their devices. I’d also like to be able to “mount” processor/memory hardware from networked machines and delegate processing to them and output results to the local GUI. Like tunneling X but without actually needing to pipe the whole user stack - just the compute input/output.
BeOS offered the same FIFO scheduling mechanic that allows Linux to support soft real-time.
RTLinux was a hard real-time OS which runs Linux as a lower priority service you can pre-empt with your actual hard real-time stuff. Similar systems still exist today. They work fine, if, in fact, what you needed actually was "hard real-time".
If your idea of the potential consequences when your system misses a deadline is more like "Some users are annoyed and demand refunds" rather than "I might go to jail for manslaughter" or "The $40M space probe turns into space garbage" then "hard real-time" probably wasn't what you needed after all.
My point was that (in my experience as a embedded engineer for high availability systems) NewOS has much smaller windows between kernel preemption points, particularly in comparison to Linux (even RT) and NT.
Is Haiku only soft real time? Yes, and I never said anything different.
Does it do a markedly better job at making real time commitments than NT or even RT-Linux? Absolutely mainly due to how much simpler of a kernel it is.
Also, I'm going to throw out there that if you're going to get uppity about hard real time guarantees out of nowhere and throwing out concepts lime manslaughtee charges out of nowhere, I hope that you're only choosing sel4 as last time I checked it was the only kernel that backed up it's guarantees in a way that it can be checked.
Other contemporary multi-processor operating systems were also easily capable of displaying a handful of postage stamp (QVGA or smaller IIRC) videos. This was a demo other people weren't doing mostly not because it was hard to achieve but because it was pointless, what use did you have for showing several videos simultaneously?
They chose to show several postage stamp videos because they only had software decoding. At the time the way most competitors handled video on consumer hardware was to decode to YUV and then overlay and scale that with dedicated hardware, and on most systems you could only play one video this way. BeOS would be much worse at that with a software decoder, by showing many videos they could "make a virtue of a necessity" as they say.
The best thing in Haiku is probably their vector icon format, which offers a good mix of basic vector features for small pictures in a compact binary format. It's mentioned briefly in that article.
I don't think that's entirely fair. Back then I used to be quite an whore when it came to operating systems. I had Windows 2000, Windows 95 (for the rare game that wouldn't run on 2k), BeOS, Linux and Mac OS 9. BeOS was by far the snappiest (actually it was 95, but that was 5 years old by that point, only running DOS games and didn't take advantage of the SMP I was running).
BeOS ran circles around everything else - particularly when multitasking - and I was did use each platform heavily.
I had a similar experience. Windows 2000, ME, 98 and 95, Suse Linux, BeOS. BeOS was way better at multitasking, video playback, etc. I really lamented it's fall.
In my experience BeOS had much better single, full-resolution video playback or editing experience as well. Editing DV footage on BeOS had a no-stutter experience which took MacOS and Windows another decade to deliver, especially since it was rock-solid under multitasking – not just not needing to close your email client or browser but even things like compiling Mozilla from source didn’t cause a dropped frame.
The "why try" was not meant that other OS can't do it. Just that users don't have the need for that.
Showing that BeOS can do it, does not mean other OS can't do it too.
Does BeOS/Haiku still have a technological edge somewhere (compared to say, linux or windows)?