X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil] ["2341" "Wed" "8" "December" "1999" "19:14:53" "+0100" "Hans Aberg" "haberg@MATEMATIK.SU.SE" nil "43" "Re: Classes -- a generalization of templates" "^Date:" nil nil "12" nil "Classes -- a generalization of templates" nil nil nil] nil) Return-Path: Received: via tmail-4.1(11) (invoked by user schoepf) for schoepf; Wed, 8 Dec 1999 19:30:30 +0100 (MET) Received: from mail.Uni-Mainz.DE (trudi.zdv.Uni-Mainz.DE [134.93.8.159]) by mailserver1.zdv.Uni-Mainz.DE (8.9.1b+Sun/8.9.1) with ESMTP id TAA14904 for ; Wed, 8 Dec 1999 19:30:30 +0100 (MET) Received: from mail.listserv.gmd.de (mail.listserv.gmd.de [192.88.97.5]) by mail.Uni-Mainz.DE (8.9.3/8.9.3) with ESMTP id TAA07536 for ; Wed, 8 Dec 1999 19:30:27 +0100 (MET) Received: from mail.listserv.gmd.de (192.88.97.5) by mail.listserv.gmd.de (LSMTP for OpenVMS v1.1a) with SMTP id <5.21A80B33@mail.listserv.gmd.de>; Wed, 8 Dec 1999 19:30:21 +0100 Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 445984 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 8 Dec 1999 19:29:06 +0100 Received: from relay.uni-heidelberg.de (relay.uni-heidelberg.de [129.206.100.212]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id TAA08121 for ; Wed, 8 Dec 1999 19:15:20 +0100 (MET) Received: from musse.tninet.se (musse.tninet.se [195.100.94.12]) by relay.uni-heidelberg.de (8.9.1b+Sun/8.9.1) with SMTP id TAA20597 for ; Wed, 8 Dec 1999 19:15:33 +0100 (MET) Received: (qmail 6911 invoked from network); 8 Dec 1999 19:15:42 +0100 Received: from du167-226.ppp.su-anst.tninet.se (HELO ?195.100.226.167?) (195.100.226.167) by musse.tninet.se with SMTP; 8 Dec 1999 19:15:42 +0100 X-Sender: haberg@pop.matematik.su.se References: <14413.33805.485658.811893@Wincenty.nowhere.edu.pl> <417f4014@corona.oche.de> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by relay.urz.uni-heidelberg.de id TAA08150 Message-ID: Reply-To: Mailing list for the LaTeX3 project In-Reply-To: Date: Wed, 8 Dec 1999 19:14:53 +0100 From: Hans Aberg Sender: Mailing list for the LaTeX3 project To: Multiple recipients of list LATEX-L Subject: Re: Classes -- a generalization of templates Status: R X-Status: X-Keywords: X-UID: 3451 At 17:10 +0100 1999/12/08, Lars Hellström wrote: >>With much of the development of computer languages, there is the idea that >>the user should be forced to program in certain ways. >> >>TeX does not have such a mechanism that could put restraints of usage in >>say LaTeX. It would be great if TeX had such a capacity, but there is no >>point in taking up that aspect with TeX as it now is. > >At the risk of sounding like I would want to expel you Hans, I would like >to say that it seems to me that your energy would be better spent on >writing an alternative TeX front end within the framework of the NTS >project. :-) Not only is the creation of a completely new front end the >natural framework for introducing such ideas as lambda calculus and >probably also a more throrough implementation of namespaces, but it is also >the case that the modularity that the NTS project strive to achieve is most >likely helped if there are complete alternatives to each module. >Considering your predilection for OOP, it seems to me that you should find >the NTS project nice; as I understand it, they do OOP throughout. My guess is that when NFS arrives and becomes a standard replacing TeX, then the stuff developed within LaTeX can be done in a way that the input syntax is checked. (I am no longer on the NTS list I think, because I did not get any mail there for a long time.) But my guess is that LaTeX will need to make use of such ideas before that. Then one does ``objects'' which are simply not checked by TeX, but which has the capacity of carrying some of the structure that one wants to describe -- such as names localized into various kinds of namespaces (like classes) and programming with respect to interfaces. As for myself, I already decided to make my own computer program of a runtime model which understands lambda calculus. So I do not need any computer language in order to express my ideas (other than the language it is written in, currently C++). It is possible to download ideas from this runtime model to other contexts: For example, the idea with typed TeX ``objects'' comes from my model rather than from C++. If one uses dynamic objects, then the object which is considered the constructor of an object x can be identified with the (static) type of x. (Perhaps this idea is prevalent in Object C.) Hans Aberg