I would like to permanently disable the gd and gcw device drivers as well
as the gnome2 and pygcw bindings associated with the gcw device driver for
this forthcoming release.

Here is my justification for this proposed change.

* gd and gcw are unmaintained.

* Unicode text for the gd and gcw device drivers is rendered with plfreetype
which is not only unmaintained, but which also has a number of its own
issues which affect these devices such as

   + incorrect/inconsistent text offsets

   + font selection by file name which means it is inconvenient to specify
     fonts, and unlike the cairo and qt device drivers, there is no automatic
     method of picking the right font from the collection of fonts installed
     on a users system to give the best possible rendering of each glyph.

   + incorrect simple left-to-right text layout of language scripts (Arabic,
     Hebrew, plus many far eastern languages) which have complex text layout
     (not only in the horizontal direction, but sometimes in the vertical
     direction as well).

* gd and gcw provide functionality which is (mostly) superseded by other
device drivers.

   + -dev gcw provides an interactive device which is virtually identical to
     -dev xcairo (which makes sense since libpango/libcairo are the heart of
     GNOME rendering).

   + The gnome2 bindings (which allow access to the PLplot API for GNOME GUI
     applications) provides functionality similar to what is available from
     -dev xcairo and -dev extcairo to draw into an externally supplied
     XDrawable or Cairo context (see examples/c/README.cairo).  Of course,
     -dev extcairo is currently broken, but I assume that is going to be
     fixed since our cairo device driver tends to be well maintained.

   + The gd device driver provides -dev png (now superseded by -dev pngcairo
     and -dev pngqt), and -dev jpeg (now superseded by -dev jpgqt).

   - The gd device also provides -dev gif which is not superseded by
     anything.  On the other hand the GIF format has some limitations
     (notably only 256 colours), and PNG format is a good replacement for it.
     Furthermore, users who absolutely feel they need GIF format even when
     the better PNG format is available can always use the ImageMagick
     "convert" application to downgrade our PNG results to GIF. Thus, I feel
     there is little downside to removing our (lame) support of the GIF
     format altogether.

   - Nothing currently supersedes the pygcw bindings which provide python
     GTK+ access to the PLplot API.  On the other hand, those bindings were
     broken for a long time and nobody complained.  Also, I suspect it would
     be straightforward to adapt either the XDrawable xcairo or extcairo
     approaches to work in the python case as well.

The "permanent" disabling step I am proposing is simply to edit our build
system (i.e., comment out the gd- and gcw-related lines in
cmake/modules/drivers-init.cmake so that the gd and gcw device drivers are
completely ignored.  (Disabling gcw this way automatically disables the
gnome2 and pygcw bindings.) The result would be nobody could use these
device drivers and associated bindings (unless they knew enough to uncomment
the lines in cmake/modules/drivers-init.cmake).  Of course, this permanent
disabling step would be mentioned/justified in the release notes.

Before taking the fairly drastic step of permanently disabling these devices
(and associated bindings) I want to check with others here for your opinion
of this proposed change. If anybody here feels strongly about keeping these
devices around for the next release, I would certainly be willing to go
along with the compromise of simply turning OFF these devices by default
(which gives the users the choice of turning them ON if they really need
them).  However, I feel the above long list of woes is probably
justification for more drastic action.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state implementation
for stellar interiors (freeeos.sf.net); PLplot scientific plotting software
package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of
Linux Links project (loll.sf.net); and the Linux Brochure Project
(lbproject.sf.net).
__________________________

Linux-powered Science
__________________________

------------------------------------------------------------------------------
Stay on top of everything new and different, both inside and 
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today. 
Use priority code J9JMT32. http://p.sf.net/sfu/p
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to