Tout comme Brunni fait sa pub pour son petit outil bien utile à certains, j'en profite pour faire de même.
Depuis presque un mois, j'ai développé sur mon temps libre un petit outil qui permet d'analyser un texte Unicode, et une lib. Comme je pense que c'est quand même le genre de truc qui peut intéresser des gens, je le met ici, mais je me doute bien que ça ne révolutionnera pas le monde

L'idée, c'est de copier un bout de texte avec un ou plusieurs caractères sur lesquels on veut des infos, et puis ça s'affiche.

J'ai mis le code et un lien sur GitHub, pour ceux que ça intéresse: https://github.com/GoldenCrystal/NetUnicodeInfo
Tout est parti d'un truc très con, mais j'en avais marre de me retrouver à me demander « Mais c'est quoi ce caractère ? Comment il a fait ça ? », du coup m'est venu l'idée de coder un truc à l'arrache (mais vraiment) pour satisfaire mon immense curiosité. Et c'est là que tout s'est enchaîné.

Là, je pourrais vous raconter toutes mes péripéties de développement, mais je ne voudrais pas vous endormir.
En l'état actuel, il y a deux aspects:
• Le logiciel. Là pas trop de souci, je ne vous cache pas que je suis assez content de mon truc (j'ai le droit, non ?



• La lib que j'ai codé derrière. C'est surtout pour ça que je l'ai mis sur GitHub, sinon je vois pas franchement l'intérêt

Pour ce qui est de l'outil, si ça vous intéresse, allez le tester, et n'hésitez pas à faire des suggestions

Maintenant concernant la lib. Mon intuition, c'est que le boulot que j'ai fait pourrait servir dans d'autres cas. J'avais fait quelques recherches là dessus, pas forcément pour ce "projet", et j'avais pas l'impression que les outils d'accès aux données Unicode soient quelque chose de très répandu en .NET* (ou ailleurs en fait, mais ça m'intéresse pas là


Le fait est que même en supposant qu'il existe des gens qui seraient intéressés par un outil de ce genre, je ne sais pas quels sont leurs besoins concret. Le truc que j'ai là est incomplet (j'ai mis les propriétés les plus générales et les plus intéressantes de mon point de vue) et plutôt du domaine de l'artillerie lourde. (On charge tout en mémoire à la première utilisation)
Malgré tout, ça peut toujours être le point de départ d'un super truc, même si j'ai quand même quelques doutes

Bref, j'ai un outil qui affiche certaines infos, et une lib qui fournit ces infos, et jusque là, c'est pas mal. Après en tant qu'utilisateur unique du truc que j'ai produit, le comportement me va, mais j'ai franchement aucune idée de ce qu'un mec qui voudrait utilise ma lib souhaiterait point de vue mémoire, performances, et jeu de données fourni.
Voilà tout ce qui me tracasse
• J'ai pas encore bien compris la spec Unicode en ce qui concerne le nommage des caractères Coréens, donc c'est un truc pas implémenté. (Bouh !)
• Chaque fichier de données unicode ou propriété ajouté en plus augmentent considérablement la taille du fichier final. Où se trouve le juste milieu ?
• Unicode, c'est vaste, on peut pas se permettre de traiter tout n'importe comment, sinon ça va plomber l'application qui utilise la lib.
• Faut-il que je développe un format plus compact ?
• J'ai inclus certaines propriétés de Unihan, parce que je trouvais ça cool, mais surtout parce que sinon il n'y a aucune info sérieuse sur la plupart des caractères asiatiques (Chinois principalement), mais du coup ça a fait exploser la taille de ma petite base de données interne. Faut-il garder ça ? Faire une version avec et une version sans ?
• Est-ce que l'utilisateur lambda de la lib préfèrera une consommation mémoire restreinte avec risque de GC ou alors un temps de recherche plus court sans GC ?
• Architecturalement, est-ce mieux d'avoir un API simple, ou un truc un peu plus complexe qui permette de gérer soi-même le fichier de données ?
• Franchement, est-ce qu'il y a réellement quelqu'un que ça intéressera ?
• Au minimum ça permet de faire évoluer l'outil vers une nouvelle version de Unicode si jamais il intéresse quelqu'un d'autre que moi, mais bon

Dans l'immédiat, je pense que je vais enjoliver quelques trucs (ajouter un icône !), peut-être ajouter quelques propriétés selon mon humeur, et ensuite je ferai une belle version 1.0 avec un package NuGet pour la lib. Après j'en sais rien

Comme tout le monde, j'aimerais que mon projet soit utile, mais j'ai aucune idée de si ça peut vraiment servir à quelqu'un. Alors, on verra bien

* Pour info, c'est assez dommage, bien que parfaitement compréhensible, mais la BCL .NET ne permet que d'accéder à des donées simples et essentielles qui sont la catégorie et la valeur numérique d'un caractère (selon le standard Unicode en vigueur au moment de la publication de la version de .NET)