This question might belong elsewhere but I figured if I posted it here I might come across someone that deals behind the scenes of LaTeX. I'm an assistant Linux Admin at my school and we install LaTeX for our professors that obviously need it. Why is it, though, that doing a "yum install" of LaTeX results in installation of nearly 2500 different packages? I realize we may be installing more than the "average joe" might, but doesn't this seem like over-modularization of an application?
The obvious answer is: because it can. Most systems are less flexible and die at a much younger age than TeX. Look at other successful systems and you will find the same traits: Perl, Python, Java, Ruby, C, and Unix - to name a few.
However, it's actually quite surprising that LaTeX developed such a strong eco system of packages because TeX's DNA isn't really wired for it. TeX lacks proper modules, scopes and abstraction mechanisms that we are taking today as granted in programming languages. This means that modularity in TeX and LaTeX is based mostly on conventions and therefore is quite fragile (much like modularity in C).
So, while I understand that the many packages (and sometimes their incompatibilities) can be inconvenient, especially for less experienced users, it's actually a sign of strength. I'd suggest to play to TeX's strengths rather than fighting its weaknesses.
The last sentence might suggest that I see no point in improving TeX or LaTeX in particular with respect to modularity. Quite the opposite indeed, as I consider projects like LaTeX3 or LuaTeX as very important to carry TeX and LaTeX forward. I said it more in the sense that one should embrace the power and flexibility of TeX/LaTeX rather than trying to restrict it to make it simpler. With respect to the installation, projects like TeX Live already do the heavy lifting for users and administrators.
An answer is perhaps :
ConTeXt! Why ? because
ConTeXt is more compact and avoid some of the problems of
LaTeX with multiples packages. Some of them are obsolete or incompatible. We can talk about flexibility but we need to talk about stability. I'm not a ConTeXt user but I read the excellent interview of Hans Hagen where HH ( great ! it's like Herman Hesse in SteppenWolf) talks about the difference between
Interview of HH
An extract :
What I do remember is that writing styles and extensions involved hacking around in the kernel. I believe that extensibility has never been part of the concept and that shows. I also know from talking to the core LaTeX people that it's very hard to improve things once users start doing that kind of hacking. Also, the output needs to be “as it was before”, a restriction that I didn't put upon myself with ConTeXt.
I think that's the best thing about LaTeX: you can customize it as you wish and add your own bits and pieces :D
You never know when you might need something specific, so you have a lot to choose from...
I think this is a bit of a problem that arises with package managers and shared environments in general. In your Linux administrated systems you have the problem that only authorised people may install software – and more or less only software that has been packaged into the distribution may be installed.
In many cases it would be favourable that each user decides on their own which Tex packages they need to install – and in the best case, this package would virtually install itself. (I think Miktex on Windows made this possible.)
The tex structure makes the local installation a bit complicated though, because of its pretty special directory structure and therefore a it is rather impractical to have anybody install a package locally. The only way out for these systems seems to be the global installation routine – which means that 2500 packages need to be shipped to satisfy all needs.
protected by Martin Scharrer♦ Apr 5 '11 at 19:17
Thank you for your interest in this question.
Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead?