Thoughts about Ribbon Sharp, and GNOME.

20 10 2007


It has been a while since I last blogged. I think that I should first answer to a few obvious question:

What need to be completed in Ribbon Sharp?

  1. Support for keyboard shortcuts.
  2. Right-to-left support.
  3. Windows support (it has never been tested).

When will I do that?

Now that I have a Master in Computer Science, I have just began a Master in Actuary. Consequently, I have been studying mathematics a lot for the last month to catch my lateness. (One may wonder why I started this. In fact, software development is an art for me. The architecture, algorithms, and visual appearance, are all important stuff. I don’t want to support some COBOL, C++, or badly designed Java program. With Actuary I hope to make a mix with my computer skills that I will enjoy.)

I will try to complete Ribbon Sharp as soon as possible. But I have no idea when that will happen.

I would also like to give my impression and my feeling about my experience regarding the GNOME desktop as an experienced developer making its first steps in the GNOME world. I think that the main problem with GNOME for a new developer, is that programming in OO in C using Gtk+, is a bit like programming in COBOL. I love C, and I’m impressed that people managed to bring an OO framework for it. But compared to real OO languages, it has a little smell. I consider C/Gtk+ more as an intermediate language, which make it possible to bring many computer languages together (through bindings). That’s why I really appreciate the work of hackers behind Vala.

Also, it would be damn interesting to make a statistical analysis of contributions made to GNOME and KDE. Both communities seem to be (more or less) on par regarding their workmanship. But I suspect that GNOME gets more corporate developers, while KDE gets more “garage” developers. Indeed, Qt offers X11, Windows, Mac OS X support (and even more!), and a “true” OO environment (even if C++ has a strong “smell”). But forces developers to use the GPL to develop applications (or to pay a license). Seriously, even on a proprietary platform such a Windows I have the freedom to choose the license I like! On the other side, Gtk+ offers the license freedom which is more important for corporate users, but lacks Mac OS X support, (and nice programming language as previously mentioned).

My hope for GNOME 3, would be to base it on Windows Presentation Foundation and Mono. C and C++ guys could jump in the C# wagon, Python guys to IronPython, and Ruby guys to IronRuby. Just, remember the work done by the Moonlight team to build some desktop widgets. They did a beautiful work in a fast and efficient way! However, this will likely never happen because:

  1. Free developers will not be too happy to use a framework whose API is controlled by a proprietary company. On the other side, I do not know if Qt/Trolltech is much different.
  2. Mono may too heavy for use on some handled devices, but I’m sure that with some optimizations it should be possible, look at the Compact .NET Framework (but instead of shipping a diet framework, individual classes should be loaded on demand).
  3. There will always be some developers and customers who will fear the lawyers of big brother. (but in the end, after much fear about the kernel and Mono, recent strikes target the GUI of GNU/Linux).
  4. Active Python contributors may not be too pleased to using a third-party Python to develop GUIs.

Well, another possibility would be to base it on the excellent D programming language. But D has a serious problem regarding its class library. The official once (phobos) is old-school, while the unofficial (tango) can only be installed using a hack (replacing the original phobos library file).
My objective is to blame or hurt anyone, every community cited in this post does a fantastic job! I know how hard it can be to develop and make evolve large software projects. I think that constructive critics are always a good thing.
Laurent Debacker.