【发布时间】:2011-03-15 15:15:06
【问题描述】:
首先我要非常感谢 Google GData API 的工程师所做的出色工作,我想提一下,这个问题并不是要批评任何事情。它只是指出一些事情。
谁能给我解释一下?据我所知,java 的 google api 客户端库的开发人员正在重新发明轮子。这就像为 Java 项目编写新的 JDK,因为 abdera 客户端执行 google api 客户端库所做的工作,并且 abdera 服务器功能和适配器也可以用于许多事情,例如条目持久性和许多其他事情。
我知道 google 数据协议是一种特定的 atom 发布,但如果需要使用 Apache Abdera 项目为此协议提供的一些花哨的扩展和功能,最好不要使用 google api 客户端库并使用 Abdera 从头开始实现客户端...而且我确信在很多情况下,它的功能(例如 Abdera 的 JCR 适配器)对于谷歌文档、谷歌翻译工具包以及其他大多数人来说都非常方便.
现在很高兴有一个 google api 客户端库可用于 google 文档,但是我将如何处理文档和 atom 提要响应?我相信在一半以上的情况下,另一边还有一个存储库或数据库。在这种情况下,需要 abdera,而不是仅编组/解组提要的简单 google api 客户端......
事实上,所有的 google API 都有一些东西要坚持。如果谷歌决定将精力投入到 Abdera 的增强或集成上,这将是有道理的……这不是……尤其是考虑到软件开发中一个众所周知的事实,第二个版本通常是从头开始重写的。 Apache Abdera 是一个已经存在 5 年的成熟项目,被大量应用程序使用。
如果有原因,我没有看到并且只使用拉解析器来实现客户端是非常必要的,我至少会使用不推荐使用的 xml 拉解析器。 Xmlpull.org 已有 6 年历史,但处于非活动状态,甚至没有实现 StAX api。 stax.codehaus.org 参考实现、JRE 默认 stax 实现、Apache Axiom 实现和主要的 woodstox.codehaus.org 实现会更好,为什么要避免规范和有支持和社区的活动项目?
我向 google api 客户端 java 库的开发人员对此批评表示歉意,但我真的很喜欢 google api,但是使用该客户端的第一个版本真的很痛苦,当前版本很好。但是实际上浪费了很多时间,这主要是由于重新发明轮子以及从版本 0 通过 gdata-java-client 到 google-api-client-java 的极端版本间更改。
最后,在人们投入时间和金钱之后,谷歌对 API 进行了限制,所以为什么要关心,对吧? :-)
我收回我说的话,从那以后软件和协议发生了很大变化......现在当 GData 也支持 JSON 时,使用它甚至没有意义!
【问题讨论】:
-
Google 对其基础设施所基于的任何代码的质量(可能还有许可证)都非常非常挑剔。在某种程度上,它有时看起来像not-invented-here syndrom。他们宁愿重新实现一个库,也不愿使用不符合他们需求的东西。这很好,否则我们不会有 Google Collections/Guava ;-)
标签: java google-data-api atompub apache-abdera