TeX is probably a great example where the codebase converged on 'perfection'. A fixed set of features, practically bug-free, superb quality.
I could mention some flaws of TeX, and observe how many are related to input, output and environment:
- archaic syntax. Even though it has an interesting design philosophy, it does not adhere to the syntax (input) most programmers are used to (you know if you ever tried to write TeX)
- does not take advantage of modern system architectures. Needs to process a TeX file multiple times.
- does not allow animation (this was not a requirement, nor a possibility back in the 70's)
- not much interactivity (yes, URLs are possible, but it's mostly a hack). Web wasn't available back then.
- output format (DVI) limits possibilities
So, even though I like TeX and its attention to detail, it was already dated when I started using it in 2000. In our landscape, adaptability is an important trait of libraries.
I could mention some flaws of TeX, and observe how many are related to input, output and environment:
- archaic syntax. Even though it has an interesting design philosophy, it does not adhere to the syntax (input) most programmers are used to (you know if you ever tried to write TeX)
- does not take advantage of modern system architectures. Needs to process a TeX file multiple times.
- does not allow animation (this was not a requirement, nor a possibility back in the 70's)
- not much interactivity (yes, URLs are possible, but it's mostly a hack). Web wasn't available back then.
- output format (DVI) limits possibilities
So, even though I like TeX and its attention to detail, it was already dated when I started using it in 2000. In our landscape, adaptability is an important trait of libraries.