ICU的优点和缺点是什么?

发布于 2024-10-06 15:45:05 字数 1432 浏览 1 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

抹茶夏天i‖ 2024-10-13 15:45:05

数据点:我们的(是的,这是免责声明)用户和错误列表全部位于我们的项目中网站

IMBO(有偏见):
优点

  • 如宣传的那样,全面。
  • 成熟:已经10多年了,有良好的稳定政策和非常活跃的发展。
  • 使用最新的Unicode+CLDR+BCP47+其他标准。
  • 基本上到处都能编译。 C/C++/J 并由/实现 python、perl、php...
  • 开源,贡献者的多样性不断增加。
  • 附带上述所有需要的数据(见下文,在缺点下),但可定制。 (可以添加自定义数据)

缺点

  • 需要更好的文档(我们尝试 - 有人想要帮助吗?)。
  • 很多 API——“它太大了#1”很难知道该使用哪一个,即使它可以满足您的需求。
  • 被多种类型的程序使用,从嵌入式设备、智能手机到主要桌面应用程序,再到数据库、操作系统和企业应用程序:因此,可能有多种方法可以完成某件事。
  • 附带上述所有需要的数据! “它太大了#2”(见上文,在优点下),但可定制。 (可以根据尺寸进行裁剪)

A data point: Our (yes, that's a disclaimer) list of users and bugs is all on our project site.

IMBO (biased):
Pros:

  • works as advertised, comprehensive.
  • Mature: 10+ years now, with a good stability policy and very active development.
  • Uses latest Unicode+CLDR+BCP47+other standards.
  • Compiles basically everywhere. C/C++/J and called by/implements python,perl,php,…
  • Open source, with an increasing diversity of contributors.
  • Comes with all needed data for the above (see below, under cons), yet customizable. (can add custom data)

Cons:

  • Needs better documentation (we try- anyone want to help?).
  • Lots of APIs- "it's too big #1" hard to know which one to use, even if it does what you want.
  • Used by lots of types of programs, from embedded devices, smartphones through major desktop apps through databases and operating systems and enterprise apps: So, there may be multiple ways to do something.
  • Comes with all needed data for the above! "it's too big #2" (see above, under pros), yet customizable. (can be trimmed down to size)
日久见人心 2024-10-13 15:45:05

ICU 很糟糕:尽可能避免。

  • 尽管它已经存在了很长时间,但其中的基本内容还是被破坏了,例如在这个问题中:修复正则表达式以解决 ICU/RegexKitLite 错误

  • 由于时间未指定,时间处理被破坏:你可以'在许多 API 中,无法以可靠的方式区分 DST 和非 DST 时间。

  • 它非常巨大。

  • 文档需要大量工作。较少使用的功能通常无法使用,因为无法找出正确的使用方法。我花了几天时间尝试让音译按照解释工作,但最终放弃了。

  • 它喜欢在 UTF-16 中工作,这是所有可能的世界中最糟糕的。

  • 支持对问题没有响应。

  • 根据我的经验,直到项目完成大部分后,您才会开始发现隐藏的缺陷,而这些缺陷将占用您 90% 的时间。

对于许多人来说,别无选择,所以你只能坚持下去。

ICU is terrible: avoid if at all possible.

  • Despite its age, basic things in it are broken, for example in this question: Fixing regex to work around ICU/RegexKitLite bug

  • Time handling is broken as times are underspecified: you can't distinguish a DST from a non-DST time in a reliable way in many APIs.

  • It's freaking huge.

  • The documentation needs a lot of work. Less-used features are often unusable because there's no way to figure out the right way to use them. I spent days trying to get transliteration to work as explained and eventually gave up.

  • It likes to work in UTF-16, the worst of all possible worlds.

  • Support is unresponsive to problems.

  • In my experience, it's not until you're most of the way through a project that you begin to discover the insidious flaws that will take 90% of your time.

For many people, there is no alternative so you're stuck with it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文