domenica 4 dicembre 2011

Maui

Some years ago I started several projects all based on the Linux kernel and GNU userland with the intent to create a better desktop user experience.
I was not satisfied by GNU/Linux distributions in the day by day use, my ideal system was BeOS which by that time was dead with Be, Inc the company behind it. An Open Source effort to recreate it, known as OpenBeOS (now Haiku), was started in 2001, but it certanly wasn't a viable option because it was in an embryonic state and what was missing from the original BeOS API was scheduled after R1 which as of today it's not reached yet!

BeOS shipped with a state of the art C++ API and a very elegant desktop with many features that later became standards like metadata and queries; it simply was everything Linux wasn't.


Basically I though GNU/Linux on desktop had the following major problems:
  • No coherent API and design.
  • Low propensity of developers of all desktop environments and toolkits towards a functional, uncomplicated and pleasant, out of the box experience.
  • Several software to do the same thing, none of them complete.
  • Inability to move to modern graphics architecture because of the dogma of X11 compatibility.
Haiku was progressing, and I kept thinking that it wouldn't go anywhere without a Linux kernel and its better hardware compatibility.  Although Haiku was still years away from completion, in 2003 I started porting its API to Linux.

I made two prototypes, the first was running on X11 with Cairo (which I believe was called Xr/Xc at that time) and the other more successful was based on DirectFB and had not display server (all client side). The Haiku API would have been a good start to implement what was missing from BeOS because of its age (layouts, notifications, standardized actions a-la QAction and many more) without waiting a lot of years.
At some point the enourmous amount of work needed to complete the project and the lack of interest from the potential users threw me into despair. We have to be honest here, BeOS zealots were not willing to use a Linux-based BeOS bastard (they did prefer to wait more that ten years for an early 2000 era operating system almost exactly the same as BeOS), at the same time Linux users was skeptical about it and I certanly did not help missing the second part of the "release early, release often" mantra.

With this project left behind be I decided to take another path: between 2004 and 2005 Qt 4 Technology Preview came out and it was amazing. Clean, complete, modular, supported the MVC pattern, multi-threading and OpenGL. In 2005, the Mockup project was started.
I didn't have much spare time to dedicate on the project, so in the end it was abandoned.

The years passed...

...and suddenly last year, browsing the web, I discovered a nice project: Wayland. Finally there's a viable option that can finally let X11 retire. I started writing some code for a file manager and a panel without the goal to restart the Mockup project.

I was just looking for a challenging pet project and I didn't want to publicly announce something.
Some more month passed, it's 2011 now and I feel it's time for me to write this blog entry because I'm proud of the code I wrote so far - in the last month I wrote a lot of code, my effort and committment is way more than my previous attempts.

So stay tuned to learn more about the Maui operating system.