Etwas mehr. Modernizr bringt einen Lazy-Loader mit. Und Yepnope.
Stimmt. Wobei Modernizr.load() ja nichts anderes als Yepnope ist.
Weil Modernizr verschiedene Scripte vereinigt, weiß meinem Eindruck nach niemand, was es wirklich ist. Viele glauben, es sei ein Über-Shim für alles mögliche. Dabei ist es mehr ein Werkzeugkasten für den Umgang mit Browserunterschieden: Feature-Abfragen, bedingtes Laden von Shims und eben der HTML5-Shim fürs Parsing und createElement/innerHTML. Mit Yepnope hat man sogar einen allgemein nutzbaren Script- und CSS-Loader.
Man kann (lies: sollte) Modernizr customizen, d.h. nur die Features in den Code einbinden, die man braucht.
Ja, nur bedarf es dazu genauen Wissens darüber, was die Teile von Modernizr tun und mitunter wie der HTML5Shim funktioniert.
Meiner Erfahrung nach ist selbst ein eigens konfigurierter Modernizr zumeist unnötige Komplexität.
Dasselbe gilt für jQuery 2.
Das Problem ist, dass es mangels vernünftiger Modularisierung (d.h. explizites Deklarieren von Dependencies) schwer herauszufinden ist, welche Features »man« braucht.
Herauszufinden, welche jQuery-Features ein jQuery-Plugin benötigt, ist bei entsprechender Komplexität quasi unmöglich. Man kann nur so lange jQuery-Module aktivieren, bis es keine »undefined is not a function«-Exceptions im Produktivbetrieb mehr gibt.
Mathias