Why doesn’t Microsoft Entourage use the Apple Address Book?


A fairly common question that comes up in mailing lists and other forums is “Why doesn’t Entourage use the Apple address book?” I’ll give you my take on that here. As a disclaimer, I want to make sure it’s clear that this is my personal opinion, and doesn’t necessarily reflect the opinion of the MacBU, where I used to work. For background on the Address Book APIs, see Apple’s developer documentation here.


 


I’ll break down the problem into 3 levels of integration that could take place. First, I want to talk about the benefits of integration – they are significant. Having a universal address book means that you only have to manage a single contact list – you don’t have to keep multiple contact lists in sync and up to date. It also means you plug into iSync and can sync your contacts to any devices/services that iSync supports. You also get integration with other applications that build on the Address Book, like iChat. If you were writing a new application, you’d also get the additional benefits of not having to write a bunch of Address Book related code. However, in the Entourage case, we already have a rich contact experience backed by a powerful database.


 


The 3 levels of integration are:


 


1. Remove all contact related UI from Entourage and use the Address Book completely


 


This would mean we remove the address book tab from Entourage, and all of our contact related UI. When a user wanted to manage contacts, we’d have some entry point into Apple’s Address Book. On Panther, when choosing contacts, we could use the new People Picker dialog (confusingly, only mentioned in the reference section of Apple’s documentation). The advantage to this approach is that it gives the most UI consistency. We would use Apple’s Address Book APIs to do things like autofill when addressing messages. However, the Address Book application itself is not very extensible, so we’d have to loose a bunch of features including:


 



  • Project Management (a huge new feature in Office 11)
  • The ability to categorize contacts
  • The address book fields we support but Apple doesn’t (there are a bunch)
  • The ability to link to contacts to other items
  • Custom views that include contacts
  • Messenger integration

 


I could go on, but there are several show stoppers there already. I also believe that there is a lot of value to having everything in one app with a consistent UI.


 


2. Keep the Entourage UI, but talk to Apple’s Address Book database instead of the Entourage database


 


This one seems straightforward at first. The APIs support some simple database like functionality like searching (but not sorting?). It also allows you to put arbitrary properties on contacts. In many ways, this would be ideal because we could keep the Entourage UI with all of the fields we support, but still have that same data available in Apple’s Address Book application and to all other applications built on it.


 


However, there are lots of complications. For example, Entourage supports multiple “Identities”, where each identity has its own database and its own set of contacts. How would this work in this scenario? You’d switch identities, but have the same set of contacts available with identity? That would be really confusing.


 


And how would links of various sorts (including categorization and projects) work? Things could get easily out of sync because the user can independently swap the two database files. This will easily lead to inconsistency.


 


Also, Apple’s Address Book database is missing many features that would allow us to have the scalability, reliability and performance required. For example, in Entourage, when you look at the contact list, we only have the contact in data in memory for the contacts being displayed. This means that when you have 10,000 contacts, we only have to load in the 20 or so that would need to be displayed. With Apple’s APIs, I see no way to do this. We’d have to load all 10,000 contacts in memory. There are also no APIs to do optimized sorts. With Entourage’s database, we can very quickly sort the contact list on fields we choose to index (and others are slower). We can also do highly customized searches which are used for things like our address autofill and custom views. And, Apple’s Address Book does not support locking of records while making changes or atomic commits.


 


It would also be a lot of work to pull this off. Entourage’s code is built around the Entourage database model. Plugging in a different database, especially one so different would be a huge undertaking. We’d have to make major changes to the table code, the contact edit dialog, the AppleScript support, custom view code, and everything else that touches contacts. The opportunity cost would be huge.


 


3. Sync the Entourage and Apple Address Books


 


This is actually the solution I think makes the most sense. The basic idea is that Entourage continues to use its own store, but the contacts are kept in sync. This has all of the advantages of #2, except that there is some window when the stores may be out of sync. It’s orders of magnitude less work than #2, and you don’t have the disadvantages mentioned above. I’ll break this down into 3 options:


 



  1. Use iSync: One great advantage to this would be that we could apply the same work to sync tasks and calendars so you’d gain all of the benefits for those object types as well. The drawback is that the iSync APIs are closed L I think this would be the ideal way to go if it were a possibility.
  2. Write code in Entourage that syncs using the Address Book APIs: This is a reasonable alternative. We could be smart enough to know when things change in Entourage or the Apple Address Book to sync as needed, and only what’s needed.
  3. Wait for a third party to write one: This already exists! Paul Berkowitz has written an AppleScript solution available here. So, if you can download this today and the Apple Address Book and Entourage in sync for only $15!

 


