Haiku: Still Not The Desktop Answer

by Jon Davis 19. August 2007 23:05

Alright, now that I've downloaded the demo VM I previously linked to, the one that has several BeOS apps installed, I've reached a new conclusion about Haiku.

My conclusion is this: Haiku is to BeOS what ReactOS is to Windows NT 4.0. It's a whole lot of effort to emulate an old architecture all the way down to the bottom-most level, but ultimately being a third party rehash it will never perfectly emulate, and it will always reflect the old milestone of the OS it was trying to emulate.

In other words, Haiku OS is not a futuristic operating system, it's a remake of an old one, and it has some problems.

  • It's focused solely on legacy support. What a horrible way to build a new operating system; yes, I know, the advantage is you get all this BeOS software up and running on the system right away, but a) it will never work like it did in Be, and b) software on Be in general only had a few short-lived years to mature. Or let me put it this way, I'm really happy and excited for Haiku for being what it is--a nostolgic OS that might still have a future once they wrap up R1 (whenever that happens, if ever) and get started on R2. But until R1 is out of the way, there's nothing really I for one can do; I'm NOT going to write BeOS software targeting R1 considering R1 emulates a Windows 98 generation operating system.
  • I posted last night that I thought its base directory structure was perfect. Poking around now with a more loaded system, I retract that. For example, I don't like the idea of apps being installed three different places: in the root directory, in a "home" directory, and in the "beos" directory. WAY too confusing. You have "develop" and "apps" directories in the root, in home, and in beos, but they should all be in root and there should only be one instance of the set.
  • I see no user profile support here. I don't recall, did BeOS have a login process? The old Mac environment didn't force you to log in and access the OS through a user profile, but in my opinion that is simply the evolution of operating system technology, like multiprocessing. Without a user profile, you have a single-user machine, which makes the OS good for, yep, good ol' mobile devices. (No wonder BeOS was sold to Palm!)
  • The yellow/orange titlebar taking up only the width of the title is not just an aesthetic statement, nor does it appeal to my inner sense of geek, as in, "Cool, a window that isn't perfectly rectangle". It's actually an annoyance. My mouse scrolls on the right, always. It accesses the deskbar on the right. It usually resizes the window from the right. Why must I move the mouse all the way to the top left in order to relocate the window or hit the close button? And yes, I know you can move the window around using the border. But it's such a tiny little border. I've got a 20" monitor running at a resolution of 1600x1200, running Haiku in this little 800x600 VMWare window. It's dang hard for me to find those one or two pixels of border width where I can hold the mouse button down to drag the window; I'd rather move the mouse to the top-left where the titlebar is. Which brings me back to my original complaint; make it flush right, please. Not to mention, it makes a terribly 90's-ish aesthetic statement. (I can get left-aligned narrow title bars in Microsoft Windows using Stardock's WindowBlinds. Needless to say, I have no interest in using it.)
  • Half the apps lock up when I try to close out of them. This is because it's pre-alpha, though, so no real surprise there.

I notice Fedora there in my VMWare VMs list, and I ask myself, how does that make me feel? I feel like I miss Fedora, with all its many features and completeness. Which is ironic because I just posted a long post last night about how unimpressed I am with Linux. I'm reminded yet again of what it takes to build an OS. These guys have been at it for six years, yet they don't have an Alpha release done yet. No wonder the geeks hesitate, despite the tools. Without many millions of dollars on hand to invest in people's efforts, and at least as many years, there's just not enough motivation to get something like that done, or done right.

I must admit, though, the idea of seeing a fork of Haiku once it reaches some stable state, and producing an alternate "distro" with all new rules for toolset and GUI, appeals to my imagination. But now suddenly I am more able to understand why there are hundreds of distros of Linux.

I suppose my interest in alternate OS's is related to the wish for a good, approachable, maintainable, community embraceable OS that abandons UNIX or other unapproachable geekiness as well as proprietary and abusive underpinnings like Microsoft's inconsistent and overuse of the Windows registry. I'd love it if I could just sit down with some architects and plan out how a good operating system should be built. As I said before, Be OS came (and Haiku comes) close, but it's already old and just short of archaic considering all that we enjoy in Windows Vista and Mac OS X from both a programmer and a user perspective.

I will keep a close eye on Haiku for a while. Were I to just sit down and construct an OS (and I were a god, which I ain't, and if I was a billionaire, which I also am not), I'd probably start with Haiku, because I like its simplicity in its basic setup--no "/var/", "/opt/" or other gobbligook, and libraries are pretty plainly organized--and I like its performance, basic device support, SMP support, and the total elimination of text-mode bootup junk. I'd add a registry, and build it on something like SQLLite or Berkely DB, something like Elektra. I'd make it user profile oriented, and put users in a 'users' directory, like Vista. I'd make sure that the file system had all the key features of NTFS like security and self-repair... or heck maybe just add full NTFS support and disk checking. In so doing I'd make sure ACL (access control lists) were supported per-file, per-directory, and per other objects. Then I'd tack on cross-platform APIs like Java and Mono. Then I'd get a killer C++ IDE added and fully functional, something on par with Eclipse for Java (oh and for Java support I'd make sure Eclipse worked well). Then I'd tackle 3D graphics API, and push beyond OpenGL and look for a Windows Presentation Foundation API look-alike that had a small footprint but supported 3D and other multimedia. I'd rewrite the shell in that API, taking a cue from Windows Vista Aero. (The goal being not to make it bloated but to make it both fast and powerful, by harnessing the power of modern video cards and delivering powerful, clean, and convenient programming APIs.)

Or, I'd rebuild something from scratch like what I've heard of Singularity, and tackle features on a per-application-requirements basis.

My original silly idea which led to last night's long-winded rant was that someone should sit down with Linux, and just completely refactor the whole thing top to bottom, throwing out legacy compatibility but using GNU tools and clean the whole thing up, starting with the elimination of those oddball directories, replacing the X-Window subsytem with one that is more to-the-metal, basic, and user and developer friendly (and that starts up first to hide the text-mode startup junk), killing off or completely deprecating old-school tools and ways of doing things, add hidden symbolic links for those old, ugly paths to a compatibility subdirectory, and reworking developer tools like Java and Python, one by one, to be compatible with this new system. I'd sell it off as a whole new Linux "distro" like Debian but even much more heavily reworked.

But then I realized, all of that is almost what Haiku does. Except Haiku's focus is to reproduce Be, not to refactor Linux top-to-bottom without constraints. I think the latter is more attainable, useful, and future-friendly.

Honestly, I don't know. I'm awfully naive, but not so naive as to think that my imagining these things should be taken seriously. As much of a geek I am, I'm not qualified to even try to play any part of any of this unless it was high-level. I understand general, high-level architecture well enough, but I couldn't write a device driver, let alone a full-blown kernel, nor do I know enough people who would have an interest in taking on roles in building the hundreds of different parts of a complete OS.

Even so, it's fun to dream, isn't it.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

Computers and Internet | Operating Systems | Software Development


Powered by BlogEngine.NET
Theme by Mads Kristensen

About the author

Jon Davis (aka "stimpy77") has been a programmer, developer, and consultant for web and Windows software solutions professionally since 1997, with experience ranging from OS and hardware support to DHTML programming to IIS/ASP web apps to Java network programming to Visual Basic applications to C# desktop apps.
Software in all forms is also his sole hobby, whether playing PC games or tinkering with programming them. "I was playing Defender on the Commodore 64," he reminisces, "when I decided at the age of 12 or so that I want to be a computer programmer when I grow up."

Jon was previously employed as a senior .NET developer at a very well-known Internet services company whom you're more likely than not to have directly done business with. However, this blog and all of jondavis.net have no affiliation with, and are not representative of, his former employer in any way.

Contact Me 

Tag cloud


<<  May 2021  >>

View posts in large calendar