On 16 May 2016, at 01:00, Hans Hagen
wrote: On 5/15/2016 11:55 PM, Hans Åberg wrote:
On 15 May 2016, at 23:18, Hans Hagen
wrote: but eventually typesetting will become a niche and end up in the arts but i will probably not live long enough to see that happen
From the point of computer language design, TeX is not very good. One of the pitfalls of macro programming is that it gives the impression of lambda calculus efficiency without having it so one ends up spending a lot of time figuring out trivialities, which is why eventually was added, I gather.
it's not that bad .. the tex language has a certain charm that one needs to get accustomed to (as does metapost) ... and, combined with lua it's even more fun
Ideally, there should have been only one language with lambda capacity, and better syntax, though it is a problem figuring out what it might be.
just look at how many programming languages are there and will be there (no surprise with billions of people and taste)
you see the same with markup languages: people want simple, then need more and so simple becomes more and when not well thought about beforehand simple then becomes ugly and it all starts anew
Indeed computer tend to have natural life cycles, after they have matured, further development becomes difficult.
interesting tex was flexible enough to survive many decades
Other survivors are C, C++, Scheme. With TeX, change may start as with Lua, only some better syntax for text input. I experimented a bit with giving Guile a C++ API, and then then there is a problem with that that C++ is statically typed whereas Guile is dynamic. For example, Guile does not distinguish statically between different types of numbers: integers, rationals, etc, so the proper way from the point of C++ is to only have open number type. But static typing is important in optimization. And giving implement traditional function syntax on top of Guile does not work well, because (f, x_1, …, x_k) does not correspond semantically exactly to f(x_1, …, x_n). And there is a problem with the Scheme strict evaluation. So such issues lead towards to the design of a new language, rather than relying on an already existing.