On Mon, Jul 22, 2013 at 5:10 PM, Joseph Wright
<[log in to unmask]> wrote:
> I was thinking more that if we look at other languages there are a
> limited number of data types, and for specialist applications you still
> have to use whatever 'base' types are available. Now, we of course
> really only have macros and TeX's build-in registers
Well... TeX is kind of unique in that it pretty much allows you to
completely redefine the language from the inside. Any datastructure
you don't have, you can add. And it will look as if it is native.
> I've no real experience of other languages, though, so perhaps I miss
> something. What does one do in say C if the data structures available
> are not suitable? (I didn't think you could even add keywords in most
> languages, so adding data types seems tricky.)
C is quite old, but even C allows the creation of new datastructures
and control-flow constructs. New keywords can be added with
preprocessor directives (which are very close to TeX command
sequences, actually; both are often referred to as macros).
What C lacks is encapsulation. Like LaTeX, it has to rely on goodwill
and convention to prevent conflicts. C++ fixed this (somewhat).
> [BTW, I'd hope expl3 is used for 'typesetting', broadly :-) Bruno may
> want to pilot the Mars rover in TeX, but ...]
TeX is Turing Complete. If you won't exploit it, someone else will.
Enhanced programming tools help us to build packages that ultimately
make life easier for authors. Below that level, treating TeX like a
general purpose language makes a lot of sense. Isn't that why you guys
are creating expl3 in the first place, and why dialects like LuaTeX