I would say that it's good that LaTeX doesn't preload a large set of packages. This, as explained by David Carlisle, is due to historic reasons based on the small computing power of 1990's machines, but has very useful consequences.
Let me present an example. Along with LaTeX2e, some packages were released as integral part of any LaTeX distribution, among which one finds enumerate. This is a great addition for customizing enumerated lists, but has been largely superseded by a much more powerful package such as enumitem.
Assume that enumerate had been made part of LaTeX without the need to load it separately; then I'd see only two possibilities for exploiting the power of enumitem:
- Load
enumitem as separate package, that is, what's done today;
- Integrate
enumitem in LaTeX, with the consequence of probably breaking documents written with the enumerate functionalities in mind.
Other examples. What high level graphic package would be chosen as part of LaTeX? PSTricks or TikZ? Or, perhaps, mfpic? If the first had been made part of LaTeX we probably wouldn't have pdflatex, that's incompatible with PSTricks in many features, or we'd have a PDFLaTeX format with PSTricks disabled: a sure source for "format wars", that is, slightly incompatible versions of the same LaTeX. Precisely one of the reasons why LaTeX2e was released: give an end to the multiplication of different LaTeX 2.09 versions (one adjusted for Dutch, one for German, one for A4 paper, another for Russian and so on).
A count of subdirectories in <texlive2012>/tex/latex returns 1731. This means much more tha 1731 packages, since those directories often contain more than one package. Several of them are almost dead, kept only for backward compatibility. If those had been integrated in the LaTeX kernel, the problems I showed with the enumerate versus enumitem example would be multiplied.
Here's where the idea of packages is good: you're not stuck with something that has been written twenty years ago from a perspective that might have revealed not as general as it could. New packages can solve old problems in a cleaner and better way, but documents written twenty years ago can still be typeset without changes.
This is not so different from what happens with programming languages. Do people load all C libraries for their programs? Do Perl scripts load the whole CPAN for a single run? On the contrary, you don't have libraries/packages with LibreOffice or similar software: All You Get Is What They Gave. And old documents will easily break with new versions of the software.
\RequirePackagestatements to pull in others that are really necessary, so by learning such details, it's possible to minimize the number of\usepackagestatements in your preamble. and you can always create your ownmybasics.styif you always use the same package collection. – barbara beeton May 01 '13 at 19:09