[mod.computers.laser-printers] DDL

geof@imagen.UUCP (Geof Cooper) (09/15/86)

 >  ... My own suspicion is
 >   that Imagen is afraid of adopting PostScript because they fear ....

I am disgusted although perhaps not surprised at the assumption that
corporate doublethink or marketing hype is at the root of IMAGEN's and
HP's DDL efforts.  This assumption comes from quarters which are not
without their own measure of intellectual dishonesty (this comment is
not restricted to the author of the quotation, above).

DDL is a Document Description Language.  It was designed after Postscript
and Interpress.  This allowed its designers to benefit from the mistakes
and limitations that were inherent in those languages, and this they did.
DDL is a more powerful language than either Postscript or Interpress.
Please find, attached, a summary description of DDL, which examines the
ways in which this is so.  Full, readable, manuals are being produced now,
and will be publicly available when they are ready.  IMAGEN has never
kept any of its languages or protocols secret.

The world is now taking notice of DDL, thanks to HP's recent announcement.
Many factors are present in a company's choice of a "standard."  As an
employee of another company, it would be inappropriate for me to comment
on how HP made its decision, except to point out that a technical comparison
of DDL, Postscript, and Interpress was carried out, and DDL was considered
technically superior to its competitors.  This is a matter of public record.
See HP's press statements.

Standards are intended to hold back progress so everyone can make common
use of an established technology.  Everyone knows why a standard is useful.
But it is extremely dangerous to the technical vitality of an industry
to rush into a standard before the technology has had time to settle.

The technological base has not been laid for a single standard in the laser
printing industry.  There is no full function printer for either DDL,
Postscript, or Interpress in the 100 page per minute range (the Xerox 9700
is the closest thing, and it is not close to supporting full Interpress 3.0).
There has been insufficient experience to establish the applicability
of these languages to "specialty" functions such as wide-bed plotters,
CAE type drawings, color engines, high-speed phototypesetters (ask about
the speed of the Linotype postscript machine), and so on.  Furthermore,
the largest computer manufacturer has yet to decide on a high-functionality
language.  Does Boeing or GE or even Apple really believe that they can get
away with a description language which is NOT the one supported by IBM?

In this context, IMAGEN has developed DDL, a language which extends the
technical frontiers of the laser printing industry.  I admit that business
considerations (royalties, visibility, ability to manufactur) have played
a part in our work.  This is the normal manner of operating a business.
But do not begrudge us our intellectual integrity for spoiling the plans
of a few stodgy companies who have been mislead by marketing hype in
advertisements and trade journals.

- Geof Cooper
  Employee and Stockholder
  IMAGEN Corporation
  (speaking as an individual, not as a representative of IMAGEN Corporation)

                     SUMMARY DESCRIPTION OF DDL
                     ==========================

DDL is a programmable stack-oriented postfix language.  It provides for
a binary encoding that is extensible to textual input: a single unique
encoding of the language permits both dense binary specification, and
readable, easy to transmit, textual representations.  Variables (local
and global) exist; they may be referenced numerically or assigned textual
names.  The language has all the "usual" operators and transformations
that one sees in Interpress and Postscript.  DDL's approach is for a
minimal set of primitives that allows for the definition of derived
functions in DDL itself.  For example, transformations are specified only
as full matrices.  Commands such as "rotate" or "scale" can be provided
in DDL through use of DDL procedures defined in include files or as part
of the document itself.

A DDL document is divided into a preamble, some number of sections, and
a layout portion.  The sections may contain one or more "pages," ("images"
really, see below) but sections are independent of one another.  An
interpreter may elect to process sections in any order, or in parallel.

A DDL program does not directly generate "pages."  Instead, the
program generates "images."  The layout portion of a DDL program allows
for the arbitrary mapping of images to paper.  Images may also be
linearly scaled to accomodate different layouts.  This feature is unique
to DDL and extremely useful and powerful.  It allows for the trivial
processing of single- or multi-page forms.  It allows user programs to
easily paste pictures into documents.  It allows for a simple change
to the DDL program to generate two-up, or even signature format
[signature format = four images on a page, such that when the document
is folded half, it reads as a booklet.  Think about the order in which
pages are printed].

DDL allows for user selection of both linear and nonlinear scaling of fonts.
It is the only description language with this capability.

A DDL document is "targeted" for a particular resolution.  If the
resolution of the printer used matches the target resolution, then
bit-for-bit accuracy is guaranteed by the language.  Otherwise, the
interpreter scales appropriately to the printer's resolution.  DDL is
the only device independent description language that allows bit-tuning.

DDL's imaging model allows for opaque or transparent "colors."  Filling
is provided for both non-zero winding number and parity fill.

DDL provides for the definition of "graphical objects", which are well
defined data structures that define a complex object.  Graphical objects
are recursive.  A graphical object is recognized by the interpreter and
precompiled, so it is enourmously more efficent to use than a procedure
that generates the same output (DDL would allow you to use a procedure
if you really wanted to).  Imaging of characters is a common usage of
graphical objects.

DDL supports imaging of tiled textures, gray-level images, and color.