groff
[Top][All Lists]
Advanced

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

[Groff] Mission statement


From: Peter Schaffter
Subject: [Groff] Mission statement
Date: Fri, 14 Mar 2014 16:59:58 -0400
User-agent: Mutt/1.5.21 (2010-09-15)

Here's a draft for a mission statement, based on discussions over
the past few months.  Comments, please.

====================================================================

GROFF MISSION STATEMENT (2014)

Groff holds an important place in the GNU universe.  Its ancestry,
through nroff and troff, is inextricably linked with the development
of Unix itself.  A strong record of backward compatibility stands
in tribute to the program's original design and as proof of Unix
principles in general.

First conceived to format technical documentation, troff and its
GNU successor, groff, evolved past the initial mandate into a
sophisticated typesetting system with the advantages of small
size, portability, and speed relative to other players in the Unix
typesetting field.

Groff's lineage and its niche use as a manpage formatter have
saddled it with a reputation for being a legacy tool of limited
application.  In fact, its extensive typesetting requests and macro
language are routinely used to generate PostScript and PDF documents
of all kinds, from simple correspondence to complex, technical
reports and plate-ready books.

Continuing development of groff will focus on these areas: the
backend, low-level typesetting functions (requests), manpages,
and the build system.  In addition, some easing of historical
restrictions and the extension of available programming constructs
are being considered.

Backend

- implementation of the Knuth-Plass linebreaking algorithm with
  paragraph-at-once formatting; groff currently implements
  line-at-a-time

Requests

- implementation of additional requests to extend typographic
  control

- modification of some existing requests, where deemed significantly
  advantageous, to sane-ify their behaviour; if alterations risk
  breaking existing documents, the addition of new, similarly- but
  uniquely-named requests incorporating the changes

Manpages

- improve the semantic usefulness of manpage markup; groff currently
  formats manpages for TTYs and PostScript from largely
  presentational markup, however increased use of browsers
  necessitates parsing source files for semantic markup in order to
  simplify their conversion to presentationally-indifferent xml
  
The build system

- streamline the build system to improve flexibility and portability

Easing of historical restrictions/programming constructs

- real number arithmetic to replace current integer arithmetic

- operator precedence to replace current linear evaluation of
  expressions

- addition of programming constructs that are currently unavailable,
  e.g. arrays and case statements

Backward compatibility will remain a top priority, as will avoiding
feature-bloat and increased overheads.  Groff's viability and
vitality rest as much on these as on forward-looking development.

Finally, it is hoped that users of and contributors to groff will
promote its use, providing unobtrusive advocacy to encourage more
widespread adoption of the program, thereby increasing the pool of
potential contributors and developers.

====================================================================

I'm iffy about specifying full conversion to automake for the build
system since that's still under discussion.  If groff goes that
route, stating it explicitly in the mission statement will be
helpful.

-- 
Peter Schaffter
http://www.schaffter.ca



reply via email to

[Prev in Thread] Current Thread [Next in Thread]