TEX Project: a Case Study of Open-Source Software
Total Page:16
File Type:pdf, Size:1020Kb
The (LA)TEX project: A case study of open-source software Alexandre Gaudeul∗ University of Toulouse [email protected] December 15, 2003 ∗I would like to thank William Adams, Jacques André, Nelson Beebe, Barbara Beeton, Karl Berry, Lance Carnes, Thomas Esser, David Fuchs, Bernard Gaulle, Hans Hagen, Yannis Haralambous, Jim Hefferon, David Kastrup, Donald Knuth, Leslie Lamport, Wendy McKay, Barry McKichan, B. Mahesh, Frank Mittelbach, Oren Patashnik, Simon Pepping, John Plaice, Fabrice Popineau, Sebastian Rahtz, Denis Roegel, Chris Rowley, Joachim Schröd, Karel Skoupy, Hàn Thê´ Thành, and all other TEX project participants I met. This paper was directly inspired by the reflections that community kept having about its own culture, history, future and organization. All errors and omissions are of course mine and are the result of my bad understanding. I also owe many thanks to all the people who develop, maintain and distribute the TEX system and make it freely available to us researchers and academics; this project was an opportunity to learn how to better use that typesetting system that keeps amazing me. I would also like to thank Jacques Crémer, Bruno Jullien, Jean Tirole, Hal Varian and other academics who inspired or guided my reflections. 1 CONTENTS 2 Contents 1 Introduction 4 2 The context of the (LA)TEX case study 8 2.1 Motivation . 8 2.2 Research Background . 8 2.3 Definitions of TEX: a software and a community . 10 2.3.1 TEX and LATEX ................................ 10 2.3.2 The software, its users and developers . 10 2.3.3 The software, its developers’ groups and support institutions . 11 2.4 An history of (LA)TEX................................. 12 2.4.1 The first phase: building the program and distributing it. 13 2.4.2 The second phase: taking a life of its own . 15 2.4.3 The third phase: going beyond (LA)TEX ................... 15 2.5 TEX, an Open Source Software Project? . 16 2.5.1 TEX’s license terms . 16 2.5.2 The organisation of TEX’s development . 17 2.6 A reference point: Linux. 17 3 Some preliminary findings. 19 3.1 The output: The characteristics of the code and its quality. 19 3.1.1 The importance of the initial coding of the software for its future. 19 3.1.2 The impact of the OS software on welfare and innovation. Its quality seen from various point of views. 20 3.2 The process. 22 3.2.1 The dynamics of the project and its limits. 22 3.2.2 Leadership . 25 3.3 The framework: The TEX rules and culture and how it evolved. 28 4 Conclusion: Work to be done. 30 A Glossary 33 A.1 Projects and programs . 33 A.1.1 TEX...................................... 33 A.1.2 TEX1.0, TEX2.0 and TEX3.0 . 34 A.1.3 LATEX, LATEX2.09, LATEX 2ε,LATEX3 . 35 A.1.4 eTEX ..................................... 36 A.1.5 NTS: a New Typesetting System. 36 A.1.6 Omega . 36 A.1.7 pdfTEX .................................... 37 A.1.8 AMSTEX................................... 37 A.1.9 ConTEXt ................................... 37 A.1.10 Web2c . 37 A.1.11 preview-LATEX ................................ 38 A.1.12 BibTEX.................................... 38 A.2 Other typesetting systems . 38 LIST OF FIGURES 3 A.2.1 Derived commercial systems: PCTEX, MicroTEX, Scientific Word by Mc- Kichan Software, Y&Y, TEXtures by Blue Sky Research,... 38 A.2.2 Derived open-source systems: TEXMacs, LyX... and interfaces: WinShell, WinEdt... 38 A.2.3 Concurrent typesetting systems: TROFF/NROFF, Scribe, Script... 39 A.2.4 Competing typesetting systems: Adobe’s InDesign, QuarkXPress, 3B2, Framemaker, Word... 39 A.3 Infrastructure . 39 A.3.1 The main (LA)TEX distributions . 39 A.3.2 TEX Directory Structure . 40 A.3.3 CTAN . 40 A.3.4 TUG . 41 A.3.5 AMS ..................................... 41 A.3.6 TUGboat . 41 A.3.7 LUG . 42 A.3.8 LPPL . 42 A.3.9 TEX newsgroups . 42 A.4 TEX related terms . 44 A.4.1 TEX implementation . 44 A.4.2 The Errors of TEX .............................. 44 A.4.3 TAOCP . 44 A.4.4 (LA)TEX.................................... 45 A.4.5 tex.web . 45 A.4.6 plain.tex . 45 A.4.7 Core LATEX .................................. 45 A.4.8 TRIP tests . 45 A.4.9 The bug report filter system . 45 A.5 Programming and OS related terms . 46 A.5.1 Programming languages: Pascal, WebPascal, C, Java . 46 A.5.2 WEB and literate programming . 46 A.5.3 Monolithic, modular and object oriented programming . 46 A.5.4 Macros and primitives . 47 A.5.5 The free/open source licenses: GPL, BSD, Debian guidelines, FSF . 47 A.6 Typesetting and electronic publishing . 47 A.6.1 The WYSIWYG controversy . 49 A.6.2 The web document formats: html, sgml, xml . 49 A.6.3 The document sharing formats: DVI, PDF, PostScript... 49 B A chronology 50 List of Figures 1 The bugs of TEX.................................... 24 2 The monthly posting to TEX-related newsgroups. 24 3 TUG’s revenues and membership. 27 1 INTRODUCTION 4 1 Introduction This is a case study of TEX, a typesetting software that was developed by Donald E. Knuth in the late 70’s. Released with an open source license, it has become a reference in scientific publishing. TEX is now used to typeset and publish much of the world’s scientific literature in physics and mathematics. This case study is part of a wider effort by academics to understand the open-source phenomenon. That development model is similar to the organization of the production of knowledge in academia; there is no set organization with a hierarchy, but free collaboration that is coordinated spontaneously and winds up generating complex products that are the property of all who can understand its functioning. The case study was led by gathering qualitative data via interviews with TEX developers and quantitative data on the TEX community – the program’s code, the software that is part of the TEX distribution, the newsgroups dedicated to the software, and many other indicators of the evolution and activity in that open-source project. The case study is aimed at economists who want to develop models to understand and analyze the open-source phenomenon. It is also geared towards policy-makers who would like to encourage or regulate open-source, and towards open-source developers who wonder what are the efficient strategies to make an open-source project successful. The primary aim of this case study is to define the relationship between consumers and pro- ducers of a software product in an open-source (“OS”) organization; how can a product that was developed for a producer’s own use become of use to others. The case-study is inspired by the work of Hippel (2002) that underlines how, while the development of open-source software (“OSS”) may have own-use as their primary motivation, it is complemented by another, collective, process that reconciles private aims with the aims of the general public. (LA)TEX provides a good case study to illustrate that point, as its development was oriented from the beginning towards the end-user, and it was distributed under a liberal license that allowed developers to build commercial products from their work in developing the software. The open-source user/developer interface organization was set up very early, and worked alongside commercial ventures to popularize the TEX software. The study of the development of TEX thus provides an interesting sample of various strategies to bring open-source software development efforts to the market. The process by which software is popu- larized may be taken up by the developers who, to obtain a better product, must make it available to others so that they may contribute to its development, and must therefore take their needs into account. That process can also be taken up by a mediating organization, set up by users to exploit the work of the developers. That organization assumes the role that the marketer plays in the pro- prietary model of software development. The production and marketing of a product inside a firm are closely linked in a continuous feedback process; a product has no meaning other than the value it has on the market. The open-source phenomenon, as seen through this case study, disjoins the production and the marketing side of software development; the productive activity of developers is not directed towards the market, but rather towards the fulfilment of private needs, while the market appropriates the result of that independent productive activity and transforms it to make it available to the general public. The analysis of the coordination between developers and users in an OS project is analyzed in more details in another paper (Gaudeul (2003b)) that is not included in the thesis. The present paper mainly deals with other matters: By examining the raw output of the project – the software’s code and its evolution, the stages in the development of the core of TEX are delineated: there is a ‘breaking’ point in the development where a code that favored early development and usability of the software becomes an impediment to its further, independent, development into new applica- tions and for new types of users. By looking at the process by which that code was produced – the project’s functioning – the constant clash between a logic of centralization of the contributions and 1 INTRODUCTION 5 of competition between development initiatives is underlined. The independent development initia- tives must be centralized so as to make them available to all, developers and users. However, there are cases where it is not possible to make a choice between two incompatible ideas, which leads to the choice being made later, based on the ensuing compared popularity of the two competing devel- opment strands.