[jewel] Re: Current state of Jewel-OBJC

  • From: Brett Parker <brettp@xxxxxxxxxxxxxxxxxxxxx>
  • To: jewel-dev@xxxxxxxxxxxxx
  • Date: Sun, 25 May 2003 20:51:14 +0100

frank.hale@xxxxxxxxxxx <frank.hale@xxxxxxxxxxx> wrote:
> 
> > I've just been looking at my (very minimilistic and yet to handle an
> > event) code base
> 
> So Brett you are writing a window manager from scratch as well? What
> does ObjC give you that ordinary C cannot give you besides a notion of
> object orientedness? The syntax is absolutely revolting. What is going
> to separate your WM from any other WM out there? What features do you
> find the current stock of WM's lacking?

Not entirely, taking the general code base from the C++ code for jewel
(and so its ideals) and slowly making it more OO, easier to replace
bits, and much cleaner. Although the base currently looks *NOTHING* like
the jewel base, its because I've been randomly rethinking the core
whilst going through. The jewel C++ tree has become hideous, so tidying
the bits that look nasty with neater methods.

Of course, the obvious advantages of ObjC is a full set of widgets (if I
can seperate them out) and a nice GC, it actually does clean up after
itself, so the only bits I've gotta be careful with is the bits I use
Xlib for (like querying windows, restacking, etc) which should generally
be small enough chunks that anyone can follow it.

So, the general reasons to recap are:
        - C++ is an ugly language, that doesn't really promote an objective
          view on the code, but instead gets a large nasty looking mess of C
          and C++
        - ObjC actually has a reasonable amount of built in extensibility,
          especially in its message passing, this means that I can, infact,
          build it very modularly, and could, infact, harvest the event
          handling out to other modules, say a keyboard module, a mouse
          module, and an events module. And, of course, as there should be
          interfaces for these, they could then be easily replaced with other
          code.

Of course, there's also now 3 different Desktop Environments to think
about, and a whole host of new atoms etc, there's the GNUstep lot, the
KDE lot and the GNOME lot, so, using the extensibility of ObjC I
*SHOULD* be able to easily build extension modules as long as the core
is right.

As for what's missing from current window managers, hrm, as there's a
whole plethora of window managers out there, and I've by no means tested
them all, I can't say exactly what I find wrong with them all - but, so
far in my experience, there's no real light window manager with all the
functionality I want, and the larger ones are stupidly slow on my poor
little K6/2 500 box. So, basically, I'm building a fairly much modular
window manager (starting on it not being modular, but that's because it
makes life easier for me, and adding that in later, which if I get the
structure of the core right, should be simple). Of course, the other
things that I'm tempted to make modular are window decorations (or
rather, the entire parent windows we generate when swallowing mapped
apps).

Right - that's me for now, I'm orf out to watch the Matrix Reloaded :)

-- 
Brett - not signing this time cos it just gets fux0red by ecartis.

Other related posts: