Thursday, July 8, 2010

Not Worried About Haiku's Future

Operating systems are funny things. They take FOREVER to develop, for example, and I don't just mean Haiku. Look at the development time for Vista. It took a multi-billion dollar corporation for than five years to write the upgrades for XP.

There's also a chicken-and-egg problem that fledgeling OSes have: how to get an OS without applications and how to get applications without an OS. Luckily for Haiku, a lot of that problem has been mitigated by BeOS' startup history. The QT4 port just saw a 4.7 release. I'm really thankful for the efforts of those guys. Other people like Michael de Vincius Oliviera and the HaikuPorts team have been hacking away at porting stuff from other platforms. While they certainly don't have all of the BeOS goodness of a native app, at least we have some of these apps and games. KOffice takes a team of dedicated developers that is IIRC larger than our OS team alone. We're really starting to get a lot of useful apps.

Stability has always been my sticking point for coding under Haiku, but at least in my experience of late, Haiku's been pretty stable, all things considered. I'm typing this from a GCC4 hybrid build that I installed from sources. So far Paladin hasn't been plagued by deadlocks like it has been in the past, which has led me to believe that it was never Paladin's problem in the first place, but the jury's still out on that one. I'm even working on more features that will only work under Haiku and fixes for the platform, like using rsync to properly synchronize modules for the code library. In the last couple of days I worked with a couple guys on the team to nail down a bug in Terminal which was preventing Paladin from running applications in the debugger. After patching both Paladin and Terminal, it works beautifully now.

Feature-wise, Haiku is even now doing an admirable job of playing catch-up. People in the past have mentioned that R2 would be the release where Haiku would implement all the features that BeOS was missing that all the other OSes have, but more and more I don't think it'll take that long. OpenGL stuff might, but the Google Summer of Code has been good for that. There have been other people who couldn't wait that long for stuff like WiFi, so even now that partially works. Simple amazing, if you ask me. Then again, even though it's been slow, Haiku's progress from the outset has been that way, too.


  1. when are you going to release an update to paladin that allows for debugging? my app i'm developing isn't consistent in some menu calls and i wanted to try and figure out why and was gonna use the debugger to do that but it didn't work. will i have to apply a nightly build to get the terminal patch as well? will they work with a gcc2 hybrid? thanks for all the efforts your putting forth to teach me how to program and providing great tools to develop with.

  2. Well, I'm going to be putting out the 1.3 release in the near future. I just did the patch to fix the Run in Debugger command this morning. I've got a new feature in the works and some serious fixes to the code library that I need to put into place before I will feel comfortable enough to make another release.

    In the meantime, you can call manually open a Terminal window and run gdb. It's just doing it from Paladin that didn't work -- it's supposed to run Terminal and then run gdb on your executable, but it didn't work until this morning. Hopefully Ingo will be able to improve the graphical debugger he's been working on. gdb is good, but having been spoiled on bdb in R5 and Zeta, I really don't like using the command line interface that we have right now in Haiku.

    The best of luck in your hacking efforts. :)

  3. I forgot -- if you wanted to get a development build of Paladin, you can go to and check out the sources. While the tree sometimes (like right now) has new features which are incomplete, it's otherwise just as good as the current release and sometimes more stable because it often (like now) has bugfixes that weren't in the latest release. The tree has both a project file and a quick shell script for building under gcc2 and gcc4.