I really enjoy the visual style of Haiku. The look-n-feel of it seems better to me than any other UI I've seen, and I say that as someone who never used BeOS, so it's not the nostalgia talking.
It would be really cool if Haiku was able to get to a state were it's usable as a daily driver. I think having an OS and interface more focused on a single user at a graphical terminal rather than a multi-user system with graphics tacked on would be positive.
BeFS also has some really great ideas that aren't replicated in other more modern FSes, namely it includes database-like functionality that enables some really neat features via a standardized interface, rather than hiding them away in vendor-specific file formats. If you're interested, Practical File System Design[0] uses beFS as it's example filesystem (and it's also a really good book in general).
I'm curious what you like about it. I personally miss a lot of design things that have fallen out of style.
On Windows, it feels like everything is blindingly white/soft grey with no texture or borders to help my eyes focus. Transparency is used without regard for its utility. Instead of using borders, they use space which ends up wasting a lot of screen real-estate. The differentiation between active and background window is very subtle.
macOS has many of the same issues. Scroll bars aren't shown unless you're scrolling. You can change this behavior, but still. Background windows are hard to differentiate from foreground windows. Transparency is used for seemingly no reason.
That said, macOS does offer better design queues than Windows 10. The macOS finder will use a slightly different color for the left panel than the main work area. Windows 10 uses the same white for both areas drawing focus as if they're equal. Buttons in macOS have a very subtle bump out to show that they're buttons vs just being completely flat. There are usually small borders between things.
Take this screenshot: https://thehacktoday.com/wp-content/uploads/2015/10/screensh.... There's no border between the back/forward/up buttons and the content below. Everything is the same white. Clickable items have no real indication that they're buttons. macOS: https://icdn2.digitaltrends.com/image/digitaltrends/import-m.... You can see more clear demarcations. Buttons clearly stick out a little, the left panel is a different color with a tiny border, the title bar is a different color with a gradient, etc.
Haiku's design harkens back to a day when we demarcated things. Haiku's active windows are yellow while background windows are grey (https://upload.wikimedia.org/wikipedia/commons/1/1d/Haiku_OS...). This makes it instantly clear what is the top window. There are borders on everything and a subtle beveled effect.
Is that the kind of stuff that you like about Haiku's UI? Is it something els?
Before flat design the pseudo-3d visual we had was giving us helpful visual clues with the desktop metaphor (https://en.wikipedia.org/wiki/Desktop_metaphor). We knew we had different containers, those containers had a header and content, the header contained buttons, etc... All of this was clearly visible.
Flat design supposes we are already used to this and simplifies the UI to make it look cleaner. In the process we lose all the cues we had before and have to guess where things start and where they end. We've always mocked our elders for not understanding computers, not knowing where the firefox window ends and where the taskbar starts, but now with flat design we're in the same situation. There's no depth, no indication that anything is actionable, no clear demarcation. It would have been ok if it didn't still follow the desktop metaphor: I find this much more acceptable on mobile for example, but it's not working well on desktops.
I've read about that extreme skeuomorphism trend before as a response for the flat design, but i think it is largely exaggerated. Outside of some Apple applications in macOS getting a leather skin or whatever for a single macOS version and getting mocked for it, there hasn't been much of a trend for unnecessary skeuomorphism on the desktop. The worst i can think of were some device driver utilities taking themability to unnecessary extremes (i remember the Windows 9x drivers for an old scanner i had using... animated AVIs of opening/closing wooden windows, for some reason :-P) but those were very rare outliers, not a trend.
I thought the skeuomorphism in iOS was pretty bad, even at the time. Although, my problem wasn't skeuomorphism so much as the result of it just looking ugly.
I agree about the OS X screenshot but... i do not understand what is skeuomorphic about the iOS 6 one. It is just a grid of icons with mostly the same photorealistic style as the OS X icons (though with a greater tendency to be squareish, but i think that fits better with the always grid-y interface that iOS has). And FWIW personally i prefer it to any later iOS style.
Also i was really referring to desktop. I think a bit of skeuomorphism can be fine for a mobile device that you interact with via a touch screen. For the desktop though, i do not think it fits, but even then... it was rare, not something that was so rampant as to warrant an entire industry to change its style everywhere.
The applications i had in mind were something like these:
Skeuomorphism is more than just aesthetically resembling real world objects, it’s an imitation of the behavior of real world objects. Think a digital book that duplicates the way you interact with a book, not just using fancy page turning animations, but demanding that this be the way in which you go to the next page.
The advantage software has over real physical objects is that it need not duplicate the limitations of a real world object. A software book can jump to the next page instantaneously, and index your notations, and provide instant dictionary lookups. More importantly, it can’t duplicate precisely any of the real advantages of holding and interacting with a book because you’re not interacting with a book, you’re interacting with a program through a proxy device (a mouse, a trackpad, a keyboard, a screen, a d-pad, whatever).
The skeuomorphic aesthetic was ugly in the eyes of many including my own, but there was an argument to be made that instead of taking advantage of the fact that this is software, Apple was leaning too hard on the skeuomorphic design trend in terms of how their applications behaved. The two most egregious examples were Notes and Newsstand, the Notes app tried to duplicate a memo pad and the only typeface was Marker Felt in a single style (to imitate handwriting) and Newsstand behaved almost exactly like a Newsstand you might find in a bookstore, holding magazines and offering them for sale. The magazine apps usually tried to duplicate the look and feel of an actual magazine, but with the addition of audio and video.
Now the Newsstand is gone, you can still get magazines, but through News or the App Store a lot of publishers caught on that duplicating the look and feel of actual magazines probably doesn’t make their product more appealing. Notes is a much more powerful tool than it used to be and if it were your only Notes app, it isn’t a bad one to have and supports actual handwriting input if you so desire.
That said I will say throwing out skeuomorphism didn’t have to mean throwing out depth and detail, but when Ive’s team took over software design, they imposed their own vision and that vision went too far into minimalism, foregoing detail for slight and subtle contextual clues that could be missed, and then further refined from there into something a bit more usable. Thinking about it, I don’t really have a problem with how it stands in iOS 13, although iPad OS 13 needs to fix its interaction paradigm.
I do not disagree with what you are writing here, but i do not think this applies even to iOS 6 in general (as opposed to a few apps). Also from what i remember, Newsstand was just a grid of icons like the main screen launcher, except that it had a wooden background. The functionality was the same though, again at least from what i remember (i didn't use iOS 6 much).
Just noticed your reply, and while there's a decent chance you won't see mine this late, I still wanted to reply to you.
Newsstand was a folder with special powers that made it behave in some ways like an app but with some of the limitations of folders. You could download special apps to it that pretended to be paper magazines that mostly behaved like paper magazines, and Newsstand would faithfully try to recreate the effect of a magazine rack inside a bookstore. That said, it was another "app" which people wanted to hide, or uninstall, or just somehow get out of the way of what they actually used their phone for and because it was also a folder, you couldn't do what was the custom at the time and put it in a folder which would at least tuck it out of the way. True it's a minor annoyance, but it was a minor annoyance on an expensive phone that people paid a lot of money for through what was at the time, usually a contract and wanted to exercise some modicum of control over. iPhones have a lot of minor annoyances, but if you remember some of the other controversies at the time like the Twitter Dickbar, people get upset over the things they can see that they can't exercise control over. It's one of the reasons Newsstand is gone, and also one of the reasons why people can now uninstall most of the default apps on an iPhone, even if it breaks expected functionality.
It wasn't just that the Newsstand was skeuomorphic design, it's that it was skeuomorphic design that tried to be special and important in a way that users didn't want it to be special and important, but it was still skeuomorphic in the way it looked, behaved, and encouraged other apps ("magazines") to behave. Yes, it was just a grid of icons with a grid of icons, but it was a special grid of icons with a wooden background that placed Apple's and publishers' interests ahead of yours and mine. Apple still hasn't really figured this out either, they ditched the skeuomorphic design, but they replaced it with the News app which is still terrible but that's a whole other topic.
Now to be clear, I don't hate all skeuomorphic design, some of it can be quite good. I still use the Finder, or attempt to anyway with primarily icons and lists, with my Desktop as a Desktop, and I keep the Clock and Calendar icons on the first screen of my iPhone and iPad because I like how they update in real time and resemble a clock and tear off calendar as far as the icons go.
I use bookmarks in my browser, and my ereader software, and my PDF reader and I still use a terminal emulator which emulates the look and feel of a terminal, although with fewer limitations as the physical ones. I even have some Stickies on my screen right now which I use as more or less digital sticky notes.
I also appreciate how the Trash can on Mac OS X looks and behaves like a literal wastebasket. It's just software, but if I dump something in there by mistake, which doesn't happen often but it's happened, I can just "reach" in there and put it back where it belongs.
I keep PCalc installed despite using Soulver for most calculations simply because for something that imitates a physical calculator, it is a very nice looking calculator. I keep the widgets accessible as both decoration and for quick one-off calculations.
I have GoodNotes 5 on my iPad, which has slowly replaced the stack of paper notebooks I used to keep with a stack of digital notebooks that I can create and sort on whim without taking up the shelf space my physical notebooks did. These do behave largely like notebooks.
iOS 6 was the terminal destination of a trend, that appeared to be more of a trend than it ended up being, possibly because of a political shakeup within Apple, possibly for other reasons, but it was the most recent culmination of a trend that Apple did reverse course on in which their software was resembling not just the look, but limiting itself to the behavior of physical objects. Some of that took root in Mac OS X 10.7 Lion and was gone by 10.9 Mavericks, so I can't say it was incredibly long lasting, but without the ability to see into the future and know that Apple was going to end its drunken skeuomorphic bender with iOS 7 (which went too far in the other direction but in later versions found its own mostly happy medium), it was still roundly criticized both to discourage Apple from continuing its drunken frenzy and extend it to even more apps on the operating system (a worse case scenario, maybe an unlikely one even then, moot now), and the 3rd party developers which were imitating it, less judiciously, and badly.
Lots of skeuomorphism in audio VST/RTAS/AAx effects plugin, but you can argue there that it at least makes sense since they're designed to appeal to guitar/synth and audio engineering enthusiasts who are very used to having knobs to mess with.
While I am not a fan of (but don't hate) skeumorphic design, I really learned to appreciate skeumorphism in my many failed efforts to get my father (who was in his mid 70s the first time I tried) to learn how to use a smartphone.
He doesn't want to read stuff on the screen, and a lot of concepts just didn't click with him. Would I be able to get him to learn a smartphone with a fully skeumorphic design? Probably not, but he might have understood more concepts than I could teach him with a flat design.
I agree with all your points. But worth pointing out that BeOS predates Mac OS 8 and 9. Not sure if there's a line of influence between the two, but uthere's definitely a 1990s 'demarcated' design; not just with colour but with simple visual elements.
And attention to physical placement. Windows 95 made a strange choice when it placed the 'close' button next to minimize/maximize, making it entirely possible to close-by-accident. OS X then strangely threw away the classic Mac positioning and adopted something like Windows, and made this worse by choosing in its first versions to make the function of the buttons unclear until the mouse moved over them.
> Windows 95 made a strange choice when it placed the 'close' button next to minimize/maximize, making it entirely possible to close-by-accident. OS X then strangely threw away the classic Mac positioning and adopted something like Windows, and made this worse by choosing in its first versions to make the function of the buttons unclear until the mouse moved over them.
I think your argument against positioning them together is valid, but the reason in favor is also relatively obvious: similar actions should be grouped together. Close, minimize, and maximize all control the position of the window.
On OS X, putting them together also allowed Apple to introduce a quite clever and effective traffic light metaphor. Red closes the window, yellow moves it out of the way temporarily, and green gives it full focus.
FWIW, green used to do something completely different than it does today (make a window full-screen)— it was the (somewhat poorly named) “zoom” button and, in a properly-functioning Mac app, resized the window to fit its contents.
Its functionality gradually shifted towards a more Windows-like “maximize” over the years as more cross-platform apps moved onto the platform and apps that don’t have an explicit content size (like web browsers) proliferated, but the original implementation didn’t really have the strong connection to the traffic light metaphor you describe. It was more of a “red closes the window, yellow moves it out of the way, and green resizes it randomly in a way that may or may not actually be what you want”.
(I don’t recall whether or not this made it out of beta or not, but early OSX builds at least also had a persistent “ focus mode” button in window title bars— a button off by itself at the far right would shift into a single-window mode and hide everything else.)
Huh, even many of Apple's own apps seemed to treat Zoom as a maximize button as of Leopard. But for those that did not, since the window almost always got larger the traffic light metaphor makes sense to me.
> (I don’t recall whether or not this made it out of beta or not, but early OSX builds at least also had a persistent “ focus mode” button in window title bars— a button off by itself at the far right would shift into a single-window mode and hide everything else.)
I downgraded my main machine to Mavericks a few months ago (because I wanted to), and while I generally love it, I was annoyed enough with the zoom button that I actually wrote a SIMBL plugin to make it behave like modern releases: https://github.com/Wowfunhappy/GreenFullscreen
Fullscreen has been cumbersome on MacOS since forever. There was an argument that the Windows 95 style full screen somehow wasn't desirable. Then they did implement it in OS X in a way that makes app switching difficult. I use Spectacle to resize windows to fill the screen and it does a good job.
But recently switching to linux and XFCE (after having a personal macs for over 20 years), I'm reminded that being able to hit F11 and have a full screen window was useful all along.
Having a window use the full screen, but not becoming screen modal seems far less heavy handed.
> There was an argument that the Windows 95 style full screen somehow wasn't desirable
Still believe this is true when I have to sit behind someone swiping back and forth through a linear line of fullscreen windows, watching them go all the way one way and ooops its not there now we have to go all the way back.
I get that the slick UI makes you feel like you're in Minority Report but really it just makes a single click operation into a 3-8 swipe operation.
On small laptops like my 11" Macbook Air, fullscreen is essential to having a comfortable amount of screen real-estate. Seeing two applications at a time isn't usually practical, unless I'm just copying items between Finder windows or some such.
If I'm moving between two or three applications, I know how many swipes I need to get from one to the other, and the movement is quite efficient. If I'm working with more than three, I can swipe up and pick the app I want directly in Exposé.
On desktops I use fullscreen much less often, but it's useful for psychological reasons when I need to focus on a single task.
Further, the act of swiping needs much less focus vs finding and clicking an icon. I personally find it efficient even if I do accidentally swipe wrong way and have to correct.
Don't you find that the windows/screens sometimes reorder themselves? So you have the muscle memory of the number of swipes, but 10% of the time you go to a screen and it's been reordered. There is an option in Preferences to do less reordering but it still does some unfortunately, you can't turn it off completely.
I think they only get reordered if you click the dock icon or some such, right? If I'm just swiping between apps to switch, the order is consistent. I'm also constantly re-ordering them myself in Exposé depending on which set of apps I need to focus on.
I don't follow the "slick UI comment". I'm arguing for the most barebones UI. Who's swiping? And Mac OS and XFCE have both app and window switching.
I'm talking about being able to have a fullscreen app that I can switch back and forth with cmd-tab or cmd-tilde. I dont there's dispute that its desirable to be able to use all the screen space sometimes. The issue is that last time I checked Mac OS prevents you from quickly cmd-tabbing to and from full screen windows, and had compulsory full screen transition animations that can't be disabled.
While we're talking about cool old UIs, I'll also point out IRIX 4dwm[0] (google image search "IRIX 4dwm" for more examples). It's far before my time, but based on the screenshots out there on the 'net it seems like a pretty good UI for it's time period.
That, and a custom set of applications which might have been written in Motif. There have definitely been better UIs since then, but for it’s time I it seems pretty impressive.
It's very much a shame that licensing on Motif was so restrictive. At a time when Unix desperately needed a standardized toolkit, the wrong moves were made, and fragmentation was the result.
As an easter egg, BeOS R5 allowed you to change window decorations to Mac OS 8 style (among others - see the last screenshot on the page): http://toastytech.com/guis/b5pe2.html
I agree with the general sentiment of what you're saying.
If I had to narrow it down to something more specific:
* The UI seems very compact, the buttons/widgets are no larger than they need to be, as compared to Windows 10 and GNOME 3. I would say modern macOS also does a decent job here. The compactness is valuable for small screens for obvious reasons, and is also valuable for large screens since you can fit a lot more stuff on them. And it sounds like with this release, you can set different scaling factors, so everyone can be happy.
* The intractable widgets are clearly demarcated from the rest. As you point out in many modern UIs, it's very difficult to tell what is a button and what isn't. I actually think GNOME 3's Adwaita (as much as I like to rip on GNOME for what I consider to be good reasons) does a good job in that department. In the final screenshot in your comment, it is very clear even without being familiar with the specific programs what can be clicked on, and you have a good expectation of what's going to happen. With Windows 10 and modern macOS, it's only clear if you are familiar with the specific programs being shown.
I also like macOS 8 and 9 a lot from a UI design perspective, though I have read enough about their underlying architecture to know that maybe I wouldn't want to actually use them.
Context: I'm just starting out as a graduate student. My first PC ran Vista, then I went to Windows 7, 8, then to Linux, a brief stint on macOS, and I've been bouncing between Linux and BSD since then. I've tried about every "modern" UI under the sun and most of them suck.
The GNOME3 philosophy is that applications should be touch ready, without the developer having to do anything special to ensure this. When you are aware of this, the "oversized" widgets and header bars actually make a ton of sense. It would be nice to have a "compact" mode for the benefit of sophisticated users running on a non-touch platform, but it should always be under user control and 100% optional.
Who wants to use GNOME applications on a touchscreen? On what hardware?
Aside from that, I think it’s a pipe dream for anything but the simplest applications to have one single UI implementation that works well for both touch and non touch. It didn’t work well for Windows. It’s not working well for GNOME. I think the needs of touch vs non touch users are just too different, and considerable developer time is being wasted trying to magically support both with a unified front end.
Of course other people are free to spend their time on whatever they want, whether it’s useful or not. But I haven’t seen a single application come out of GNOME’s efforts to unify desktop and mobile that I would actively prefer to the alternative.
So yes, I guess they “make a ton of sense” if you want to support a use case nobody has, on hardware that doesn't exist, and end up with an inferior experience for either or both sets of users for your trouble.
It's not working well for Apple either, the Catalyst apps in Catalina are all disappointing. If you try and please everybody you will end up pleasing nobody.
My wife and kids are all using Microsoft Surfaces, and switch back and forth from using them as tablets (often using them a video cameras, cameras, sketchpads, dictaphones with speech to text conversion, and video chat terminals put in a stand) and using them as computers with keyboard and a USB mouse.
For the kids especially it's interesting to watch them, because when they're actually trying to interact with what's on the screen precisely, they reach straight for the mouse and touch unless it would involve completely breaking what they're doing to go find the mouse.
Before I had them on Surface Go's, I had them on cheaper, very underpowered Evoo 2-in-1's, which were horribly slow under Windows, but ran beautifully under Fedora...including all the touch screen, rotation stuff.
> So yes, I guess they “make a ton of sense” if you want to support a use case nobody has, on hardware that doesn't exist
For programmers, no, we want the older UIs because the keyboard and mouse are the best input devices for what we do.
But there is a lot of hardware out there used by a lot of people that does switch back and forth. It's not only the Surfaces. It's iPads with the more and more ubiquitous keyboards. It's all the other 2-in-1's that are being sold. And they're actually really handy machines and fit into far more niches and enable far more interesting behaviors than straight laptop.
I got a touch-enabled laptop for work a few years back. I thought it was bloody amazing at first, like all those cyberpunk dreams about fancy touch screens from the early 90s came to life.
Four the first six hours or so, that is. It's one thing to use touch devices for one or two hours at a time, and for a mix of work and media consumption. It's a totally different thing to use them for eight hours straight, poking at the screen virtually all the time. If you really want to prove a point, I guess you can get through it, but saying "it works" is a stretch. It works the way dragging a cart with square wheels works -- you can eventually get it where you want to be but that's the extent of the good things one can say about it.
I really wanted to prove a point so I kept trying it for about three weeks, and I gave up. Those three weeks probably got me about three years closer to RSI, too.
It's not just a programmers' thing, it's pretty much any kind of professional work. Graphics, CAD, word processing, spreadsheets.
> It's not just a programmers' thing, it's pretty much any kind of professional work. Graphics, CAD, word processing, spreadsheets.
Yes, for anything where precise control on the screen itself is the necessary thing, keyboard and mouse reigns supreme.
There are also people who use their devices moving around in the world. I remember watching a realtor using their giant smart phone at once point. Camera, voice to text, scanning documents...it was more like a mobile version of office facilities than manipulating things on the screen. It's different work and the peripherals and mode of interaction are different.
Window management seems usable. You can see the utility of a whole screen launcher and targets are big enough to hit and indeed it does look usable but it still looks like its mostly using your finger as a not that great mouse as opposed to being touch first. It also looks like it wouldn't work if it were shrunk down much smaller than the 10" here. Another issue I see where for example windows handles the case a LOT better is automatically popping up a virtual keyboard when input is expected. I believe this is supposed to work with gnome apps when run under gnome but a pervasive standard solution would be welcome as well as a better on screen keyboard on par with something like swiftkey.
GNOME does pop up a virtual keyboard when needed. You're not seeing it here because a physical keyboard is attached. The video is actually quite compelling, the actions only look unnatural because of how they're being demonstrated. To me at least, this is what "touch first" should look like.
Didn't seem to work with say firefox when I tried in on my convertable laptop. Maybe it doesn't work because the keyboard exists even though its disabled?
There's no defense. Might be harsh, but whoever is directing Windows' UI and UX department needs to be moved elsewhere, to say the least. Windows 10 might have the worst looking UI paradigm I've seen since I've started with DOS computers in the 90s.
That's not even style over function. It's just pure blandness. Greys and flat whites everywhere.
* Why does the title bar have a folder icon, some unknown icon and the same folder icon again? What does the dropdown arrow icon represent?
* What's all that whitespace in the folder tree?
* What's that down arrow next to the "forward" button? Oh and there's one next to the help icon, what does that do?
* Why is "Picture Tools" in highlighted yellow in the ribbon? Is that the most important thing a user needs to be aware of?
The whole Windows 10 UI is full of non-sensical UI decisions that result in a confusing, grey experience. And it's not like Microsoft isn't capable of good UIs, they've done a great job from at least Windows 95 to Windows 7. Then they've just dropped the ball hard.
> There's no defense. Might be harsh, but whoever is directing Windows' UI and UX department needs to be moved elsewhere, to say the least. Windows 10 might have the worst looking UI paradigm I've seen since I've started with DOS computers in the 90s.
I'd agree, and I'd have to extend that sentiment to almost everyone working on Windows Desktop. Forced updates,updates that frequently break things, a start menu that breaks because it is tied into the Windows Store database, a Windows Store database that breaks, ads in the f'ing start menu, needlessly replacing perfectly working system configuration tools with flat-ui bullshit alternatives that don't have the same functionality...
I think aesthetics are an important aspect of GUI design, since it has such a big impact on the emotional state of the user. But if it starts to interfere with readability then no amount of visual craftmanship can make up for it.
I really think contemporary design is driven by a fear of being uglier than the next guy, to an extent where a lot of proven ideas have been thrown out with the bath water instead of being iteratively improved upon.
That's an incredibly cool feature, much better than the window "collisions" that some other UIs have.
The most similar idea I can think of would be i3 with it's container windows and such. You could group things together and tile within the groups, and IIRC you could have the whole group float if you wanted to. I don't use i3 anymore since I switched to CWM, but maybe an i3 user can comment.
I3 is a terrible wm for floating windows. Floating functionality is very primitive. No snapping. Resizing relies on hitting a small target unless you also know you can do super+shift+right click and drag. Directional bindings to switch windows doesn't work between floating windows or between floating windows and tiled ones. You have to hit a binding to go between tiled/floating. No alt tabbing between floating windows. No minimize. Scratchpad can be used for something LIKE minimize but it isn't minimize because a minimized window remains available to be recalled via an icon or label in the taskbar whereas a scratchpad window requires you to recall it by its criteria programmically or by cycling through candidates. Floating windows always overlap tiled windows so that if you have both you must relocate floating windows if you want to access tiled ones.
Floating windows in i3 are for dialog windows not applications. If you try to use it as a floating wm you would be disappointed.
I concur, it's nearly there for me. On my old Dell Inspiron 3847 (my daily driver), the only hardware that didn't work right was audio through HDMI, and bluetooth didn't find my mouse (though it did find my BT headphones). I can probably get to the bottom of those with a bit of digging.
The software side I didn't dig into much yet. I use my system for ham radio, so I would be compiling a lot of software in the future, some of it dependent on hardware things. Not sure how well that'll work, but I'm honestly willing to give it a try.
The biggest annoyance for me is the lack of a plug-in capable web browser; specifically having Bitwarden in the browser. I'll have to investigate if there's a solution.
Sadly for my work I need various proprietary programs like Matlab, Quartus, and Vivado. Not a chance of those ever being ported to Haiku. I know it has Python, but I would suspect it probably has some limitations which respect to Python libraries that have C extensions, which is surprisingly many of them.
There are essentially 3 flavors of haiku. Gcc2 for beos compatibility, gcc8 32 bit and gcc8 64 bit. LLVM I think can also compile the source but is not an official build as of now. I am a casual lurker so my details should be taken with a grain of salt.
I actually checked after I wrote that comment -- Haiku does ship numpy in their repos. That seems to be one of the harder Python libraries to get working, so they must be doing something right.
It’s pretty good if you do not have an exotic setup. Intel graphics are the best supported, but the vesa driver works well for a lot of cards. I don’t think there is an nvme driver (someone correct me if I am wrong), but the sata driver works well.
No idea really, except that I ran it on an old netbook, plugged in an external monitor and mouse, and that specific set of things worked great. This is what led me to install it rather than just running from the USB disk.
Also the WiFi stack is ported from FreeBSD, so you can try and look there to see if your card would work. Although a boot usb is probably quicker and more fun
Though IMO this misses the point of the OS which is the deep integration and fast UI the native APIs allow that these cross platform applications (and any application ported to Haiku through Qt and Java) ignore. There is no real reason to use Haiku over some Linux desktop (you can even make XFCE look kinda similar to Haiku/BeOS if you want) if the applications you use do not take advantage of it.
As a Haiku developer (and user, naturally!) I have to disagree. Obviously native software would be preferred, just as it is on macOS, but I am pretty sure that macOS users will tell you that they still prefer macOS, even if they are using Firefox, or JetBrains, or Inkscape, etc., yes?
The Linux desktop is a horribly fragmented and fragile ecosystem. Haiku lacks a lot of features the Linux kernel has, but the overall system architecture and design is significantly cleaner and less fundamentally fragile.
Hey, thanks for your good work! Haiku is like "enjoyable computing" restarted, reminds me of the spirit of the Amiga with the stability of proper modern OS! :)
I never implied that the Haiku developers would dislike these applications, so i'm not sure you being a Haiku developer has anything to do with your disagreement.
And yes, macOS users probably also tell you that they prefer macOS, though note that they also are often very loud about preferring software that takes advantage of their OS' features because this is why they use that OS.
The thing is, macOS has a much richer selection of software than Haiku has (and most likely, ever have) so macOS users at least can fall back to those. But if all you are going to use on Haiku is ported software that ignores native APIs then what is the point of using an OS with less hardware support and features?
The Linux desktop being fragmented doesn't mean much - your Qt application ported to Haiku will also work on KDE perfectly fine and chances are even if you limit your software selection to Qt-only applications, you'll still have more applications to work with. Though that fragmentation is really a poor description since there are standards you can rely on, like X11 - sure someone might be using Gnome or XFCE or Window Maker or i3 or whatever as their desktop, but applications do not target those environments, they target a lower level of the stack that is shared among these and making an application on XFCE doesn't mean it'll only run under XFCE.
So yeah, it might look fragmented, but unless you are some custom support worker that tries to navigate someone through the UI via phone, that isn't much of an issue in practice (and "in practice" is the important bit here because the reasons i've seen people put forth for having Qt/Java applications ported to Haiku and ignore Haiku's own APIs are all about practicality - which ignores the elephant in the room which is that if you care about practicality using Haiku in the first place wouldn't be a good choice anyway).
Being a developer (and a user as they acknowledge), they have relatively deep experience with the system and the benefits of "native" vs. ported apps. Because of that, they have a reasonable basis of knowledge in order to dispute your statement about the suitability of Haiku for someone using those apps, or the benefits of using those apps on Haiku.
They may have (i don't know) but they didn't dispute anything, they just said that they disagree and the rest was about what macOS users would probably say and something about how Linux is more fragmented and how in theory Haiku is better but neither of those had anything to do with what i wrote.
> But if all you are going to use on Haiku is ported software that ignores native APIs then what is the point of using an OS with less hardware support and features?
Haiku already has its own third-party 'native apps' that directly use its APIs and also promotes them in HaikuDepot [0]. Users from other OSes will always ask for other apps and if the OS has a 'modern browser' even when WebPositive is based on the same technology as Safari. i.e, WebKit. But they'll still ask for Firefox and Chrome.
The fragmentation argument can be made from a maintenance point of view. For typical platform support, it's easier to maintain and target one OS that has a single unified stack and SDKs (GUI toolkit, sound, input APIs, etc) than to do this on multiple distros and to only officially support 5 Linux distros, which is why Windows and Mac are always targeted easily. There is no 'standard' SDK on Linux distros, which is why one user could be using ALSA or OSS, X11, XWayland or pure Wayland with Sway, etc. Haiku has first-party default system components which it maintains.
It also sits in middle of macOS and Linux, being that its open-source like Linux and has a standard defaults and a SDK like macOS. So maintenance-wise, maintaining one of each OS like macOS or Windows sounds less expensive than targeting 3 separate distros here.
Ok, first of all, if you are targeting Linux you can target ALSA and X11 and your application will work on any desktop Linux environment. OSS hasn't been relevant for decades and unless we're talking about some embedded system, all Wayland desktops also support X11 applications and will continue to support it for the foreseeable future.
Second, what you point out about having its own third party apps is correct and i know about what Haiku is - i even did some quick port of my older 3D game engine some years ago [0] for fun.
But none of that answer the question you quoted. What you are writing is from the perspective of a programmer who may want to target Haiku or works on Haiku. My question is from the perspective of a user.
As a programmer i'd target Haiku out of fun since there is no practical reason to target it. As a user i'd also use Haiku for fun since it has too many limitations to have any practical use (except perhaps if all your work can be done via the console and you connect with ssh to some remote Linux server to do your work).
But if you are not using it for any practical use (since for that you'd use Windows or Linux), why bother with anything else than the native APIs for your desktop applications on a desktop focused operating system where applications are meant to integrate with the system itself?
> (and "in practice" is the important bit here because the reasons i've seen people put forth for having Qt/Java applications ported to Haiku and ignore Haiku's own APIs are all about practicality - which ignores the elephant in the room which is that if you care about practicality using Haiku in the first place wouldn't be a good choice anyway)
I have to agree with this. Although, if Haiku met a few more of my personal criteria for what I'd like in a Desktop OS I would be willing to sacrifice a good deal of practicality to use it. For some, that threshold may already be met.
Your rosy picture of the Linux desktop where software gets along due to standards, etc. does not match up with my (and indeed many others') lived experiences. See my replies elsewhere in this chain about that problem.
I did not present a rosy picture, Linux has its issues, however i wrote that the fragmentation isn't that much of an issue. Your other replies in elsewhere do not really show anything about fragmentation, unless you are confusing having separate projects for different layers of the operating system with fragmentation.
Then you'd need to explicitly mention your definition of "fragmentation" because i think mine's differ.
When i hear about fragmentation i think about incompatibilities, like -e.g.- the home computer fragmentation of the 80s or the Java ME fragmentation of the 2000s. However there are very few incompatibilities between modern Linux distributions and you can avoid them when you are releasing software.
Don’t you think this depends on the exact process followed? Different countries built the ISS after all. So long as you plan and standardize properly, and write to the spec, you can develop east subsystem independently and still integrate it as a single, cohesive system.
WoW thank you very much for working on that OS, as a Desktop OS it's blazing fast!
Have matured non-native 'apps' is a big YESYES, it flattens the adaption curve.
Hope more peoples test Haiku, they will love it, its so fast and un-bloated and still has everything a Desktop OS need's...oh man and the startup...i mean even OpenBSD feels bloated, the booting time is phenomenal.
> but I am pretty sure that macOS users will tell you that they still prefer macOS, even if they are using Firefox, or JetBrains, or Inkscape, etc., yes?
To an extent, most of my software is cross platform and most runs better on Windows but the only real app keeping me on MacOS is TextMate. If I couldn't use that anymore I'd probably just switch fully to windows.
Ported apps are great for extremely complicated things but then there are other parts where there is a lot of UX benefit if the soul of the OS shines through them.
As a long time BeOS (and Haiku) developer, I agree that the design is significantly cleaner. Your argument however is significantly false. Haiku has several design problems in the Kernel and the Filesystem, any serious use other than hobbyist is quite limited. Definitely Linux could have a better Desktop, but saying that the Haiku design is less fundamentally fragile is a complete lie. Linux desktop may be more conservative, and may not really adhere to a truly common standard, but they offer several orders of magnitude more what Haiku could hope to have by far. This includes Security, IPC capabilities, Virtualization, Containerization. Android is an example of a Linux platform, that still retains an high number of native apps, coherence of UI etc.
Linux has a lot more features than Haiku, for sure, but a lot of these are oriented towards servers, which we probably will never implement because we are not targeting servers. Obviously there are others which we will eventually implement, sooner or later (like virtualization).
However, I have no idea what you mean when you say that Haiku's kernel and filesystem has "several design problems."
Is there any good intro on how to get developing under Haiku? I seem to remember there being a wxWidgets port years ago but the documentation regarding it is scant. I would like to know which development environment I could use (Qt Creator perhaps?) and get to writing some apps on it as I really enjoyed using Haiku and BeOS for fun.
Do you have any tips or pointers? Thanks in advance
Haiku has it own set of API's, that is a bit different than other platforms (message passing, multi-threaded). The UI API's is defined in the Interface Kit. See https://www.haiku-os.org/docs/api/
There is wxQt running on top of the Qt5 port, yes, but it isn't that well used. I know someone got Code::Blocks running under it, but they were working on some issues in the wx port still. Development should be like it is under Linux with that.
Qt Creator is indeed in the depots and works pretty well, so you can use that.
If you have more questions, feel free to find us on IRC (Freenode#haiku), the forums, the mailing lists, the bug tracker, or (for ported software) on GitHub (@haikuports/haikuports). Or continue asking here if you prefer :)
The really interesting thing would be to have a wx port using the native API for it, but unfortunately the last time I heard about wxBe was in the last century...
That's not what I mean by "fragmentation"; I mean that the Linux desktop is a collection of different software projects (GRUB, the kernel, X11, ALSA, systemd, GNOME, ...) which are combined to form the operating system proper. Ubuntu is just as fragmented as any other distribution here.
In Haiku, on the other hand, the bootloader, the kernel, window manager / display server, init system, base applications, etc. are all developed by one team in one source code repository.
It's interesting that you don't mention the absolutely unusable browser that the project is continuing to develop, instead of using a modern mature browser like Chromium.
WebPositive in based on modern WebKit (specifically a snapshot from a few months ago), which is the same engine that powers Safari. Is that not a "modern, mature browser"? The bugs in Web+ are mostly in our WebKit port, which is continuing to improve.
We have no interest in trying to port Chromium. Even OpenBSD, which uses X11 that Chromium already has a native backend for, has thousands of lines of patches they have to maintain (and spend hours and hours rebasing every upgrade). Haiku would have to maintain far more than a few thousand lines, as we would have to add a new graphics backend at the very least.
Firefox is better in this department, but has a codebase larger than Haiku itself, and none of us have any expertise there. If someone knowledgeable about Firefox's codebase wanted to port it, we'd be happy to help where we can, but there's only so many of us.
> OpenBSD, which uses X11 that Chromium already has a native backend for, has thousands of lines of patches they have to maintain (and spend hours and hours rebasing every upgrade).
Please have a closer look at those patches. 98% of it is constituted of C preprocessor ifdefs. This means that most of them just enable the same features as Linux alongside other operating systems. Most of it is purely code configuration. Haiku instead reimplement many parts of WebKit, instead of relying on mature code. This is the reason why the WebKit performance on Haiku is so poor.
You do realize that WebKit has no native graphics API, right? It uses Cairo under GTK, CoreGraphics under macOS, etc. etc. So we created a Be API implementation, and yes, it needs more optimization. But you are acting like we are reinventing the wheel here or something...
Web+ is integrated with the Haiku Network Kit and other things, accomplishing nothing for the end user. Most of the performance issues comes from there.
Recommended exercise for people who might be inclined to believe this hogwash: Go find where in that "one source code repository" for Haiku they implement RSA to make their web browser work.
You won't find it. After a while you'll dig down to a layer that just calls OpenSSL, the same OpenSSL you'd be calling on a Linux distribution. Was this developed by Haiku's "one team" in their "one source code repository"? No of course not and yet here it is, foundational to their operating system.
Okay. And the same is true of macOS; they use LibreSSL. We also use libpng, libgif, libjpeg, etc. and of course WebKit for the web browser. Nobody is claiming that this is a 100%-from-scratch-no-reuse-allowed project. What's your point?
My main development VM for Haiku has no Qt software, or even the Qt libraries, installed. I'm using native apps for code editing, debugging, error messages, etc. So that's not quite true.
I'm not sure what arguments I made "don't quite stand" simply because you need to use Qt apps. In fact I was arguing that using Qt apps is perfectly alright! LibreOffice is not "native" on Windows or macOS, but people still use it there, yes?
Uh, both of my main machines have bare-metal installs and I do develop from them. But when you are doing kernel development, it's much easier to "unbrick" a VM than bare metal, yes?
See my reply to reddotX below for the "theory"; in practice, this winds up causing all kinds of breakage when e.g. you are using a "non-default" configuration, and then upgrading fails to change some critical line in a configuration file, and now you have no audio out and must spend multiple hours Googling to even find an error message and install a missing package and start a daemon manually (true story, happened to me on Kubuntu some years ago.)
Or you want to use Xrdp to connect to your desktop via Windows RDP, but the default shipped configuration enables the wrong plugin, so you can connect but get cryptic errors when signing in, so you have to edit the Xrdp configuration file and change the plugin load order and then restart X11 while signed in via SSH (happened to me a few months ago, on 18.04 LTS.)
Those are just two examples off the top of my head; back when I did use Linux as a daily driver, I would spend multiple hours a month fixing something that got broken or did not work as it was supposed to, and this was just on Ubuntu, not even on Arch or some more up-to-date distro like that.
I’ve been a desktop Linux user for at least 27 years (pre 1.0 days), and I can’t get Ubuntu to work at all anymore. (Ubuntu was my daily driver for over ten years.)
I agree with the sentiment that Linux stability isn’t where it should be. I swear it used to be better. I’m definitely looking for a new OS. OpenBSD is on my list. I think I’ll give Haiku a spin. I liked BeOS back in the day, but couldn’t afford hardware it ran well on.
Haiku lacks a lot of features the Linux kernel has, but the overall system architecture and design is significantly cleaner and less fundamentally fragile.
Yes, absolutely, spot on.
But an OS does not exist on it's own. I'm afraid it will all be for naught unless you (or someone) has a viable business model to push the surrounding ecosystem forward.
I don’t think anyone is suggesting Haiku to compete against windows or macOS. It seems to be more of a hobby play than anything else. The real company failed trying to commercialize this — why would a design from the 90s be commercially viable now when the main selling features are standard, and all the innovation is on phones anyway?
And how can one even make money selling an OS these days? They may have a small marketshare from techies wanting it for fun but turning this into an actual business I would think would be very difficult these days.
I actually much prefer the usability of the haiku desktop environment, especially how it handles keyboard input compared to X11. It feels really well thought-out and polished.
Then why work for 18 years to make make a fully fledged OS if in the end the expectation is that it does nothing? For an OS practicality is pretty much always a concern, if not necessarily the top one. Otherwise it's relegated to literal "toy" status. An OS without any practical apps might as well be a GUI made in Flash. Looks nice, does nothing.
If I was developing software on Linux, which distro should I choose?
Can I write a native GUI program that is guaranteed to work on all Linux distros, just as I can develop native software on Windows and target all Windows users?
Yes, but there is less stuff you can assume to already exist on a Linux desktop environment than on a Windows one, so you either need to bundle those with your application or have them as requirements.
I am waiting for the next big thing, where the 3rdparty programs comes as a virtual machine image with a complete OS in it, with own kernel for maximal platform-independency.
Isn’t this kind what java is already? And also if there is another OS running in this VM, this would lead to less efficient executables as you’d have to partition resources
like mem
> Interesting to see this isn't another linux distribution, but a real OS.
This is the open source continuation of BeOS, which was first released in 1995. It's barely younger than Linux, and about the same age as the older distributions like SuSE, RedHat, and Debian.
BeOS was never released as open-source, Haiku is a clean-room reimplementation, with some very different internals. Development started in 2001/2002, so more than a bit younger than Linux.
I guess continuation could be read to mean the code was open sourced and development continued. Sorry I was unclear about that. But the design and lineage of the system and many of the developers on it extend back through BeOS.
I've tried Haiku a few times and liked it, but it feels like the beta label has been around forever and is not doing them any favors. It's 2020, you're not publishing software as a big-box release in stores, just cut a release already and then keep iterating!
From Wikipedia:
It wasn't until September, 2009 that Haiku reached its first milestone with the release of Haiku R1/Alpha 1. Then in November, 2012 the R1/Alpha 4.1 was released, while work continued on nightly builds.[8] On September 28, 2018, the Haiku R1/Beta 1 was released.[9] On June 9, 2020, Haiku R1/Beta 2 was released.
What can I say? We have extremely stringent quality standards ;)
The "beta" label signified that we had implemented all the features we thought mandatory for R1. Of course there are new ones in this release (like HiDPI support or the NVMe driver) because we still want to use Haiku on contemporary hardware, so changes still get made. But largely we are more oriented towards stabilization and "usability", i.e. fixing bugs or minor enhancements that get in the way of actually using Haiku.
But it's also the case that we do not get a massive amount of work done every month; probably around or less than a "man-month" between the dozen or two developers.
I remember LOVING BeOS when it came out. I was a kid, had dabbled in breaking my parents computers with Linux distributions in the 90s, and was enamored with BeOS and was blown away by how great it worked. The fact that the user space has continued over the years is really nice to know (and have tried over various times through emulation).
Has there ever been interest or attempts at funding it so that more than a man-month could get accomplished?
Yes, there are occasionally contracts paid out by the Inc. to developers to work on things, but this depends on a developer having the opportunity and willingness to do so, since the funds will eventually dry up and they will be out of a job.
We had two major contracts (for a few months) in 2012-2013 to finish and then integrate the package management system, another in 2013 for the new kernel scheduler, and then one that lasted almost a year around the same time working on the WebKit port used in the built-in web browser (which ended because the money ran out.)
Haiku, Inc. currently has over $100k in the bank as per it's last financial report, but at only $20k (usually less) in donations a year, it's obviously not enough to be sustainable past a year or two for even a single developer. If there was actual sponsorship by the community or otherwise, then yes, a number of us would be willing to work on Haiku full-time.
I'm sure you guys have considered crowdfunding, so if I may ask, what's the reason you're not going for that? I think a lot of people would be willing to spare some money to see this get done, especially
if you could put together a nice documentary/marketing video to explain why it's a cool project.
I myself am not exactly sure what I'd like to use Haiku for. I'd probably consider it if I had two different systems, one for development (which I need to use Linux for) and one for everything else (I just need LibreOffice and a usable browser).
Well, I'm not quite sure what the philosophical difference would be between the "donate now" buttons with the green meter showing yearly donations, and a formal "crowdfunding campaign"?
Overall, we are in a kind of "valley" of sorts: Haiku, Inc. gets more than enough money to pay for infrastructure and occasional miscellaneous things like that, but a long way away from enough to hire someone full-time for an indefinite period, and it's difficult to get people to contribute larger sums for a full-time developer that may become possible in half a year, two years, or ten years.
Well the development team is incredibly small working on an 'entire OS' not just a kernel, in their spare time with little resources and funds compared to other open-source projects who have many more paid contributors working on a sub-system part of a Linux distro. I'd say the fact that Haiku is still alive and has most of the essential software is impressive given its situation.
Imagine if Haiku had fully funded developers working on the OS. It would be out a lot sooner with more features, but obviously that isn't the case.
Oh the other hand, probably when they first announce 1.0 a lot of new users will try it, and they probably don't want their first experience to be a buggy mess.
It's not a commercial product. Even if it was, what ever happened to releasing quality software? Sure, Google and Facebook release new builds constantly but everybody hates them. There used to be a time when a new version of software meant new features, not new bugs, and it seems like Haiku hearkens back to that time.
I'm amazed! On a whim, I tried installing it to my old ASUS EEE 7" netbook. Everything seems to work! Haiku just breathed new life into that old device.
I tried the last major beta release on my 701 4G, but couldn't get it to work, I think due to the minimum screen resolution requirements. I'll try again with this one - some people on the Haiku community forums reported success with their 7" netbooks.
Congrats to the Haiku team! I recently started testing it out, hoping to contribute soon, and it's pretty neat. I last played with it 10 years ago, and it feels a lot more solid today. Really looking forward to what's in store for R2 when R1 is released!
By complete coincidence, today was the day that I finally decided to try Haiku on a spare laptop... and it just worked. Battery's recognized, display's running at full resolution (no VESA or whatever), wifi worked without issue. I'm typing this comment in WebPositive:) This is actually pretty great.
Haiku lags and will lag main stream operating systems regarding drivers for hardware.
But if they could make it run in Raspberry Pis, with one set of hardware it would be awesome.
A light weight operating system on a light weight computer.
Honestly the main way we lag right now is missing sleep support (nobody has attempted it) and 3D acceleration.
Otherwise, Haiku runs on modern hardware just fine. I have a custom build from this year under my desk with an AMD Ryzen 7 3700X (8c16t), an NVMe drive, and Haiku boots off the NVMe and runs great with all 16 threads. It even can connect to the internet via the WiFi card on the motherboard.
Sort of. Things like USB, which past 1.0 has only one controller per generation, released the current controller design in 2010 with the first chipsets on the market in 2011. So that at least is less of a moving target than it once was.
But, I mean, NVMe follows on SATA much like SATA followed on IDE, so on that front things are not so different. And for WiFi, there is not a common device interface for that, so each new generation of hardware from each manufacturer requires a large chunk of new driver code. Haiku reuses FreeBSD's WiFi drivers and 802.11 layer, but as you can see, they are having a hard time keeping up (only recently was one developer hired part-time to work on it, I believe.)
So, it's kind of a wash, really -- on x86 commodity PC hardware, that is. Part of the reason Haiku on ARM still has not taken off is how wildly diverse that ecosystem is, especially how much of a moving target it is.
I’d like to hear more on Rpi support. I remember the Pi being shunned in Haiku forums as being a “niche”, and having a dozen or so of them about the house I would _really_ like to know how the ARM port is going.
There are a few odd commits from developers now and again, but nobody is working on it seriously. PC hardware is mostly x86, and we actually use that, so that's where our limited time mostly goes.
How does Haiku's accessibility story look like? Any plans for a screen reader?
Blind user here, I would like to try this out and see what all this fuss is about, but I think I can't. Can someone explain what's so great about Haiku's UI?
(Haiku developer here.) The way the UI is structured, creating a screen reader would not be too difficult, and I think one of our developers attempted it at one point, but it was certainly never finished and is not usable right now. Sorry :(
Beyond the spirit of and compatibility with BeOS, Haiku's advantages are being full-fledged desktop operating system developed by a single team as a single unit (that is, unlike Linux or the BSDs where the kernel, window manager, GUI toolkit, application suite, etc. are developed by separate teams and combined by yet other groups); and also our occasionally unique approach to systems design and implementation (for instance, the Haiku package manager is based around a union mount of block-compressed filesystem images.)
The UI itself is reminiscent of 1990s UIs (gradients, bevels, more saturated colors), with a modern feel (modern fonts, antialiasing, etc.) The window borders are not rectangular, but are instead yellow "tabs" which are only as wide as their text is, and so windows from separate applications can be "stacked" and used as a unit, like tabs within applications.
Interesting— two showstoppers for me fixed since Beta 1. USB 3 is now much better supported including as boot devices, and NVMe drives are now also supported. I might just be able to at least boot and see this! Judging by this, the traction actually sounds decent. Wait - what? It’s 10+ years old. Yes, but that was just two major improvements out of several, and during 20 months.
>The ideals of Haiku are great but is anyone using it consistently? If they are what workflows benefit from Haiku's feature set?
I do, but maybe i am not the best everyday example with my ~20 years user experiences with BeOS and Haiku and do development/porting for Haiku. I use on a dedicated Haiku laptop and planing to switch to Haiku on my main system too, the only roadblock is the external-display support. After it gets enabled (i have intel based system) i will switch completely.
>I'm curious if anyone is actually using Haiku features in some non-trivial way, e.g.
All the files coming from packages have an own attribute which identifies the parent package, so it is extremely easy to find from which package the questioned file comes from. For example.
I have to frequently search for existing recipes, i use bash to craft me a search query. I definetely could use `find` instead.
I like that i have no email client, so if i need to search for a mail on a busy covered desktop i don't have to hunt for the mail-client icon on the taskbar i just click on the desktop where it visible between all the windows, Alt-F > type what i want > ENTER.
I really like the virtual-desktop handling, S&T, etc., so long story short: i like so how it is.
> A filesystem with indexed metadata sounds great but who is actually using it and how?
One of my first sour experiences with NTFS was the horror involved in learning how to find which files have changed since some given time in a directory. I expected a SQL-ish interface but...omg. omg.
The reason for tracking changes in files was for hot loading art assets into a running program.
Yup, filesystems in general should have a database/SQL interface. I'm currently using CouchDB and Apache Tika to index and search my files. It works but there is no way people who are not programmers would enjoy using such a system. It's extremely inelegant and requires constant context switching and I'd much rather be using an operating system that had all this functionality as part of the filesystem interface.
Legends of BeOS’s fast multimedia handling still lives on and I wonder if Haiku has some sort of edge today when it comes to playing multimedia or recording music?
It was bonkers. I could barely play two videos simultaneously on my Pentium in Windows 9x, but I could play four simultaneously on the same box booted into BeOS. The OS was small and fast.
I tried haiku back in 2011, it was a fun 2 hour then I forgot about it. Since that short experience, every other year news find me that it reached a new milestone.
It does sound like fun to write a new os... but this project is at least 10 years old. How and why did it survive and reached beta? Why does it still exist?
What practical applications does this OS has (or will have) over the commonly knowns?
Considering it's a small set of developers who all work part time re-implementing an OS from the 90s that failed when it was a commercial entity fully staffed, it's hard to imagine that they're super serious about it being a "production" OS.
(1) While Be, Inc., failed, it's debatable whether it failed because the OS wasn't good enough. It was certainly being used in commercial production in certain places already -- not just by hobbyists. Steinberg was selling a BeOS version of their (very high-grade and expensive!) audio production system, Nuendo, and I actually saw Level Control Systems' CueStation, an "audio automation system" for Broadway-grade live performance systems, running on BeOS in the wild -- it was running the control booth of Cirque de Soleil's permanent installation at Disney World. BeOS was doing shockingly well in attracting commercial applications in 1997-1999 given its tiny user base -- what they were failing at was attracting hardware companies to ship pre-installed systems. Be's management was dead set on the idea that "steady and slow growth as a niche OS" just wouldn't do, and they needed to either be the next Apple or die trying. And, when they punted on desktop BeOS in favor of a custom version for what turned out to be the absolutely imaginary market for internet appliances, they pretty much chose "die trying."
(2) I think it depends on what you mean by "production". I mean, it's probably never going to be competing with Linux servers. But is it possible it could be competitive with Linux as a desktop OS? Maybe. A few years ago I wouldn't have been that optimistic, but they've done a tremendous job with ports.
I remember folks who would wax nostalgic about BeOS, and claim it trounced Unix & Windows when it came to performance. Could anyone speak to the technical strengths / interesting aspects of this OS?
I think most of the perceived performance was a result of pervasive multi threading, which was novel at the time.
For example, I remember being able to simultaneously play 5-6 mp3 files, load a web page, play an mpeg video, and browse the local file system while having complete UI responsiveness and no audible/visual glitches. This was pretty much unheard of at the time, especially on modest consumer hardware (pentium 2 ~350mhz IIRC)
IIRC, it was the only desktop OS at the time that used a separate OS thread per window, and each window had a asynchronous message queue which received objects of type BMessage. Programmers were admonished to quickly process the messages, or if they could not, to hand the task off to a different thread, so that the message queue was not blocked.
In contrast, other platforms at the time used 1 process per app, and would block all the apps other windows from updating while the active window was processing, unless the developer made a point of multithreading their apps UI. Some platforms blocked the entire system UI if a window froze.
Today lots of platforms use BeOS' paradigm, and it seems obvious in retrospect, but at the time, it was very novel.
People have tried it before, but all those projects are now defunct. Ultimately it winds up being "just another Linux desktop environment", or even a mere reskin of another DE. The kind of deep system integration that is possible when the entire system is developed as one project is extremely difficult, if not actually impossible, to do in the Linux ecosystem.
The main appeal of Haiku OS back in the day was its soft-realtime focus wrt. UX and multimedia, and you could get there quite easily with modern-day Linux. Especially if you add the PREEMPT_RT patchset and use the cgroups2 tuning knobs to improve priority of user-interaction tasks.
Crazy idea: Have you ever thought of porting your desktop environment to Genode? ( https://genode.org/ ) And fully integrating their Sculpt into it? I mean, on Amd64 you are already binary incompatible, so that wouldn't count as an argument against it.
Someone suggested it (but then, the community is large enough that all far-fetched-but-not-impossible ideas have probably been mentioned at one point or another :)).
I don't really know what the differences between porting Haiku's userland to that or to Linux would be. Everyone loves to make arguments about how microkernels are so great and all, but there still isn't a major operating system or distribution with a significant number of everyday users on one. Plus, all of our same philosophical objections to using the Linux (or any other kernel) as the basis for Haiku would still apply.
Hm. For one they have seamless Virtual Box integration. Which means NATIVE vbox-port running on that, and fast. Can use one of the fastest (message passing) micro kernels available. Which seems fitting to the concepts of Haiku from my layman point of view? What i'd imagine is your desktop, with the exact look and feel and usage concepts ripped free from Beos/Haiku kernel stuff, and running atop SeL4 instead,
with BFS running in some user task, thereby not loosing all the database/tag-capable stuff for the DE.
Maybe even having more drivers for contemporary hardware?
Also security, network stack?
Is it even possible? I mean my standard of faithful would be something that feels coherent and solid not just a selection of skins slapped together that looks ok in a screenshot but just doesn't feel right in use.
The extreme modularity of Linux is absolutely one of its strengths but honestly at this point it just seems like such a modular system can never really feel as coherent and solid as a system built as a single unit from a user experience point of view.
I get (I think) how this is different from a Linux desktop, being developed in entirety as a single project, instead of being split into a kernel, and user-space distro, and fragmented apps on top of that, but ... is there a tl;dr on how this compares to (say) FreeBSD, which is another "kernel + user-space in one package" thing?
Because she really wants something fringe and not really Unix. I'd be surprised if there was any user or developer that didn't do Haiku as a hobby. I've never heard of a single person making money from it.
I think that's really impressive. An expensive piece of software shipping an operating system to go along with it. And they have a video showing worldwide installations, demonstrating that it is a successful product. Well done!
I used BeOS for a couple years in the 1990s as my exclusive OS. It had all the software I needed at the time. I especially liked the feature where you could clone your whole working system to another drive or partition, live. That actually saved me on a couple occasions, I would perform a weekly backup of my whole live system to a secondary drive.
It's so nice to see this project making great progress.
It has been a long long time since I gave Haiku a look. It is getting there. Setup on KVM took less than a minute. Looking nice. Networking seems a little slow when loading web pages, otherwise looks good. I miss WebPositive.
The domain name is haiku-os.org. Every page includes an "About" link at the top, and the root page has a two-sentence description in a large font at the top.
They really couldn't make it any easier to figure out what Haiku is.
The news release doesn't show a thing about what it is nor is there a link.
The URL with an OS in the name tells me what category it is in but not the USP (I don't really get that from the two sentences either but at least it's something)
So I went looking (not via Home or About because usually they are useless, YMMV) but via Documents.
So here I am, saying that it took me a while to figure out what it was.
There is no USP really... it's an OpenSource reimplementation of https://en.wikipedia.org/wiki/BeOS (before your time?). Haiku has been around in some guise or other since the early 2000's.
BeOS was/is pervasively threaded and took full advantage of multiple cores (a very novel thing when it came out - BeBox had two PPC processors).
Similar projects include: ReactOS (Windows 2000), AROS (AmigaOS), FreeDOS (MS-DOS), FreeMiNT (Atari ST). I think there might even be one for OS/2
I suspect Apple would have struggled to attract the amount of developers they did, by moving to a non-unix systems; which in turn might have hampered their efforts on mobile.
Wait, are you saying you wondered what this project is and you saw the "About" link at the top and decided not to click it? About pages are indeed useless if no one visits them.
Sigh. Probably will try it later. Did try the R1/beta1, and had to fiddle in the BIOS to get usable output on secondary display (can't remember if i managed dual-screen) on intel graphics. Liked the look and feel of it, mostly. Because on the secondary display on 24"@1920X1200 the icons looked somehow stretched wide, but just a little. Not so on the internal 13"@1280x800. Question is: what to do with it?
How stable is the FS? Where are the videos/intros which really show what i can do with it, which i can't with other desktops? Haven't found a really compelling reason so far. (Hmmm, seems like they updated their slideshows and list of videos...)
Would FreeCiv stop slowing down to a crawl on larger maps in late game? Could i abuse AQEMU as performant dockerthingy for the applications i need?
perfect for an old 32 bit computer lying around. a computer for the grandparents. or the kids. or dual-boot into it for a focus for writing, with minimal distractions.
Haiku looks like an interesting project. I like the concept and the consistent design, but ... it is still missing one critical feature ... a viable business model.
Linux is an example of what to expect without this critical piece. Decades of manhours from some of the best and brightest, millions of lines of code ... and a miniscule marketshare on the desktop.
It aspires to be something the developers enjoy hacking on and using, which is the very reason it exists at all. Why you seem to think it needs to be more than that is puzzling.
I'm sure the developers would love for it to be more than that, but there's a limit to what can be done and it's ASTONISHING what they have done.
There are many successful businesses built on top of Linux. The install base of Linux is small on desktops but it's the most common OS on all other platforms.
Please stop moving goalposts. Either Linux is successful, or it isn't. Android proves that it is successful on cellphones (which likely means it's the most used Operating System in the whole planet).
It's is successful in server applications. It is successful in cars. Consumer devices. And so on.
Just because you don't see many people doing their Excel spreadsheets on their Linux PCs doesn't mean it is not successful.
Also, Linux started with NO business model. It started out as a "fun" project – and because the Unix operating systems at the time _had_ a business model, which made them cost prohibitive for many people.
I think we need to re-examine the playing field here.
Correct me if I'm wrong but Haiku appears aimed strictly at the desktop as a general purpose OS.
Cellphones, servers and embedded systems are all out of it's league --- and thus the success of Linux in these areas is not really relevant to the topic at hand.
Sure, I think people are just objecting to the implication that Linux as an OS had a 'business model' or 'commercialization' problem; in the very early days (I was there) this was the case ... except it was all mostly being done for fun. But these days... it's just everywhere. It's the lingua franca OS for almost all hardware, for better or for worse.
And it certainly wasn't targeted originally for cell phones, etc. And it arguably isn't best suited for it. The unix perimission and user model and file system structure etc make little sense there. But somehow it ended up there.
Arguably a finely tuned single user system makes more sense for those types of system. so who knows... maybe Haiku or something like it has a future there. I doubt it, as I think of Haiku more of a lovely retro computing project... but it's somewhat conceivable.
I mean... former Be engineer Travis Geiselbrecht was behind the early days of Haiku and he's now key behind Fuchsia. So there's some cross polination into that kind of ecosystem anyways.
Apple was in a financial free-fall until they had success with the iPod and then the iPhone. The desktop/laptop business model isn't anything to brag about. It's a low margin business that isn't nearly as important to Apple as its smart phones.
I think that mobile devices haven't taken as much time away from desktop computing as they have from other areas of life, like watching sitcoms, or talking on the phone.
Those were spans of time that desktop computing never usurped - despite trying - and at some point all the growth was mobile, and yes, to your point, that's absolutely mostly Linux via Android.
At least on my case a lot of my time on mobile is communication apps and reading things like HN. Desktop time is of course work, but also personal planning and more complex personal tasks.
I think you'll find that many households don't even have a desktop computer anymore. Many are choosing not to own a laptop too. Many people who never owned a computer now do all their communication through a mobile device.
I really enjoy the visual style of Haiku. The look-n-feel of it seems better to me than any other UI I've seen, and I say that as someone who never used BeOS, so it's not the nostalgia talking.
It would be really cool if Haiku was able to get to a state were it's usable as a daily driver. I think having an OS and interface more focused on a single user at a graphical terminal rather than a multi-user system with graphics tacked on would be positive.
BeFS also has some really great ideas that aren't replicated in other more modern FSes, namely it includes database-like functionality that enables some really neat features via a standardized interface, rather than hiding them away in vendor-specific file formats. If you're interested, Practical File System Design[0] uses beFS as it's example filesystem (and it's also a really good book in general).
0 - https://www.amazon.com/Practical-System-Design-Dominic-Giamp...