% language=us runpath=texruns:manuals/musings \startcomponent musings-whytex \environment musings-style \startchapter[title={Why use \TEX ?}] \startlines \setupalign[flushright] Hans Hagen Hasselt NL July 2021 (public 2023) \stoplines \startsection[title={Introduction}] Let's assume that you know what \TEX\ is: a program that interprets a language with the same name that makes it possible to convert (tagged) input into for instance \PDF. For many of its users it is a black box: you key in some text, hit a button and get some typeset result in return. After a while you start tweaking this black box, meet other users (on the web), become more fluent and stick to it forever. But now let's assume that you don't know \TEX\ and are in search of a system that helps you create beautiful documents in an efficient way. When your documents have a complex structure you are probably willing to spend some time on figuring out what the best tool is. Even if a search lets you end up with something called \TEX, a three letter word with a dropped E, you still don't know what it is. It helps to search for \type {\TeX} which is pronounced as \type {tech}. Advertisement for \TEX\ is often pretty weak. It's rather easy to point to the numerous documents that can be found on the web. But what exactly does \TEX\ do and what are its benefits? In order to answer this we need to know who you are: an author, editor, an organization that deals with documents or needs to generate readable output, like publishers do. \stopsection \startsection[title={Authors}] We start with authors. Students of sciences that use mathematics don't have much of a choice. But most of these documents hardly communicate the message that \quotation {Everyone should use \TEX.} or that \quotation {All documents produced by \TEX\ look great.} but they do advocate that for rendering math it is a pretty good system. The source code of these documents often look rather messy and unattractive and for a non|-|math user it can be intimidating. Choosing some lightweight click|-|and|-|ping alternative looks attractive. Making \TEX\ popular is not going to happen by convincing those who have to write an occasional letter or report. They should just use whatever suits them. On the other hand if you love consistency, long term support, need math, are dealing with a rare language or script, like to reuse content, prefer different styling from one source, use one source for multiple documents, or maybe love open source tools, then you are a candidate. Of course there is a learning curve but normally you can master \TEX\ rather fast and once you get the hang of it there's often no way back. But you always need to invest a bit beforehand. So what authors are candidates for \TEX ? It could be that \TEX\ is the only tool that does the job. If so, you probably learned that from someone who saw you struggle or had the same experience and wrote or talked about it somewhere. In that case using \TEX\ for creating just one document (like a thesis) makes sense. Otherwise, you should really wonder if you want to invest time in a tool that you probably have to ditch later on as most organizations stick to standard (commercial) word processing tools. Talking to customers we are often surprised that people have heard about \TEX, or even used it for a few documents in college. Some universities just prescribe the use of \TEX\ for reporting, so not much of a choice there. Memories are normally rather positive in the sense that they know that it can do the job and that it's flexible. User group journals, presentations at \TEX\ meetings, journals, books and manuals that come with \TEX\ macro packages can all be used to determine if this tool suits an author. Actually, I started using \TEX\ because the original \TEX book had some magic, and reading it was just that: reading it, as I had no running implementation. A few years later, when I had to write (evolving) reports, I picked up again. But I'm not a typical user. \stopsection \startsection[title={Programmers}] When you are a programmer who has to generate reports, for instance in \PDF, or write manuals, then \TEX\ can really be beneficial. Of course \TEX\ is not always an obvious choice, but if you're a bit able to use it it's hard to beat in quality, flexibility and efficiency. I'm often surprised that companies are willing to pay a fortune for functionality that basically comes for free. Programmers are accustomed to running commands and working in a code editor with syntax highlighting so that helps too. They also recognize when something can be done more efficiently. When you need to go from some kind of input (document source, database, generated) to some rendered output there currently are a few endpoints: a (dynamic) \HTML\ page, a \PDF\ document, something useable in a word processor, or a representation using the desktop user interface. It's the second category where \TEX\ is hard to beat but even using \TEX\ and \METAPOST\ for creating a chart can make sense. There are of course special cases where \TEX\ fits in nicely. Say that you have to combine \PDF\ documents. There are numerous tools to do that and \TEX\ is one. The advantage of \TEX\ over other tools is that it's trivial to add additional text, number pages, provide headers and footers. And it will work forever. Why? Because \TEX\ has been around for decades and will be around for decades to come. It's an independent component. The problem with choosing for \TEX\ is that the starting point is important. The question is not \quotation {What tool should I use?} but \quotation {What problem do I need to solve?}. An open discussion about the objectives and possibilities is needed, not some checklist based on assumptions. If you don't know \TEX\ and have never worked with a programmable typesetting environment, you probably don't see the possibilities. In fact, you might even choose for \TEX\ for the wrong reasons. The problem with this category of users is that they seldom have the freedom to choose their tools. There are not that many jobs where the management is able to recognize the clever programmer who can determine that \TEX\ is suitable for a lot of jobs and can save money and time. Even the long term availability and support is not an argument since not only most tools (or even apis) changes every few years but also organizations themselves change ownership, objectives, and personnel on a whim. The concept of \quote {long term} is hard to grasp for most people (just look at politics) and it's only in retrospect that one can say \quote {We used that toolkit for over a decade.} \stopsection \startsection[title={Organizations}] Authors (often) have the advantage that they can choose themselves: they can use what they like. In practice any decent programmer is able to find the suitable tools but convincing the management to use one of them can be a challenge. Here we're also talking of \quote {comfort zones}: you have to like a tool(chain). Organizations normally don't look for \TEX. Special departments are responsible for choosing and negotiating whatever is used in a company. Unfortunately companies don't always start from the open question \quotation {We have this problem, we want to go there, what should we do?} and then discuss options with for instance those who know \TEX. Instead requirements are formulated and matches are found. The question then is \quotation {Are these requirements cut in stone?} and if not (read: we just omit some requirements when most alternatives don't meet them), were other requirements forgotten? Therefore organizations can end up with the wrong choice (using \TEX\ in a situation where it makes no sense) or don't see opportunities (not using \TEX\ while it makes most sense). It doesn't help that a hybrid solution (use a mix of \TEX\ and other tools) is often not an option. Where an author can just stop using a tool after a few days of disappointment, and where a programmer can play around a bit before making a choice, an organization probably best can start small with a proof of concept. Let's take a use case. A publisher wants to automatically convert \XML\ files into \PDF. One product can come from multiple sources (we have cases where thousands of small \XML\ files combine into one final product). Say that we have three different layouts: a theory book, a teachers manual and an answer book. In addition special proofing documents have to be rendered. The products might be produced on demand with different topics in any combination. There is at least one image and table per page, but there can be more. There are color and backgrounds used, tables of contents generated, there is extensive cross referencing and an index. Of course there is math. Now let's assume an initial setup costs 20K Euro and, what happens often when the real products show up, a revision after one year takes the same amount. We also assume 10K for the following eight years for support. So, we end up with 120K over 10 years. If one goes cheap we can consider half of that, or we can be pessimistic and double the amount. The first year 10K pages are produced, the second year 20K and after that 30K per year. So, we're talking of 270K pages. If we include customer specific documents and proofing we might as well end up with a multiple of that. So, we have 120K Euro divided by 270K pages or about half an Euro per page. But likely we have more pages so it costs less. If we double the costs then we can assume that some major changes took place which means more pages. In fact we had projects where the layout changed, all documents were regenerated and the costs were included in the revision, so far from double. We also see many more pages being generated so in practice the price per page drops below half an Euro. The more we process the cheaper it gets and one server can produce a lot of pages! Now, the interesting bit of such a calculation is that the costs only concern the hours spent on a solution. A \TEX\ based system comes for free and there are no license costs. Whatever alternative is taken, even if it is as flexible, it will involve additional costs. From the perspective of costs it's very hard to beat \TEX. Add to that the possibility for custom extensions, long term usage and the fact that one can adapt the system. The main question of course is: does it do the job. The only way to find out is to either experiment (which is free), consult an expert (not free, but then needed anyway for any solution) or ask an expert to make a proof of concept (also not free but relatively cheap and definitely cheaper than a failure). In fact, before making decisions about what solution is best it might be a good idea to check with an expert anyway, because more or less than one thinks might be possible. Also, take into account that the \TEX\ ecosystem is often one of the first to support new technologies, and normally does that within its existing interface. And there is plenty of free support and knowledge available once you know how to find it. Instead of wasting time and money on advertisement and fancy websites, effort goes into support and development. Even if you doubt that the current provider is around in the decade to come, you can be sure that there will be others, simply because \TEX\ attracts people. Okay, it doesn't help that large companies like to out source to far||far||away and expect support around the corner, so in the end they might kill their support chain. When talking of \TEX\ used in organizations we tend to think of publishers. But this is only a small subset of organizations where information gets transformed into something presentable. For small organizations the choice for \TEX\ can be easy: costs, long term stability, knowing some experts are driving forces. For large organizations these factors seem (at least to us) hardly relevant. We've (had) projects where actually the choice for using a \TEX\ based solution was (in retrospect) a negative one: there was no other tool than this relatively unknown thing called \TEX. Or, because the normal tools could not be used, one ended up with a solution where (behind the scenes) \TEX\ is used, without the organization knowing it. Or, it happened that the problem at hand was mostly one that demands in|-|depth knowledge of manipulating content, cleaning up messy data, combining resources (images or \PDF\ documents), all things that happen to be available in the perspective of \TEX. If you can solve a hard to solve problem for them then an organization doesn't care what tool you use. What does matter is that the solution runs forever, that costs are controllable and above all, that it \quotation {Just works.} And if you can make it work fast, that helps too. We can safely claim that when \TEX\ is evaluated as being a good option, that in the end it always works out quite well. Among arguments that (large) organizations like to use against a choice for \TEX\ (or something comparable) are the size of the company that they buy their solution from, the expected availability for support, and the wide|-|spread usage of the tool at hand. One can wonder if it also matters that many vendors change ownership, change products every few years, change license conditions when they like, charge a lot for support or just abort a tool chain. Unfortunately when that happens those responsible for choosing such a system can have moved on to another job, so this is seldom part of an evaluation. For the supplier the other side of the table is just as much of a gamble. In that respect, an organization that wants to use an open source (and|/|or free) solution should realize that getting a return on investment on such a development is pretty hard to achieve. So, who really takes the risk for writing open source? For us, the reason to develop \CONTEXT\ and make it open is that it fits in our philosophy and we like the community. It is actually not really giving us an advantage commercially: it costs way more to develop, support and keep up|-|to|-|date than it will ever return. We can come up with better, faster and easier solutions and in the end we pay the price because it takes less time to cook up styles. So there is some back slash involved because commercially a difficult solution leads to more billable hours. Luckily we tend to avoid wasting time so we improve when possible and then it ends up in the distributed code. And, once the solution is there, anyone can use it. Basically also for us it's just a tool, like the operating system, editor and viewer are. So, what keeps development going is mostly the interaction with the community. This also means that a customer can't really demand functionality for free: either do it yourself, wait for it to show up, or pay for it (which seldom happens). Open source is not equivalent with \quotation {You get immediately what you want because someone out there writes the code.}. There has to be a valid reason and often it's just users and meetings or just some challenge that drives it. This being said, it is hard to convince a company to use \TEX. It has to come from users in the organization. Or, what we sometimes see with publishers, it comes with an author team or acquired product line where it's the only option. Even then we seldom see transfer to other branches in the organizations. No one seems to wonder \quotation {How on earth can that \XML\ to \PDF\ project produce whatever output in large quantities in a short period of time} while other (past) projects failed. It probably relates to the abstraction of the process. Even among \TEX\ users it can be that you demonstrate something with a click on a button and that many years afterwards someone present at that moment tells you that they just discovered that this or that can be done by hitting a button. I'm not claiming that \TEX\ is the magic wand for everything but in some areas it's pretty much ahead of the pack. Go to a \TEX\ user meeting and you will be surprised about the accumulated diverse knowledge present in the room. It's user demand that drives \CONTEXT\ development, not commerce. \stopsection \startsection[title={Choosing}] So, where can one find information about \TEX\ and friends? On the web one has to use the right search keys, so adding \type {tex} helps: \typ {context tex} or \typ {xml tex pdf} and so on. Can one make a fancy hip website, sure, but it being a life|-|long, already old and mature environment, and given that it comes for free, or is used low|-|budget, not much effort and money can be spent on advertising it. A benefit is that no false promises and hypes are made either. If you want to know more, just ask the right folks. For all kind of topics one can find interesting videos and blogs. One can subscribe to channels on YouTube or join forums. Unfortunately not that many bloggers or vloggers or podcasters come up with original material every time, and often one starts to recognize patterns and will get boring by repetition of wisdom and arguments. The same is true for manuals. Is a ten year old manual really obsolete? Should we just recompile it to fake an update while in fact there has been no need for it? Should we post twenty similar presentations while one can do? (If one already wants to present the same topic twenty times in the first place?) Maybe one should compare \TEX\ with cars: they became better over time and can last for decades. And no new user manual is needed. As with blogs and vlogs advertising \TEX\ carries the danger for triggering political discussions and drawing people into discussions that are not pleasant: \TEX\ versus some word processor, open versus closed source, free versus paid software, this versus that operating system, editor such or editor so. To summarize, it's not that trivial to come up with interesting information about \TEX, unless one goes into details that are beyond the average user. And those who are involved are often involved for a long time so it gets more complex over time. User group journals that started with tutorials later on became expert platforms. This is a side effect of being an old and long|-|term toolkit. If you run into it, and wonder if it can serve your purpose, just ask an expert. Most \TEX\ solutions are open source and come for free as well. Of course if you want a specific solution or want support beyond what is offered on mailing lists and forums you should be willing to pay for the hours spent. For a professional publisher (of whatever kind) this is not a problem, if only because any other solution also will cost something. It is hard to come up with a general estimate. A popular measure of typesetting costs is the price per page, which can range from a couple of euro's per page to two digit numbers. We've heard of cases where initial setup costs were charged. If not much manual intervention is needed a \TEX\ solution mostly concerns initial costs. Let's return to the main question \quotation {Why use \TEX ?} in which you can replace \TEX\ by one of the macro packages build on top of it, for instance \CONTEXT. If an (somewhat older) organization considers using \TEX\ it should also ask itself, why it wasn't considered long ago already? For sure there have been developments in \TEX\ engines (in \CONTEXT\ we use \LUATEX) as well as possibilities of macro packages but if you look at the documents produced with them, there is not that much difference with decades ago. Processing has become faster, some things have become easier, but new technologies have always been supported as soon at they showed up. Advertising is often just repeating an old message. The \TEX\ ecosystem was among the first in supporting for instance \OPENTYPE, and the community even made sure that there were free fonts available. A format like \PDF\ was supported as soon as it showed up and \TEX\ was the first to demonstrate what advanced features were there and it shows again how it is possible to adapt \TEX\ to changes in its environment. Processing \XML\ using \TEX\ has never been a big deal and if that is a reason to look at this already old and mature technology, then an organization can wonder if years and opportunities (for instance for publishing on demand or easy updating of manuals) have been lost. Of course there are (and have been) alternative tools but the arguments for using \TEX\ or not are not much different now. It can be bad marketing of open and free software. It can be that \TEX\ has been around too long. It can also be that its message was not understood yet. On the other hand, in software development it's quite common to reinvent wheels and present old as new. It's never too late to catch on. \stopsection \stopchapter \stopcomponent