En matière d'intégration, j'entends souvent chez les débutants (et même les moins débutants) la réflexion suivante :
Pourquoi réinventer la roue ? Y a qu'à utiliser tel framework/tutoriel/utilitaire/etc.
La réflexion n'est pas idiote, loin de là : déjà dans un contexte de production, il est possible d'être amené à faire des choix qui favorisent la rapidité. Aussi, il peut être utile de disposer d'outils qui font le sale boulot, de s'inspirer d'autres choses, de s'appuyer sur une base, etc.
Moi-même, je ne fais pas exception : mon « nano-framework » CSS RÖCSSTI s'inspire et reprend des éléments d'autres projets (comme KNACSS), c'est même écrit dessus.
Néanmoins, un point me chagrine dans cette approche : éviter de réinventer la roue est une chose intelligente, néanmoins cela va vous dispenser du chemin parcouru (par la roue si j'ose dire). Plus gênant, cela peut vous priver des chemins de traverse pendant que vous parcourez ce chemin.
Quand j'ai commencé à intégrer – mode vieux con –, disons-le net, il fallait tout inventer : la documentation était quasi-inexistante, l'intégration était le parent pauvre du Web, etc. Du coup, je reconnais que j'ai parfois un peu tendance à aller trop loin dans la réinvention de la roue. Mais dans mon esprit, je me dis que l'effort fourni pour connecter mes petits neurones m'aura fait apprendre plus que d'utiliser bêtement quelque chose. Et ça me donne beaucoup d'idées.
Maintenant, je constate chez les p'tits stagiaires que je vois passer une approche presque aussi dangereuse si elle est trop extrême : le « je n'(ré)invente rien ». Savoir utiliser quelque chose est bien, mais c'est quand même selon moi plus intéressant de comprendre comme cela marche. Et pour cela, quoi de mieux que de partir from scratch ? Quand je vois des personnes qui se présentent comme futurs intégrateurs et qui sont terrifiés à l'idée de partir de zéro ou du minimum, j'avoue que ça me laisse pantois.
C'est pour cela que je maintiens : si quelqu'un a envie de réinventer la roue, dans la mesure du possible, laissez-le faire. Il a besoin de parcourir un chemin, et qui sait où ce chemin pourrait l'emmener ?
Comme tu le dis, ça permet d'apprendre et parfois de découvrir des "routes" qui auraient "invisibles" en se contentant de réutiliser des frameworks, etc.
Cela dit, certains codes qui ont fait leurs preuves permettent des trucs sympa, comme jQuery. Mais quand je vois des usines à gaz comme Symphony ou autres, je préfère un code "fait maison". Au moins, quand ça plante, je sais où chercher et je suis sûr que ce n'est pas une erreur d'utilisation du framework !