Dans la plupart des langages, les chaînes de caractères ne sont pas modifiables. Ajouter un caractère à une chaîne existante c’est créer un nouvel objet avec la chaîne résultante. Parfois comme dans ruby ce n’est pas visible pour l’utilisateur mais c’est bien ce qui est fait en interne. pour éviter que de multiples concaténations ne posent des problèmes de performance, on a souvent à disposition un objet spécifique StringBuffer dédié à cet usage. Ce n’est malheureusement pas le cas en javascript et on voit passer de nombreuses recommandations de micro-optimisation pour compenser.
Tom Trenka a voulu faire le point en juin. Il a comparé différentes méthodes pour concaténer des chaînes de caractères et l’implémentation StringBuffer de Dojo. L’analyse est assez poussée et remet quelques préjugés courants sur le tapis. (Lire la suite…)