I hope this clarifies the question for everyone. As I am now working on the people and groups platform in Longhorn, the tables have been turned on me. Now, I’m left wondering how 3rd parties will build on top of the solution we will be offering on Longhorn. This entry has already gone on far too long, so I won’t ponder that now.


 


[Update: Fixed link to Paul’s script. Thanks Dave!]


Comments (32)

  1. CC says:

    Disclaimer: I don’t use Entourage (I can’t afford it).

    Surely one question has got to be, do Mac users WANT all of the extra functionality that Entourage offers over AAB. On the whole I believe we’re much simpler people – if harder to satisfy … is there really a need for anything more than AAB?

    Also I wonder do you have any sort of data to quantify how Identities are used (if at all)?

  2. Dan Crevier says:

    I can’t share any data, but we do *extensive* customer research. I don’t buy your comment that Mac users are simpler people. Mac users demand simple, well thought out user interfaces, but they want the power underneath.

  3. Robb Beal says:

    You left out another major option! Support the major contact export format types (FOAF and vCard). It has the obvious benefit of not forcing every app-to-app integration to go through the Address Book and doesn’t preclude apps (including web apps) that use FOAF exclusively.

    Apple would have seen much greater adoption of the Address Book API if they were to have done any of the following: a) open-sourced the code, b) allowed share governance of the API with interested parties, c) not tied a full-featured Address Book app to the OS.

    Instead of *building* trust with developers who had cultivated or were innovating in the people-centric app space, they chose a path that *destroyed* trust!

  4. Dan Crevier says:

    Entourage does support vCard, but I’m not sure how this is relevant. You can easily import/export between Apple’s Address Book and Entourage, but that doesn’t help the universal address book problem. You still have to manage your contacts in multiple places. Also, both Entoruage and Apple’s Address Book have rich APIs for getting the data out.

    I don’t see how any of the things you suggest Apple have done to improve adoption would have helped. In fact, I think not providing a full-featured Address Book app would have made the platform useless.

  5. Robb Beal says:

    Dan, I don’t believe the benefits of centralization outweighs its costs (e.g., security and privacy). It’s an all or nothing proposition. Either every app that deals with people adopts the API or there’s no guarantee of radically simple (e.g., direct manipulation) interoperability between two apps (without involving a bridge app like AddressBook.app).

    Also, centralization tends to be a large drag on innovation and social software is currently a hyper-innovative market. Developers (and thus users) wait around breathlessly for the platform vendors for new functionality and use it as an excuse for not working together. Any of those developers (and their investors) willing to take the risk of innovating are often rewarded with the platform vendor incorporating the innovation and tying it to the OS (ie, not making the functionality available separately for a price), thus dramatically devaluing the innovation.

    Now is the need for shared governance of this API clear?

  6. Dan Crevier says:

    So, it sounds like you think in the ideal world everyone should have their own contact store, their own feature sets, and their own UI. I disagree, but I’ll take that as your opinion. Given that, I see no need for any APIs or shared governance. Just let everyone do their own thing and you should be happy.

  7. Gabe Lawrence says:

    Sorry but I still think that option #2 is the right way to solve the problem. Having to manually sync multiple address books is both painstaking and error-prone – especially when factoring in a PDA into the equation.

    While I understand that using the Apple Address Book would require a non-trivial Engineering effort, I think that several of the arguments you present are red herrings. 1) Most people have far less than 10,000 contacts in their address book. Even if they did, virtual memory was designed to solve precisely this type of problem. 2) Perhaps it’s time to re-think the Identity feature. It’s a lot cleaner to let the OS change identities by simply logging in as a different user. This paradigm is a lot simpler and it makes all the database switching and link issues go away. 3) Record locking, commit, and roll-back options are important for comprehensive database integrity. For this application though, I’d consider them drastic overkill. We’re talking about single-user access to a single database. This is one of those instances where the diminished returns hardly justifies over-engineering the solution.

  8. Robb Beal says:

    No, I’d like to see everyone work together more like peers. As I said in your initial post about the analogous Microsoft API, shared governance would likely be an acceptable compromise for me as a MS developer.

    Imagining myself as a decision-maker at a platform vendor operating in today’s context, it’s difficult to imagine not recommending shared governance as a compromise *for this particular API*, given its significance.

  9. Jim Royal says:

    I understand the development and cost concerns, but frankly, this discussion is a prime example of simplifying things for the developer at the cost of simplicity for the customer. The poles are reversed, here.

    There are a variety of shareware and freeware products such as label-makers, mass mailers, and others that make use of the Apple Address Book (and databases such as Now Contact). If I’m not using Entourage at all, the other Office products must provide access to the Apple Address Book for Data Merge and other uses.

    Syncing is an interesting idea, but only if I use Entourage. I stopped using Entourage because a) searching for information in emails was so annoying, an b) because it does not use Apple’s Address Book.

  10. Dan Crevier says:

    The sync would *not* be manual. It would be automatic. Basically, Entourage would detect a change on either side and kick off a sync. The time where the address books are out of sync could be a mater of seconds.

    There are users with 10k contacts in Entourage. They would not be happy if it suddenly became much less usable.

    It is not actually a single user system. Multiple applications can be accessing the database at once. For example, iSync may be syncing contacts with .mac while you are editing it in Entourage.

    In response to Jim, the sync could actually happen without Entourage running or without the user being an Entourage user if it was so designed.

  11. germ says:

    I really cannot see any "show stopper" in the list of things mentioned as a reason not to use AddressBook exclusively, if one desires.

    One more reason not to use Entourage.

  12. davecort says:

    Ah germ, the troll. So good to have you playing that role at tonight’s performance. Spot on, I must say, if a bit overdone. I mean, come on… "M$"? Don’t you know that the Microsoft folks have reclaimed that as a label of pride?

    Regarding the Entourage/Address Book thing, I think it’s very important to note that Entourage (and it’s precurson Outlook Express 5) was around at least 2 years before Apple’s OS store was viable for 3rd parties to use. If this had been around when the app was first developed (as many of the shareware/freeware apps Jim mentions were), it probably would have been a different story.

    And as Dan points out, there is opportunity cost to going back and retrofitting a feature that already exists. Certainly the marketing team wasn’t demanding this feature over things like an updated Junk Mail Filter or the Project Center.

  13. John Maher says:

    Dan:

    You mentioned Project Management as a feature in Office 11. Could you please elaborate? Is there going to be interoperablity between MS Project and Office 11?

    Also, one of the features that hasn’t been mentioned on the AB / OS side of things is AB’s leveraging Services. Is Entourage taking advantage of this functionality available in the OS?

    Thanks

  14. Dan Crevier says:

    John, check out http://www.microsoft.com/mac/products/office2004/movie.html. It’s not project management in the MS Project sense. It’s an overloaded term.

    Entourage 2004 does support Services. Go nuts 🙂

  15. Dan, let me first say that I really appreciated this post. Because, obviously, Entourage users have wanted to keep their Address Book in sync with Apple’s Address Book in order to reap the benefits of having only one contact database to be shared between all apps. Apple’s been selling that fantasy since OS X 10.0, but it’s still not reality and it’s partly their own fault.

    If you used Entourage prior to OS X, you quickly noticed how bare bones Apple’s Address Book was. There are many more fields in Entourage’s and it is generally far more useful. Those people that started with Apple’s Address Book probably consider Entourage’s too intimidating and they’re free to stick to Apple’s offering.

    I think the real problem is relying on Apple, who is fickle. I remember when 10.2 came out and many people’s Address Book contacts were completely wiped out on upgrading because Apple changed the whole program around. Every time there’s a new version of the OS, there’s a new version of Address Book and Entourage would probably have to be continually updated to deal with the changes in the 10.x and the 10.x.x updates. Multiple versions might have to exist in order to accommodate 10.2, 10.3 and 10.4 users.

    And what if Apple spun off some future version of Address Book, Mail and iCal into some kind of pay-for product like iLife? ("Only $33 for three great apps! They cost way more in the Windows world!"). Would Office owners also have to purchase that bundle just to have e-mail contacts?

    The benefits of having a single contacts database aren’t worth that hassle/uncertainty.

    P.S. Glad to know that Services and long filenames will be supported in 2004. But will Entourage be available for purchase separately like Word and Excel? I can find no info on this elsewhere.

  16. Dan Crevier says:

    An Entourage X is available standalone now: <http://www.amazon.com/exec/obidos/ASIN/B000078CTT/&gt;. I can’t speak for MacBU’s plans on offering an Entourage 11 standalone.

  17. I think that the real future of an address book, be it Apple’s Address Book or Microsoft Entourage, should become more of an LDAP editor rather than just a simple database. The ability to be a stand alone application or a network resource editor is where both of these products should be going.

    I am not an entourage user yet, but I would assume that in both applications a user can view LDAP network resources. The next step to focus on is becomeing a resource editor for this.

  18. pragma says:

    Dan,

    May be off post, but this is what I’m looking for. Would it be possible to sync Entourage directly with external devices through iSync? I don’t have a need for Address Book or iCal, if I could just get my appointments and contacts directly from Entourage to my Nokia 6600. Now I have to go via importing in iCal (which isn’t a sync) or the Paul Berkowitz script. If iSyncing to external devices is not made possible, why not?

  19. Dan Crevier says:

    iSync is a closes system and isn’t open for 3rd party developers to write adapters to sync to/from other sources/devices. Hopefully this will change some day, but what that means is that in order to sync your data to a device that iSync supports, you have to get that data into the Address Book or iCal. You could use Paul’s script to get your data into Apple’s data stores and sync them to your phone, even if you don’t use those applications.

  20. rg says:

    I for one couldn’t care less if Entourage syncs with Address Book. I tried the Apple Apps as soon as they came out and went right back to Entourage. I don’t like having to go to all these different apps for my info, Calendar, Address Book, and Email. I like having it all together in one nice neat package. I find Apples Cal and Address Book to be inferior to Entourage anyway and I have no problems syncing Entourage with my Treo 600. It just makes more sense to me!

  21. Carl Erling says:

    Hi there, I am just about to evaluate the new Entourage 2004.

    Back in OS9 times, I used Entourage and loved it, then came iSync – and the handy way to sync a calendar and the addresses with my sony mobile and the ipod was overwhelming. That killer feature was the reason to go away from Entourage (not to forget to mention the ugly violet/gray logo 🙂

    Dan, the new Entourage looks so promising, but there is no Sync at all to anything now? (I didn’t even find an initial import for the addresses and calendars at setup.)

    Don’t you think that the missing sync feature might be not only for me the main reason to stay away from your great app but also for many others?

    You tell us that I need two 3rd party scripts first to sync to ical and to addessbock and then sync the rest and then run those scripts again to finally receive the update calendar entries from the phone? – If there isn’t a better way now, why is that script *3rd party* and/or why does Entourage not uses its own way to communicate with common handys and PDAs…. I really cannot follow your policies…

  22. Dan Crevier says:

    It includes built in Palm sync support. It also has import (File->Import), and export.

  23. John Laudun says:

    I have to agree with the author that Entourage handles a lot more than AddressBook, which I regard as the least of the iApps that have been bundled into OS X. I use Entourage 2004, and I enjoy the very nuanced ways I can connect things — and I bet I only use a third of the app’s potential. The only thing I wish Entourage had was direct access to iSync’s APIs (or whatever they are called) so I could sync directly to my iPod. There used to be a conduit that took over syncing with a Palm device; is there anything like that in the works for Office 2004 and with the wider variety of devices now available to Mac users?

    By the way, congratulations on the improved interface in Entourage, but there is still some miles to go there. It’s considerably improved from Office X, but it does not yet possess the simplicity of design that apps like Safari or Mail have. (And, yes, I know Entourage does a heckuva lot more; it’s just a bigger interface design challenge that’s all.)

    I don’t particularly care for all the comments that somehow make everyone in the MacBU out to be microserfs or part of the larger conspiracy — and, by the way, I do think there’s plenty of validity to much of the conspiracy talk, just not at the developer level. Entourage is much improved. Word is improved a fair bit. PowerPoint still has huge pluses balanced out by an equal number of equally huge minuses and Excel is still Excel. (What can I say? It’s the spreadsheet which tries to be everything to everybody.)

  24. Scott Rose says:

    Great news! Apple is opening up the API’s for iSync in Tiger! Yahoo! So perhaps Microsoft WILL build in synchronization between Entourage & Address Book.

  25. Mark says:

    I am disappointed with Apple’s address book. It is seriously under powered for my needs. Apple needed to beef up the Address book, possible with an easy "user mode" And entourage is better because it is one program, there is better integration between all the things which go together–tasks, calender, contacts and email. this is three different apps under Apple.

    But it is annoying the the two cannot agree on a file format.

    I like having the idea of a central database, but up until now Apple has not been able to carry it out better than microsoft, despite the fact that entourage is clumsy somehow with the windows, the project center is a bit lacking.

  26. The issue of Why doesn’t Microsoft Entourage use the Apple Address Book? has some interest to me – in the last 6 months I have gone back and forth between using Apple Mail and Microsoft Entourage. It’s a dead heat…

  27. I’ve been trying out the trial version of Office 2004 for the Mac (and should have a real copy of it on the way very soon now). I have to say Microsoft has really done some cool things here. The…

  28. Ted says:

    The issue of Why doesn’t Microsoft Entourage use the Apple Address Book? has some interest to me – in the last 6 months I have gone back and forth between using Apple Mail and Microsoft Entourage. It’s a dead heat…