Hacker News new | ask | show | jobs
by JasonFruit 4613 days ago

    While I understand you generally shouldn’t rewrite 
    software from scratch, maybe TeX should be one of 
    the few exceptions to this rule?
I think the rule is better stated as, "It should be a long time before you choose to rewrite usable software from scratch. But after 35 years, you can maybe consider it." TeX is great, but it is definitely showing its age, and it shows a lot of the inconsistencies many (other) programming languages of its age also exhibit. Besides, it's not really a rewrite; this is a new piece of software that does something similar.
2 comments

Time is pretty much irrelevant, at least directly. The time to rewrite software is when one of the following is true (which are really the same thing from different viewpoints): 1) It has critical defects in serving its intended usage domain that can be resolved by incremental updates because they are caused by fundamental architectural features, or 2) You need something to be used in a similar-but-not-identical domain to the originally intended domain of the software, to which it cannot be incrementally adapted due its fundamental architecture.

And, really, if the software is designed well for maintainability, either of these should be rare, since if its is loosely coupled, you can change either the low-level implementation details that need to change without touching the high-level organization, or change the high-level organization while preserving the low-level implementation details that are staying the same, in an incremental change.

That's a double-edged sword. On the other hand, TeX isn't changing much which, given it's space, is necessary: (La)TeX can still typeset documents written in the 90s. If you would start shaking those foundations, you are in a world of pain, probably.