Hacker News new | past | comments | ask | show | jobs | submit login
Core Data Threading Demystified (realm.io)
29 points by astigsen on Dec 18, 2015 | hide | past | favorite | 3 comments

Glad to find that this talk included current, good practices for Core Data and not just a "it's very complicated so you should use Realm instead" style of talk.

(In fact, the speaker isn't affiliated with Realm and doesn't have much to recommend about Realm... so I guess, kudos to Realm for publishing the transcript, regardless.)

Quite the opposite, in fact:

> Q: I’m pretty sure that you are familiar with Realm. I want to know your opinion about Realm and Core Data. Should we use one or the other, or which one is more suitable for you?

> Marcus: Realm has a few things about it that I’ll discuss. First, my opinion on third-party code is well known: all code sucks. I think Realm is trying to solve a problem that is the incorrect problem to solve. They’re trying to be faster than Core Data, whereas Core Data is trying to be fast enough, but maintainable. In my playing and working with Realm, I find that the amount of code you write is about equal. Their migrations to me are little bit more voodoo than I’d like. They’re trying to be fast, good for them, but that’s not what I want. As a project leader or a developer, I want maintainability and consistency. My big concern with third-party frameworks is that they go away. It happens over and over again. We don’t know how long Realm’s going to be here. I don’t understand their business model. Core Data for me is good enough; it’s mature, it’s been around long enough, and it’s fast enough. If it’s not fast enough, I’m probably doing something wrong because I’m in object space anyway. There’s a lot of unknowns about Realm. The storage is opaque, for instance, and that make me little jittery. Whereas, for Core Data, it’s a known quantity. Apple’s not going to throw it away tomorrow. The SQLite is transparent. I can look into the data. I can get the data. Even if it does go away tomorrow, I can still look at it. To me, it’s good enough, but then again, it’s my hammer. That’s the thing that I use the most. Is there anything wrong with Realm? No. Play with it, use it. It might be great. But, to me, it doesn’t solve the right problems. It’s not significantly better than Core Data to the point where you’d say, “Wow, this is so much better, why would anybody use Core Data?” Instead, I see it as, “Okay, it’s faster. Awesome. Good for you.” It’s not less code, and it doesn’t have the maturity of Core Data yet. Ask me again in a year, I might change my mind.

I fully agree with Marcus here, Core Data has its issues but at least they're well-understood.

The most frustrating thing for me about CoreData, is this type of thing isn't included in the core documentation (at least not clearly).

I'm heartened to see that we were pretty close to the "right" way on the app we built with it though.

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