This is a great point; implementations always compromise on speed, generality, domain decomposition, flexibility, ease of use&#x2F;debugging, compile time, etc...<p>It&#x27;s always a compromise subject to design  goals of the project or just personal preferences. There are a lot of reads on the Internet about specific compromises chosen for a technology but contrasting choices between projects or versions of a project are difficult to find.<p>Also I think large systems are just as informative as smaller ones but require more investment.