Making Google’s CalDAV and CardDAV APIs available for everyone
googledevelopers.blogspot.com
googledevelopers.blogspot.com
For me, openness is a relatively unconditional principle. You do it because it is a virtue in and of itself. To hear that we need to spell out specific use cases to justify something being open seems to indicate that Google slightly misses the point. Google shouldn't have to like our reasons for wanting things open. Google should have to justify why they are closed. Indeed, it's in the most unfriendly situations when the openness matters (ie: we want to get our data out of Google and move away from Google services).
So while I'm happy to hear this, and I know I'm picking nits here, it still doesn't quite feel like the "old" Google that really made a principle out of these things.
Incorrect. They said they were going to make it a whitelisted, by-request, partner-only API for that reason, rather than that they were going to close it down. There is a fairly significant difference.
> For me, openness is a relatively unconditional principle. You do it because it is a virtue in and of itself.
In the real world, few things are unconditional, and while Google has certainly claimed openness as one of its values, Google has never claimed that using open standards is an unconditional principal that is never weighed against other concerns.
This seems like a rather entitled position to take. By what reasoning is Google, a private, for-profit entity, obligated to make anything of this sort available to you?
Personally, I'm most grateful to the core group on the team that listened to both external and internal feedback and then went back to see how they could make things better. I understand and respect if those folks want their privacy, but I thought it was really great to see them not only change their mind, but ask about how to push more on openness in this area. At this point, Google supports open standards for calendar, contacts, and email. It's great to see CardDAV open up to everyone.
Of course I totally understand if you either don't know, or aren't allowed to comment. Just curious if it's something that's even a point of discussion or if everybody considers the issue closed, done, over, fini...
I'm an advocate for the idea that Google wants to compete on a level playing field, which leads directly to the fact that I believe Google should also support open standards and interoperability. That means that any time we aren't doing that, we need to have a really, really good reason for it. That said, after a ton of discussion about XMPP internally, I understand the team's decision and their reasons.
| Google is opening up CardDAV
CardDAV was accessible, but it was not documented. Some Googling could get you some archived mailing list threads where people posted the 'secret' URLs[1]. Even then, I couldn't get responses to all of the requests defined in the RFC. I remember getting a listing of supported request types from the server, but not all of them worked. Also "All Contacts" was not accessible. "My Contacts" was the only address book accessible to CardDAV.For reference, I've put the stuff I was playing around with on Github: https://github.com/bsandrow/scratchpad-google-carddav
[1] I say secret because those mailing list posts were the only references I could find to them, so I don't know how they were obtained.
It's very much in Google's interest to encourage task-specific protocols, because they can be attached to subscriptions, and subscriptions are denominated in real currency. If Jane Smith knows that GAE has good support for syncing her calendar to her iPhone, she's more likely to use it as her company's email/calendar/documents provider.
Even if they did show add in these products, how does that relate to supporting standards as alternative means of accessing your data? Like in Gmail, which shows ads in the web interface but also supports POP and IMAP.
[1] https://play.google.com/store/apps/details?id=org.dmfs.calda...
[2] https://play.google.com/store/apps/details?id=org.dmfs.cardd...
Or am I being downvoted for being critical of Google?
For service provided by Google, use the supplied sync adapter. Yes, it is not CalDAV/CardDAV, but a whole google account package.
For third-party services, use adapters supplied by these third parties. The third party adapters have the ability to be first class citizens in Android, but to make them so is up to their authors.
That being said, there's nothing stopping someone from writing a proper CalDAV/CardDAV adapter and releasing it on the Play Store. But with all of the claims of Google supporting open standards I was highly surprised to see that Google neglected to implement CalDAV/CarDAV in Android.
In that case, I guess that we can praise Apple for meeting the "crazy high bar" for "supporting open standards" since Apple decided to include support for the most widely used open protocol for calendar and contacts in their mobile OS.
If so it is a bit of a weird thing for Android not supporting those protocols to be considered a 'crazy high bar' of effort. If the other smartphone OS's support them, it is somewhat curious that Google doesn't as well. Even when they support it server side. Strikes me a bit too much like a Hotel California situation.
I'm not sure why posters ITT are acting as if I am making demands to Google. In my original post I simply stated that "it would be nice" to see native CalDAV/CardDAV support in Android. But apparently making suggestions for a better product by providing the same support for open standards that other OSes provide is "a childish perspective" according to a Google employee [2]. I guess we need to keep in mind that a client and a server are barely even related [2]. TIL.
[1] http://www.engadget.com/2013/05/14/windows-phone-8-summer-up...
For example, Samsung, Asus and Sony do exactly that. They provide their own sync adapters. Maybe that's more important to them (and their customers) than generic CalDAV/CardDAV.
I do find the dichotomy of supporting "open" protocols to their service, but not from their operating system a bit odd. Though in that respect Apple isn't much different regarding imessage/facetime/etc...
I guess I would rather have my device/os support open standards over the service I might use them upon.
For an OS, it makes more sense to err on the side of supporting fewer protocols by default and allowing users to clients to add the ones they need than bloating it up with all possible protocols you ever might want to connect to on any server, anywhere.
Trying to build CalDAV and WebDAV into the Android OS wouldn't work, because they would be dependent upon those applications, which would then make them essential OS applications.
It does not matter, as neither AOSP nor vendor-specific Contacts or Calendar applications contain any protocol code. These frontends use contact and calendar specific content providers, which in turn provide plugin based API for sync adapters. Google's own sync adapter is such plugin, as well as Facebook's or even Microsoft's (for Skype contacts).
It is true, that there are no CalDAV/CardDAV sync adapters on the devices. However, because not everyone is interested in one, it is perfectly fine to install them from Play Store for those interested.
I do realize that all of these run in userspace and technically are not a part of the Operating System but they are provided with the distribution/purchase.
Or perhaps because it's kinda silly to say, "Oh, you gave me one thing? Now give me another thing!" It's just . . . a childish perspective? I'm really not sure how to describe this.
The personal attacks based on your perception of my comment are frankly unprofessional and completely unnecessary.
But I suppose you have a different standard for that sort of thing.
Apparently not.
It's another to provide an implementation of that protocol on a different system. Why should they? They use their own protocol for this task. They don't provide an XMPP client either. Let others fill that gap, though I understand your frustration that current candidates are insufficient.
The following is from the FAQ[0]
Why don't you make it open source right now?
Because it's not ready yet. Some parts of the source code are quite messy, it would be too embarrassing to publish it ;-)
Silly.[0]: dmfs.org/wiki/index.php?title=CalDAV-Sync_FAQ
While federating with XMPP they can expose only a subset.
> I think a better plea would be for Google to release Hangouts as a protocol.
I'm only for it. Which doesn't preclude the option above. Additionally, Google can extend XMPP if it lacks what they need.
It's my understanding that XMPP is an exceptionally verbose protocol, built on XML. It's great for interoperability, but there are better formats available now, including JSON and msgpack, which would be much more ideal for mobile IM.
JSON isn't less verbose by the way. It also lacks namespaces, so I doubt it can help for a complex and extensible protocol.
Edit: Interestingly enough, there is a (apparently satirical) XEP for this:
I really hope they do this. And, truth be told, I'll be a little bit (but not totally) surprised if they don't. Google have, despite some recent criticism, been fairly good about supporting open standards and protocols in the past.
> In order to create a cohesive product, you can't have
> half your features not work with 3rd party clients that
> people might use.
Why not? Having clients with a range of functionality is how the entire open-standards world works. Somehow, the world wide web continues to work just fine even though it's possible for people to use any browser they want.If a user has a third-party client, and it doesn't support some fancy feature that the first-party client supports, that doesn't seem to be a big problem. I don't think a significant number of people would care if using video conferences required the official client.
When it comes to a commercial product like Google Hangouts, allowing users to use unsupported third-party clients is a big risk. People will conflate the client and the service; problems with the client will damage the reputation of the service, and so on.
> There are countless standards in place for the
> reproduction of content on the web, and these days most
> popular browsers are quite good at supporting those
> standards.
In many areas of the world, IE is the most popular browser by a huge margin. Even in America, IE still has a 40% market share[1]. That's a huge number of users which will not be able to use modern web standards.[1] http://clicky.com/marketshare/us/web-browsers/
> When it comes to a commercial product like Google
> Hangouts, allowing users to use unsupported third-party
> clients is a big risk. People will conflate the client
> and the service; problems with the client will damage
> the reputation of the service, and so on.
This position flies in the face of both experience and common sense.Any serious commercial site is will support ancient, crufty, poorly-functioning browsers. Hell, if I want to order something from Amazon in w3m or lynx, I bet it would work. A customer with a terrible browser is still a customer, and maybe they are too busy managing their investment portfolio to be bothered upgrading their old Windows 95 desktop.
And nobody is going to sign up for Hangouts, miss the official client, and accidentally download Pidgin instead. If a person signs in with a third-party client, they know exactly what they're doing. They're not going to go post on the support forums saying "help, I can't find the videoconference button".
Requiring all users to install some proprietary application out of a desire for a "coherent experience" or to "preserve the service's reputation" is user-hostile behavior.
You might not want it, but such services haven't exactly failed in the market.
such services haven't exactly failed in the market.
Indeed, services like AIM, Skype, Whatsapp and etc. have many users, and are presented as generic instant messaging services, yet they don't allow their users to communicate with others. It's somewhat surprising to me, that people are ready to accept that fact. For some reason they'd see cutting their e-mail off from other servers as unacceptable, but the fact that they are confined within the network of proprietary IM clients doesn't bother them, even though because of that they need to use many clients or protocols to communicate with different networks having an account on each.
Making a system closed by boundaries automatically gives it limited scope, but forum messaging isn't any more limited in scope than results from those closed boundaries. Ditto with social network-based closed mail-like messaging.
Hangouts, FB messaging and etc. are generic cases, not the ones which should be acceptable as confined environments (like your example of the forum messaging).
This makes no difference whatsoever.
I've suspected for a while that their issue with CalDAV was security. Currently you need to store a plaintext copy of the user's password to do caldav. The only copy of my google password in my iOS keychain is for caldav. Since Google Authenticator stores its key in the same keychain, both auth factors are there.
I'd kinda wished they'd propose fixes for caldav, rather than just drop it. Now it sounds like they're doing that.
Perhaps that could be enabled for all users regardless of 2FA activation, and be made available for use with these and other applicable APIs?
Just so you don't have to share the same password with multiple products.