L'Académie française est formelle depuis toujours : les majuscules doivent porter les accents, y compris en début de phrase — « État » s'écrit avec un É accentué, jamais « ETAT ». Pourtant, dans le code, cette règle n'a strictement aucune existence : la quasi-totalité des identifiants évitent les accents, aussi bien en minuscule qu'en majuscule, non pas par choix linguistique mais parce que la convention camelCase/PascalCase vient d'un monde anglophone qui n'a jamais eu ce problème.
Les styles principaux
- camelCase — premier mot en minuscule, chaque mot suivant avec une majuscule, sans séparateur :
userName. La norme pour les variables et fonctions en JavaScript, Java, C#. - PascalCase — pareil, mais le premier mot a aussi une majuscule :
UserName. Utilisé pour les classes et composants presque partout. - snake_case — mots séparés par des underscores, tout en minuscules :
user_name. La norme en Python et pour les noms de colonnes de base de données. - kebab-case — mots séparés par des tirets :
user-name. La norme pour les URL, les classes CSS et les attributs HTML, l'underscore étant moins courant dans les URL.
Pourquoi ce n'est pas qu'une question d'esthétique
Aucun langage de programmation n'interdit les accents dans un identifiant — JavaScript accepte très bien étatUtilisateur comme nom de variable. Si la convention reste malgré tout de tout écrire sans accent, c'est uniquement une habitude héritée d'anciens éditeurs et terminaux à l'encodage capricieux, pas une contrainte technique actuelle. Ce qui compte réellement aujourd'hui, c'est la cohérence du style pour les linters, l'autocomplétion de l'IDE et les générateurs de documentation.
À quoi sert la conversion
- Faire correspondre un champ d'une API JSON (généralement camelCase) au nom d'une colonne de base de données (généralement snake_case).
- Renommer des variables lors du portage de code d'un langage à un autre avec une convention différente.
- Générer un slug compatible URL ou une classe CSS à partir du texte d'un titre, accents compris.
L'ambiguïté des abréviations
Un identifiant comme userID ou XMLParser confronte le convertisseur à un choix : traiter l'abréviation comme un seul « mot » ou la découper en lettres individuelles. Les outils gèrent cela différemment — ce convertisseur reconnaît une séquence de majuscules consécutives comme un segment de mot à part entière (XMLParser → XML + Parser), mais il vaut mieux vérifier le résultat manuellement si le nom part directement dans du code en production.