CLIM mail archive

[Prev][Next][Index][Thread]

Re: CLIM question



    Date: Wed, 22 Jul 1992 12:57 EDT
    From: gmw@cypress.mitre.org (Gregory M. Whittaker)

    I have been working with CLIM-2.0.alpha and just getting familiar with some
    of the basic properties of CLIM geometry. I don't know how much of what I am
    discovering is merely an artifact of the alpha version and how much is there
    by design. But my feeling is that there is an apparent effort to minimize the
    sophistication of the geometry model. My concern is that the geometry model
    will have very limited utility for spacial modeling and necessitate the 
    development of entirely parallel geometry models to do anything non-trivial
    in a mathematical sense. 

CLIM does not intend to provide any sort of a substrate for spatial
modeling.  CLIM is for building user interfaces, and as such CLIM's
interest in geometry is limited to the geometry necessary for describing
such interfaces.

Because one of the goals of CLIM was to describe appearances in a
device-independent manner, CLIM has more geometry (and is more careful
and explicit about it) than most user-interface languages.  This has
lead some people to believe that they were getting some sort of
geometric modeling capability "thrown in for free".  They were wrong.

    [...]

    I think it would be nice if rectangular polygons could be coerced to 
    rectangles at creation, since they are immutable and could logically be
    considered a subclass of polygon so that the test rectanglep would work
    on arbitrary rectangular regions and the rectangles would not be bereft 
    of the polygon protocols such as map-over-polygon-segments or map-over-
    polygon-coordinates.

I agree that rectangles should obey the full set of polygon protocols.

    Reading the beginning of section 3.2 Other Region Types in the 2.0.alpha
    documentation (from Franz) indicates that there is some sort of proposal
    to even further diminish the utility of regions by removing polygons, poly-
    lines, ellipses, and elliptical arcs. I certainly would like to hear the
    rationale for this; I think it would be a serious flaw and is a move in
    the wrong direction.

I believe the proposal is not to remove certain pieces completely, but
to have them available as optional add-ons.  

Any proposal to "demote" certain objects to optional status, or for that
matter to add on certain new classes of objects (e.g. splines), can only
remove (add) entire classes that are closed under affine transformation.
So you can't remove ellipses without removing circles.  Whether such a
stripped-down CLIM, whose only graphics were lines and points, would be
useful to anyone is an open question.  Perhaps a CLIM without any
graphics at all would be useful in some situations.

My own belief is that such a stripping-down procedure is more profitably
done at application-delivery time, by a "garbage-collecting linking
loader" or "tree-shaker".  Then you can strip out exactly and precisely
what your application doesn't need.  And you can strip it out of the
entire Lisp, not just the UI.


References:

Main Index | Thread Index