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)
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.
发布评论
评论(2)
数据点:我们的(是的,这是免责声明)用户和错误列表全部位于我们的项目中网站。
IMBO(有偏见):
优点:
缺点:
A data point: Our (yes, that's a disclaimer) list of users and bugs is all on our project site.
IMBO (biased):
Pros:
Cons:
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.