I'm not a mobile developer, which is probably why I struggle to see what Parse does? What does Parse give me (if I was a mobile dev) that I don't get from Heroku+libs? Are push notifications and identity so painful to deal with that there's a business in creating a full platform to deal with it?
Are push notifications and identity so painful to deal with that there's a business in creating a full platform to deal with it?
Yes. (at least on iOS, not sure about Android or Win)
Parse has an iOS data object that syncs properly, whereas there is no evidence that any developer has ever gotten Apple's own iCloud + Core Data to sync properly at the record level.
Parse is cross platform so you can easily get the same data for a user on a desktop, web, android, iOS and windows mobile app.
Cobbling all this together with Heroku + libs would be possible but would require a lot of work. Parse just works out of the box.
> Yes. (at least on iOS, not sure about Android or Win)
er, what? It's an afternoon's worth of work, involving basic PKI and TCP sockets. I know it's an afternoon's worth of work, because I've done it in an afternoon.
That's silly. Seeing as how I had to google PKI to see what it was, I doubt I'd be able to build a Parse-like service in one afternoon. Parse may not be strictly necessary, but it's a fantastically easy and cheap way for iOS (and Android and front-end and Windows Phone) developers to get their backend up and running.
> Seeing as how I had to google PKI to see what it was, I doubt I'd be able to build a Parse-like service in one afternoon.
Then it's something you would learn, and those several afternoons would mean that you'd be well equipped to tackle a similar problem in an afternoon later.
Basic x509 certificates and PKI is really something an iOS developer (or any developer, really) should be able handle. Understanding this stuff is pretty central to just about all secure communications we have between clients/servers anywhere. It's not like you have to reimplement a crypto library; you just need to know the basics of how they work.
I actually did build all of my company's push stuff for iOS in an afternoon. It's a very simple TCP protocol that's well documented. If you know anything about basic networking it's cake.
It actually is very easy, we have a tiny pushserver written in Python that was written in a day or something like that. It's been running for almost a year without a restart, so it didn't even need further development.
It's still an afternoon's worth of headache. Parse is just the time it takes to set up the certs, profile and configure your app. Plus, doing it DIY means you have to maintain a system for sending the notifications, whereas Parse provides that for you.
There's definitely a bit hand holding with Parse that makes it attractive to a inexperienced developer. If opening a socket and sending and receiving binary data makes you nervous, then Parse is going to make you feel a whole lot more comfortable.
But the real win with Parse is that for small to medium sized apps, you don't need to manage your own servers. Apple takes care of delivery, Parse takes care of the backend. You don't need to worry about uptime or maintaince or 2 am notifications that your server is down.
Parse is even more attractive to the experienced developer. After 15 years of backend bullshit, I was pretty stoked to find something which could make almost all of that pain and suffering finally go away.
Not everyone knows backend development. And going from 0-60 with rails/django/sinatra/flask is non-trivial for a lot of people with no server-side experience.
I know a lot of college students, for example, who know iOS development after taking a class, but don't know any server-side stuff.
"full mobile back-end" is pushing it. Don't get me wrong, I love what Parse has brought to the market, but the capability of it is limited at the moment.
One of the biggest limitations is the length for which cloud code methods can run. (Nothing longer than a second, IIRC)
You can build a social sharing app, or share some data between apps, but building a "product" on it is limited to very simple cases.