1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
% \enablemode[paper]
\usemodule[present-stepwise,present-wobbling,abr-02]
\setuppapersize[S6][S6] \setupbodyfont[11pt] \def\METAPOST{MetaPost}
% \definecolor[maincolor] [red]
% \definecolor[extracolor][blue]
\definecolor[maincolor] [green]
\definecolor[extracolor][red]
% \StartText{...}{...}
\startdocument
[title={Hybrids: \crlf the evolution of \CONTEXT},
topic={Bacho\TEX, May 3, 2010}]
\StartItems{How you code your documents}
\StartItem
Coding in \TEX\ is quite natural and given a proper macro set
the overhead is not that large.
\StopItem
\StartItem
Coding in \XML\ makes sense when you have to manipulate or reuse
your data and when \TEX\ is just the renderer.
\StopItem
\StartItem
For non|-|artistic graphics \METAPOST\ provides a convenient input
language. It also plays well with \TEX.
\StopItem
\StartItem
Some problems can more conveniently be solved in a procedural programming
language and \LUA\ perfectly fits in there.
\StopItem
\StopItems
\StartItems{How the codebase evolves}
\StartItem
Of course we started with only \TEX\ code. Functionality has been nicely
split in modules
\StopItem
\StartItem
Front- and backend code has always been separated.
\StopItem
\StartItem
The user interface is quite consistent which provides backward compatibility
as well extensibility.
\StopItem
\StartItem
For quite some time \METAPOST\ support has been tightly integrated, including
a two way communication between these subsystems.
\StopItem
\StartItem
When we decided on \LUA\ as language it didn't take long before large chunks of
\CONTEXT\ were rewritten using it.
\StopItem
\StopItems
\StartItems{How the codebase evolves}
\StartItem
Most font handling takes place in \LUA\ and as usual with \TEX\ we can do more
than fonts provide.
\StopItem
\StartItem
Other subsystems, like languages, input encoding, file io and xml also were among
the first to be supported by \LUA.
\StopItem
\StartItem
Lots of information is now carried around, especially related to structure. This will
permit users more freedom.
\StopItem
\StartItem
Notes, descriptions and enumerations also rely on \LUA.
\StopItem
\StartItem
Graphics (including \METAPOST) is all dealt with in \LUA. Float management is currently
on the agenda.
\StopItem
\StartItem
The backend code is completely rewritten in \LUA. We've disabled the low level primitives
so that third party modules can not spoil the game (this was already the case in \MKII).
\StopItem
\StartItem
Eventually most management tasks will move from \TEX\ to \LUA, but we keep in pace with
\LUATEX\ development and don't push things to the limit.
\StopItem
\StopItems
\StartItems{where we will end up}
\StartItem
Eventually we will have a more layered macro package so that one can make specialized
versions.
\StopItem
\StartItem
In addition to the regular \TEX\ interface there will be a \LUA\ interface. We already have
one such interface but there will be more.
\StopItem
\StartItem
It will be possible to avoid \TEX\ code completely which makes sense in predictable
workflows where no artistic intervening is needed.
\StopItem
\StartItem
Core \TEX\ functionality will also be available as (often less efficient) \LUA\ variant
so that we can extend it. We already provide hooks into the callback subsystem.
\StopItem
\StartItem
We can already all of this intermixed so the user has complete freedom of choice.
\StopItem
\StopItems
\stopdocument
% \StopText
|