I do find ion's OO-system quite impenetrable -- everything seems hidden behind 10 layers of mutually recursive macros, and the class heirarchy isn't documented anywhere.
I'm not a friend of macros as some of you may already know, but the changes in the latest ion-devel are a giant step into the right direction.
I was no fan of the older code, but the new code looks promising.
While I'm sure it's clear in Tuomo's mind it does seem to discourage others from contributing code.
This is rather a problem of lacking documentation. Someone could copy all of tuomov's hints on this mailing list to a howto/faq/whatever.
Witness only one serious module (ion-dock) and all other patches being on a very small scale (no disrespect to the authors).
one could say that there is little need for additional patches... well the barrier to entry is quite high compared to other window managers like fvwm (i'm a bit old - fashioned).
I would much rather see Ion written either in C++ or C with the glib/gtk object system. This would make the code much more transparent to non-Tuomos and automatically provide for support for things like linked lists, UTF-8, antialiased fonts, module loading, etc. etc.
better interfaces to libtu would be nice, but that's nothing that would justify a rewrite in c++.
My ideal Ion would: * be written in C/C++
it _is_ written in C ;). Well OO code can be written in "non - OO" languages as OO is a paradigm rather than a language feature (look at gtk).
* use gtk for as much as possible (modules, drawing, etc.)
a specified drawing interface would be better... smthg in the way of draw.h but higher level... I'm not sure if there's something in that way in the new ion-devel. That would make a gtk - drawing interface a lot easier and would limit changes to a small code spot. Most of the *_XFT #ifdefs could also be abstracted into a own *.c file.
* use librsvg for drawing decorations (tabs) (mmm, eye candy)
NAK. have you seen the dependencies? If you like eyecandy, there could be some Xrender thingies that could be done... as long as they stay optional.
* use lua for configuration (mmm, scripting)
indeed that would be nice. there was an implementation ages ago on the list, I think tuomov isn't offended by that idea.
Hope I haven't offended anyone :-)
constructive critic is always welcome ;)
Tom
Andreas -- "... I've seen Sun monitors on fire off the side of the multimedia lab. I've seen NTU lights glitter in the dark near the Mail Gate. All these things will be lost in time, like the root partition last week. Time to die...". -- Peter Gutmann in the scary.devil.monastery
