X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil] ["2844" "Fri" "11" "February" "1994" "12:20:39" "+0100" "Joachim Schrod" "schrod@iti.informatik.th-darmstadt.de" "<199402111122.AA20401@mail.cs.tu-berlin.de>" "62" "Re: On compatibility in LaTeX2e [was: Re: keyed options lis" "^Date:" nil nil "2" "1994021111:20:39" "On compatibility in LaTeX2e [was: Re: keyed options lis" nil "<199402110936.KAA02421@hp5.iti.informatik.th-darmstadt.de>"]) Return-Path: Received: from sc.ZIB-Berlin.DE (mailserv) by dagobert.ZIB-Berlin.DE (4.1/SMI-4.0/24.6.93) id AA21165; Fri, 11 Feb 94 12:22:53 +0100 Received: from mail.cs.tu-berlin.de by sc.ZIB-Berlin.DE (4.1/SMI-4.0-sc/03.06.93) id AA07151; Fri, 11 Feb 94 12:22:42 +0100 Received: from tubvm.cs.tu-berlin.de by mail.cs.tu-berlin.de with SMTP id AA20401 (5.65c8/IDA-1.4.4(mail.m4[1.12]) for <@MAIL.CS.TU-BERLIN.DE:Schoepf@SC.ZIB-BERLIN.DE>); Fri, 11 Feb 1994 12:22:39 +0100 Message-Id: <199402111122.AA20401@mail.cs.tu-berlin.de> Received: from TUBVM.CS.TU-BERLIN.DE by tubvm.cs.tu-berlin.de (IBM VM SMTP V2R2) with BSMTP id 2232; Fri, 11 Feb 94 12:22:25 +0200 Received: from VM.URZ.UNI-HEIDELBERG.DE (NJE origin MAILER@DHDURZ1) by TUBVM.CS.TU-BERLIN.DE (LMail V1.2a/1.8a) with BSMTP id 2229; Fri, 11 Feb 1994 12:22:25 +0200 Received: from VM.URZ.UNI-HEIDELBERG.DE (NJE origin LISTSERV@DHDURZ1) by VM.URZ.UNI-HEIDELBERG.DE (LMail V1.2a/1.8a) with BSMTP id 3403; Fri, 11 Feb 1994 12:21:46 +0000 Reply-To: Mailing list for the LaTeX3 project In-Reply-To: <199402110936.KAA02421@hp5.iti.informatik.th-darmstadt.de> from "Mike Piff" at Feb 11, 94 09:27:43 am Date: Fri, 11 Feb 1994 12:20:39 +0100 From: Joachim Schrod Sender: Mailing list for the LaTeX3 project To: Multiple recipients of list LATEX-L Subject: Re: On compatibility in LaTeX2e [was: Re: keyed options lis Status: R X-Status: X-Keywords: X-UID: 1538 (Yesterday, I promised myself not to react to Mike Piff any more -- but his statements are *******. Below is a general comment I hope you find of interest, it is _not_ a reply to the mail, it was simply triggered by its contents.) He wrote: > > But the implication is that you are actively encouraging users to convert > their styles to clopages. It might be an implication for the LaTeX team -- for my work it will be explicitely. I.e.: I'll be the moderator for the to-be-established contrib/supported area on CTAN. The guidelines state that new modules _must_ be usable either as a class or as a package. Modules that can _only_ be used in compatibility mode will *not* be added. > With hard-wired limited options? (Such questions make clear that the writer either didn't read the replies to his mails or that he didn't understand them.) Options are the means to _configure_ a module, they are by definition from a fixed set. (Def: `To configure s.th.' is the action to choose a feature from a predefined, and therefore limited, set of possibilities.) So the clause `hard-wired limited option' is a double oxymoron, every hard-wired thing has limitations, and every option is of course hard-wired. _Extensions_, i.e., introducing new features, is done by packages, not by options. They are the tool to use if one does not want `hard-wired things'. (One should not try to use a hammer if one wants to fix a screw, a screwdriver might be the better tool then...) In CS, the difference between _configuration_ and _extension_ is well known since decades. (_Configuration_ is sometimes also called _customization_.) To a larger (non-CS) public the difference was brought to attention in 1981, when RMS wrote about Emacs: "Extensible" means you can go beyond simple customization and write entirely new commands, programs in the Lisp language to be run by Emacs's own Lisp interpreter. Emacs is an "on-line extensible" system: it is divided into many functions that call each other. You can redefine any function in the middle of an editing session and replace any part of Emacs without making a separate copy of all of Emacs. [...] Only a programmer can write an extension to Emacs, but anybody can use it afterward. [Info node: emacs(Intro)] If one replaces `Emacs' by `TeX', `Lisp' by `macro', and `function' by `package', one has a description of (La)TeX. Joachim PS: That has nothing to do with the actual concept of classes and packages, it's a general principle we find in all kind of systems. -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Joachim Schrod Email: schrod@iti.informatik.th-darmstadt.de Computer Science Department Technical University of Darmstadt, Germany