Je suis en train d'apprendre le Javascript pour compléter ASP.NET. J'ai une solide expérience en programmation générale et j'ai toujours été partisan de pratiques disciplinées et d'une bonne hygiène pour réduire le nombre d'erreurs dans le code.
Cependant, le langage qu'est Javascript semble rendre cela très difficile. Sa nature dynamique et interprétée semble pousser la détection des erreurs au dernier point possible du cycle. Par exemple, les erreurs de syntaxe peuvent être détectées aussi tard que le moment où le code est effectivement exécuté, plutôt qu'avant son exécution comme ce serait le cas dans un langage plus statique. De la même manière, le système de type logiciel est un champ de mines d'erreurs potentielles cachées. Bien que vous puissiez représenter des modèles de conception orientés objet dans le langage, il semble presque qu'ils aient fait en sorte qu'il soit aussi difficile que possible de le faire avec peu de support syntaxique.
Ceci est aggravé par le fait que Javascript semble attirer un état d'esprit négligé, et beaucoup de programmeurs débutants qui confondent conscision et intelligence avec qualité (et je ne fais pas référence au code minimisé, mais à des exemples de programmation putativement bonne). J'ai parfois l'impression de lire les inscriptions au concours de C obfusqué.
Bien sûr, je reconnais également que Javascript possède de nombreux atouts qui le rendent puissant et extensible. Certaines techniques fonctionnelles fluides, comme celles de Jquery par exemple, sont très attrayantes.
Je suppose que ma question est donc la suivante : comment écrire un javascript de qualité ? Quels outils, pratiques, idiomes, bibliothèques de débogage et de journalisation, etc., intégrez-vous pour réduire le nombre de bogues dans vos applications javascript ? Existe-t-il des sites web ou des groupes de discussion qui se concentrent sur le javascript sans bogues plutôt que sur de jolis trucs de programmation ?