As a result, small modules — and apps composed of them — tend to have extremely large dependency graphs (Bitbucket's frontend, for example, contains more than one thousand JavaScript modules — many internal and many from npm).
Node's initial implementation of streams, which shipped in Node 0.4, left a lot to be desired and led to potentially lost data if used incorrectly. In response, Node 0.10 shipped with a revision of streams (also known as Streams2). But Streams2 wasn't a simple iteration to the streams pattern, and actually went through a number of changes before shipping in Node 0.10. When it did ship, it was compatible with apps running in Node 0.8 without being backported into a release of Node 0.8.
Zeph va encore dire que je caricature, mais leurs exemples montrent vraiment qu'il y a deux façons de penser :
- l'approche traditionnelle : "on a sorti des technos incomplètes / foireuses ; la prochaine fois, réfléchissons davantage avant de lancer un truc"
- l'approche webdev-de-2015 : "on a sorti des technos incomplètes / foireuses ; c'est pas grave, vu qu'on peut corriger et compléter à posteriori"
Alors certes, la seconde approche est sympa, motivante, Agile et favorise l'innovation. Mais elle passe sous silence le coûts associés (le temps perdu par les utilisateurs à courir après les bugs, pallier les manques, mettre à jour, se tenir au courant des évolutions, etc.) et les risques (se retrouver avec une résultat branlant parce que le système a grandi "au fil des modifs" au lieu d'avoir été réfléchi à la base, devenir ingérable parce qu'on dépend de 36000 projets annexes dont chacun peut évoluer / être déprécié...). Pour des projets peu critiques, ça n'est pas forcément un problème ; pour des projets pros, c'est important.
C'est d'ailleurs une question qui dépasse le cadre du dév web : c'est pareil pour les jeux ("on sort tout de suite un truc bugué à mort, on patchera plus tard (ou pas)"), les applis ("allez hop, on casse tout pour faire du neuf, vous retrouverez peut-être les fonctionnalités que vous utilisiez dans 3 ou 4 versions"), le matériel ("pas la peine de faire de la qualité, de toute façon dans 18 mois ça sera jeté à la poubelle")...