[nSLUG] Strategic thinking in system administration and software design

George White aa056 at chebucto.ns.ca
Sat Jun 14 09:30:38 ADT 2003

or "Why don't they sell more square drills?"

I'm fairly heavily involved with a couple widely used packages (teTeX and
ghostscript), and trying to keep my involvement with OOo from getting out
of control.  TeTeX is a unix port of the TeX mathematical typesetting
package which include a lot of the bits that sys admins use to have to
configure 1 by 1.  TeTeX has been around long enough that it is starting
to suffer from serious featuritus.  The base distribution is still 
relatively compact and easy to deal with, but there are lots of packages
that leverage teTeX.  For example, SGI has a freeware distribution of
open source packages that is mostly an unpaid effort by SGI employees.

I recently installed the current SGI freeware version of teTeX on my
workstation.  The list of dependencies includes about 100 other freeware

A common class of bugs reported for both teTeX and ghostscript are
actually due to problems with the png library.  TeTeX includes pdftex,
which can read png image being "placed" in a document.  Ghostscript can
write png files.  The png standard includes images that don't work with
the open source library, and the library has changed over time.  The
difference is that there are many more people using and supporting
ghostscript than there are using and supporting teTeX, so the problems get
fixed early and often for ghostscript. 

The decision to support png images in pdftex using the open source library
was a mistake. There are tools to convert pdf images to pdf files, and
pdftex can "place" pdf files without having to process the contents. Tools
used to convert images between different formats can be used and supported
by a much wider community than that using pdftex.  Now, with the GIF
patent about to expire, people are asking for GIF support in pdftex. 
Another mistake, and one that will almost certainly be made. 

Steve Balmer was recently quoted as saying that open source just copies
commercial applications.  In fact, open source developers have much
greater latitude in how they design software, but they need to learn to
tell users: I refuse to add the feature you want because you can already
accomplish your task using (free) tool X.  The community needs to explain
to users that free software requires a different approach than they would
use with commercial tools.  With commercial tools, users expect one
program to do everything they need to accomplish a task.  With free tools,
users need to adopt a different approach, based on having an appropriate
set of tools. 

Unix has a long tradition of a tool-based approach to solving problems,
but much of that was motivated by the need to perform tasks that were not
widely shared (R&D environments).  Now that Linux is widely used, more of
the tasks are widely shared.  If you are doing a task that is not widely
shared (e.g., a maths document), you should try to maximize reliance on
tools that are not limited to your tasks (e.g., don't expect TeX to do
your image processing).  If you need to make a square hole, you generally
get a round drill and use another tool to do the final shaping.  You can
get a square drill, but it is expensive and needs a lot of maintenance, so
they are generally used only in high volume production environments.  Why,
with software, do people insist that they need a square drill?  How can
Linux convince people that the round drill method will be better in the
long run? 

George White <aa056 at chebucto.ns.ca> 
Head of St. Margarets Bay, Nova Scotia

More information about the nSLUG mailing list