% language=us \startcomponent onandon-decade \environment onandon-environment \startchapter[title=The first decade] When writing this it's hard to believe that we're already a decade working on \LUATEX\ and about the same time on \MKIV. The question is, did we achieve the objectives? The answer can easily be \quotation {yes} because we didn't start with objectives, just with some experiments with a \LUA\ extension interface. However, it quickly became clear that this was the way to go. Already in an early stage we took a stand in what direction we had to move. How did we end up with \LUA\ and not one of the other popular scripting languages? The \CONTEXT\ macro package always came with a runner. Not only did the runner manage the (often) multiple runs, it also took care of sorting the index and other inter|-|job activities. Additional helpers were written for installing fonts, managing (and converting) images, job control, etc. First they were binaries (written in \MODULA\ 2), but successive implementations used \PERL\ and \RUBY. When I found out that the \SCITE\ editor I switched to had an extension mechanism using \LUA, I immediately liked that language. It's clean, not bloated, relatively stable, evolves in an academic environment and is not driven by commerce and|/|or short term success, and above all, the syntax makes the code look good. So, it was the most natural candidate for extending \TEX. Already for along time, \TEX\ is a stable program and whatever we do with it, we should not break it. There has been frontend extensions, like \ETEX, and backend extensions, like \PDFTEX, and experiments like \OMEGA\ and \ALEPH\ and we could start from there. So, basically we took \PDFTEX, after all, that was what we used for the first experiments, and merged some \ALEPH\ directional code in it. A tremendous effort was undertaken (thanks to funding by the Oriental \TEX\ project) to convert the code base from \PASCAL\ to~\CCODE. It is hard to get an agreement over what needs to be added and it's a real waste of time to enter that route by endless discussions: every \TEX\ user has different demands and macro packages differ in philosophy . So, in the spirit of the extension language \LUA\ we stuck to concept of \quotation {If you want it better, write it in \LUA}. As a consequence we had to provide access to the internals with efficient and convenient methods, something that happened stepwise. We did extend the engine with a few features that make live easier but tried to limit ourselves. On the other hand, due to developments with fonts and languages we generalized these concepts so that extending and controlling them is easier. And, due to developments in math font technology we also added alternative code paths to the math renderer. All these matters have been presented and discussed at meetings, in user group journals and in documents that are part of the \CONTEXT\ suite. And during this decade the \CONTEXT\ users have been patient testers of whatever we threw at them in the \MKIV\ version of this macro package. It's kind of interesting to note that in the \TEX\ community it takes a while before version 1 of programs becomes available. Some programs never (seem to) reach that state. However, for us version 1.0 marks the moment that we consider the interfaces to be stable. Of course we move on so a version 2.0 can divert and provide more or even less interfaces, provide new functionality or drop obsolete features. The intermediate versions (up to version one) were always quite useable in production. In 2005 the first prototype of \LUATEX\ was demonstrated at the \TUG\ conference, and in 2007 at the \TUG\ conference we had a whole day on \LUATEX. At that time \CONTEXT\ \MKIV\ evolved fast and we already had decent \OPENTYPE\ support as part of the oriental \TEX\ project. It was in those years that the major reorganization of the code base took place but in successive years many subsystems were opened and cleaned up. There were some occasions where an interface was changed for the better but adapting was not that hard. It might have helped that much of \CONTEXT\ \MKIV\ is written in \LUA. What also helped is that most \CONTEXT\ users quickly switched to \MKIV, if only because \MKII\ was frozen. And, thanks to those users, we were able to root out bugs and bottlenecks. It was interesting to see that the approach of mixing \TEX, \METAPOST\ and \LUA\ catched on quite well. By the end of September 2016, at the 10\high{th} \CONTEXT\ meeting we released what we call the first long term stable version of \LUATEX. This version performs quite well but we might still add a few things here and there and the code will be further cleaned up and documented. In the meantime \LUATEX\ is also used in other macro packages. It will not replace \PDFTEX\ (at least not soon) because that engine does the job for most of the publications done in \TEX: articles. As they are mostly in English and use traditional fonts, there is no need to switch to the more flexible but somewhat slower \LUATEX. In a similar fashion \XETEX\ serves those who want the benefits of \PDFTEX, hard|-|coded font support and token juggling at the \TEX\ level. We will support those engines with \MKII\ but as mentioned, we will not develop new code for. We strongly advice \CONTEXT\ users to use \LUATEX\ but there the advertisements stop. Personally I haven't used \PDFTEX\ (which made \TEX\ survive in the evolving world of electronic documents) for a decade and I never really used \XETEX\ (which opened up the \TEX\ world to modern fonts). At least for the coming decade I hope that \LUATEX\ can serve us well. \stopchapter \stopcomponent