Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Core Data has been improved and stabilized by Apple for over a decade, is used internally by many first party apps in iOS, is well documented and fully integrated into Xcode, and heavily "marketed" by Apple at WWDC. Any perceived performance issues can be eliminated or reduced by using faults, indexes and improving queries through NSPredicates. Even one of the blog posts you quote above [3] states that if he was starting a new app today, he'd go with Core Data. So I'm just not seeing a need for yet another ORM solution. I'm not saying you shouldn't continue building it, but you guys need to do a better job explaining the differentiation against Core Data. One area could be sync, where Core Data still needs work, and is limited to iCloud's backend. Perhaps that could be your differentiator? But you're not talking about sync yet. So there's work to do in crafting your message. Fwiw, I'm a senior iOS developer who evaluates these things for a living.


Just to be clear on the topic, since this is an easily misunderstood aspect of Realm: we are not an ORM. We’re not built on SQLite, we’re not mapping to a relational layer, nor are we serializing objects from a third-party data representation: your objects in the language are exactly the same data that’s stored on disk.

We heard a lot of dissatisfaction from the community as far as Core Data is concerned (including from Apple engineers themselves). I’m also not entirely sure you could ever get Core Data performance to the levels we enjoy, since Core Data cannot be any faster than the SQLite underneath, after all. I do want to say that your feedback on how we present ourselves and the work ahead of us is spot on and much appreciated. Many thanks for speaking up, we will work hard to heed your comments & improve.


Just as another data point, I agree with magsafe. I've used Core Data a bit recently and haven't really had any problems with it (though I agree it could be nicer).

My huge, huge, huge problem, on the other hand, is sync. I don't want to get locked into iCloud and the idea of Apple offering multi-platform support is unrealistic.

If you offered this as a cross-platform solution + syncing I'd sign up immediately (it sounds like this might be where you're headed anyway).


Great attitude, and thanks for the clarification. Best of luck!


Anyone using CouchbaseLite?

http://developer.couchbase.com/mobile/#couchbase-lite

I see a lot of comments here about wanting a CoreData replacement that's better at sync, which is exactly the use case CouchbaseLite is meant to solve.


Seriously love this product. What the Realm guys are missing is the fact that Couchbase Lite is really a replication protocol overlayed SQLite. Couchbase Lite did not always use SQLite and is in the process of switching to ForestDB as the underlying persistent store. As far as API's go, I have not seen a more intuitive design than CBL's. It almost makes too much sense. Once you get Sync Gateway setup, you have a mini iCloud. Watch the CloudKit presentations and you'll see that CBLite solves what Apple is leaving up to developers as far as Sync goes.


There is another produce coming out from Cloudant very similar, but with even more friendly api IMHO

https://cloudant.com/product/cloudant-features/sync/


I think that's because Cloudant's solution is the same replication protocol (CouchDB) talking to it's hosted databases. Thank's for pointing this out, I didn't know about.


CoreData is not as stable as advertised. If you use it simply it works. However advanced use will quickly discover sharp edges. I devote a non-trivial amount of code managing objects between contexts and there are still FRC bugs. (e.g. sorted update.)

And it's all closed source.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: