

Are we going back to Client Server technology - kapso

I was just reading about Parse, a new startup on Techcrunch. There's kinvey that is doing similar stuff. While the idea is cool and definitely brings speed to creating mobile apps. But I feel we are going back to client server, except this time the client is Mobile. For now they are offering APIs or SDKs which let you store data in the backend without ever building a backend yourself. My guess is they are using key-value data stores that enables dynamic creation of data and attributes. They also offer APIs that let you build a query to fetch the data.<p>The problem with this approach is i.e not owning backend piece, soon your app will need some kind of backend business logic and not just data storage/access APIs. And when this logic is needed you will be left with no choice but to build this on the client, you mobile phone. So if you building for multiple mobile platforms you will have to replicate this business logic across all clients. Not very efficient in terms of cost, developer resources and time. This is exactly the reason why client server technology failed and could never scale.<p>While this may still work for apps (games may be) that are light on backend-logic, I feel there will be some duplicate work that will still be done if you develop across multiple mobile platforms.<p>Not sure how other folks feel about this.
======
aphyr
_This is exactly the reason why client server technology failed and could
never scale._

He said, on the internet.

~~~
kapso
Yea try scaling a legacy client server application. And you will know why its
dead.

~~~
aphyr
Depending on your definition of legacy, your argument is either incorrect or
invalid.

Case 0: Legacy means "unscalable". Argument cannot be used to evaluate the
scalability of client-server models.

Case 1: Legacy means "old or crufty". Successfully scaled legacy client-server
software includes SMTP, IRC, NTP, NNTP, HTTP, MySQL, Oracle, etc, and to some
extent, IP itself. Not to mention in-house systems like credit-card
processing.

Client-server architectures are immensely popular, perfectly capable of
scaling to high volumes, and used widely because they are easy to reason about
and secure.

Indeed, if you've spent any time working on distributed systems, you might
realize that scaling fully connected or peer-to-peer systems tends be _harder_
than client-server. Take a look, for example, at the horrifying complexity of
distributed agreement protocols like Paxos.

I'm guessing your statement is due not to horrifying stupidity, but some sort
of confusion over what constitutes "client server software". Perhaps
<http://en.wikipedia.org/wiki/Client%E2%80%93server_model> would be helpful.

