ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Giuseppe Bilotta <bourbaki@bigfoot.com>
Cc: ntg-context@ntg.nl
Subject: Re: Modules
Date: Fri, 18 Jan 2002 19:30:25 +0100	[thread overview]
Message-ID: <1078514762.20020118193025@bigfoot.com> (raw)
In-Reply-To: <20020117215748.GA762@localhost>

Thursday, January 17, 2002 Marco Kuhlmann wrote:

MK> However, I wonder if not ConTeXt needs some of that LaTeX
MK> feeling. In LaTeX, when you miss a feature, you know that there
MK> is a package out there that implements it. In ConTeXt, you ask
MK> Hans et al. Why are there so few modules?

MK> It may of course be due to the relatively small number of
MK> users.

I think this is the main reason.

MK> However, one important reason in my opinion is the lack
MK> of a well-defined module interface. How should modules be
MK> designed? Is there a standard library of functions that they
MK> could or should use?

I use pre-existent core and add-on modules to get the ideas for
mine. Much of my knowledge of ConTeXt internal comes from studying
the sources (of course, if Hans used English instead of Dutch, it
would ease my work a lot ;-> but he's working along this path).

MK> If I wrote a new module, how would I
MK> distribute it (for LaTeX, I would use CTAN)?

I suppose you could put it on CTAN as well. Maybe CTAN should have
a /third-party/<contributor name> set of directories under the
context branch. And of course you could ask Hans to host it.

MK> What I propose it that we should think about going public.
MK> ConTeXt has so much to offer, it should become more widely
MK> used. A promising way to achieve this is to get more and more
MK> people involved in enhancing and documenting it.

How would you propose to do this? I've seen some new people
posting about ConTeXt in the comp.text.tex newsgroup, but most
ConTeXt question are put here (which sort of excludes us from the
rest of the TeX community). Maybe Hans and the other experts could
monitor those newsgroup, filtering out all messages which don't
contain ConTeXt in the subject.

Yet for ConTeXt to become widely used it would need to be at least
on par with LaTeX, which it is currently not (e.g. I have to stick
to LaTeX when doing heavy mathematics): when people would have to choose
between ConTeXt and LaTeX they would go for the one which would
present them less problems. ConTeXt has some very strong points,
but they may not be the ones seeked by the users.

MK> That does not
MK> say, of course, that base ConTeXt could and should not remain
MK> in the hands of PRAGMA. But an active community of developers
MK> working on extensions to the core is a good thing. And if it is
MK> well organised, it does not have to threaten the integrity of
MK> the system as a whole.

There are two things I don't like about the LaTeX packages:

(1) their clashing with each other: this usually happens when two
packages change the same LaTeX internal (LaTeX internals often
don't offer hooks to the developers, which is pretty strange IMO
considering how many LaTeX 'extenders' are there).

We can prevent this in ConTeXt by requiring that no public module
hacks any core command: if someone needs to extend a core command,
he should ask Hans to provide a hook for the extensions.

(2) different packages achieving the same result in different
ways: this is harder to deal with because the LaTeX situation
comes from the fact that different people have different ideas on
what should be achieved and why.

We should then require that if an existing module with the same
functionality is already provided, no new module should be
implemented: if someone desires to change something, (s)he would
provide a patch to the original module. Or something of the sort.

Of course this would only hold for "public" modules.

Another thing developers would need is a module interface to
TeXUtil: when a ConTeXt module requires some particular
postprocessing, it should provide a Perl module to be loaded by
TeXUtil.

Extensions to TeXUtil should be "registered" so that the .tui file
can contain hooks to modules in the form

x <id> <data>

where x stands for extension and <id> is a code registered by a
module. TeXUtil would then call whatever appropriate routine is
defined in the module hooking on extension <id> and pass <data> as
the parameters.

This is needed for example by a module of mine (x-desc), but could
be needed by the bibliography module if we want to get rid of the
bibtex executable (we could reimplement bibtex in Perl in a module
called m-bib.pl so that when someone uses Taco's m-bib.tex module
TeXUtil would also load the Perl bib module to deal with the
bibliography data.)

--
Giuseppe "Oblomov" Bilotta


  reply	other threads:[~2002-01-18 18:30 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-01-17 21:57 Modules Marco Kuhlmann
2002-01-18 18:30 ` Giuseppe Bilotta [this message]
2002-01-19 23:20   ` Modules Hans Hagen
2002-01-21 10:13     ` Modules Taco Hoekwater
2002-01-21 14:31       ` Re[2]: Modules Giuseppe Bilotta
2002-01-21 18:07         ` Berend de Boer
2002-01-22  9:38           ` Re[4]: Modules Giuseppe Bilotta
2002-01-21 14:47       ` Modules Hans Hagen
2002-01-22  9:10         ` Modules Taco Hoekwater
2002-01-22 11:03       ` Modules Eckhart Guthöhrlein
2002-01-19 18:07 ` Modules Berend de Boer
2002-01-19 18:17   ` Modules Marco Kuhlmann
2002-01-20 16:03     ` Re[2]: Modules Giuseppe Bilotta
2002-01-20 22:04     ` Modules Hans Hagen
2002-01-20 21:57   ` Modules Hans Hagen
2002-01-20 20:05 ` Modules Hans Hagen
2006-04-04  8:02 modules Hans Hagen
2006-08-08 23:33 ` modules Nikolai Weibull
2006-08-09  1:53   ` modules Sanjoy Mahajan
2006-08-09  7:08   ` modules Taco Hoekwater
2006-08-09  8:38     ` modules Nikolai Weibull
2006-08-09 10:16       ` modules Hans Hagen
2006-08-09 10:21       ` modules Taco Hoekwater
2006-08-09 11:57         ` modules Nikolai Weibull
2006-08-09 12:07           ` modules Taco Hoekwater
2006-08-09 12:28             ` modules Nikolai Weibull
2006-08-10 14:06               ` modules Patrick Gundlach
2008-08-06  8:37 modules luigi scarso

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1078514762.20020118193025@bigfoot.com \
    --to=bourbaki@bigfoot.com \
    --cc=ntg-context@ntg.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).