2010-12-07 9 views
5

Mon équipe est chargée de mettre en œuvre Unicode dans notre logiciel, qui est bien plus d'un million de lignes de code. Nous prenons en charge un client MFC et un serveur sous Windows, AIX ou Solaris avec une base de données Oracle ou SQL Server. L'ICU ressemble à un outil très utile. Quels sont les avantages et les inconvénients de l'utilisation des soins intensifs? L'ICU fonctionne-t-elle comme annoncé sans bugs majeurs?Quels sont les avantages et inconvénients de l'USI?

+0

Oui, l'unité de soins intensifs fonctionne; Je me suis appuyé dessus pendant des années. "Avantages et inconvénients" est une question d'opinion, qui est généralement considérée hors limites sur StackOverflow. – keshlam

Répondre

6

Un point de données: Notre (oui, c'est une clause de non-responsabilité) liste d'utilisateurs et de bugs est tous sur notre project site.

IMBO (biaisé): Plus:

  • fonctionne comme prévu, complète.
  • Mature: 10+ ans maintenant, avec une bonne politique de stabilité et un développement très actif.
  • Utilise les derniers standards Unicode + CLDR + BCP47 +.
  • Compile fondamentalement partout. C/C++/J et appelé par/implémente python, perl, php, ...
  • Open source, avec une diversité croissante de contributeurs.
  • Livré avec toutes les données nécessaires pour ce qui précède (voir ci-dessous, par contre), mais personnalisable. (Peut ajouter des données personnalisées)

Moins:

  • besoin d'une meilleure documentation (nous répar- quelqu'un veut aider?).
  • Beaucoup d'API - "c'est trop gros # 1" difficile de savoir lequel utiliser, même s'il fait ce que vous voulez.
  • Utilisés par de nombreux types de programmes, des périphériques intégrés aux smartphones en passant par les principales applications de bureau via les bases de données, les systèmes d'exploitation et les applications d'entreprise: il existe donc plusieurs façons de faire.
  • Livré avec toutes les données nécessaires pour ce qui précède! "c'est trop grand # 2" (voir ci-dessus, sous pros), mais personnalisable. (peut être réduit à la taille)
1

ICU est terrible: éviter si possible.

  • Malgré son âge, les choses de base en elle sont brisées, par exemple dans cette question: Fixing regex to work around ICU/RegexKitLite bug

  • gestion du temps est divisé en temps sont sous-spécifiés: vous ne pouvez pas distinguer une heure d'été à partir d'un non DST temps d'une manière fiable dans de nombreuses API.

  • C'est énorme.

  • La documentation nécessite beaucoup de travail. Les fonctionnalités les moins utilisées sont souvent inutilisables car il n'y a aucun moyen de trouver la bonne façon de les utiliser. J'ai passé des jours à essayer de faire fonctionner la translittération comme expliqué et finalement abandonné.

  • Il aime travailler en UTF-16, le pire des mondes possibles.

  • Le support ne répond pas aux problèmes.D'après mon expérience, ce n'est que lorsque vous êtes au bout d'un projet que vous commencez à découvrir les failles insidieuses qui prendront 90% de votre temps.

Pour beaucoup de gens, il n'y a pas d'alternative donc vous êtes coincé avec elle.

+1

la «chose de base» n'est pas un bug. Suivez le lien et le bug. Avez-vous déposé un bug ou envoyé une demande de support à propos de la translittération? ICU est énorme en raison de l'ensemble feature et * data *, mais peut être réduit de manière bien documentée. Avez-vous déposé un bug sur DST/non-DST? - Je ne suis pas sûr de comprendre ce qui est demandé. La lecture SO ne fait normalement pas partie de notre support officiel. –

Questions connexes