3 ms·
Ah, thick clients are coming back again, and now we've reached the point where people start trying to build asynchronous applications because they're frustrated
by wrs 15y ago
Ah, thick clients are coming back again, and now we've reached the point where people start trying to build asynchronous applications because they're frustrated with choppy UI.
Unfortunately, pretending the network isn't there doesn't make it so. The flakiness has to come out somewhere, sometime. Either you make the user wait now, or you explain later, after you've lied about what you did. It's a tricky tradeoff.
Let's fast-forward to the end of the movie: You'll end up with a zillion special cases that are impossible to test properly. You'll decide to restore sanity by replicating the data into a client-side store with low latency and high reliability, so you can go back to a synchronous UI that your developers can reason about. All the craziness will be in a background process that syncs the client and server stores, which will still have to cause weird behavior as reality demands it, but at least the logic is contained. (I just described an IMAP mail client, or--for a Normandy-invasion-scale example--some versions of Microsoft Outlook.)
Then a new thin client platform comes along where you can't do all that complicated client-side stuff. The cycle repeats.
- rsanheim 15y agoExactly. Everything old is new again. There are significant costs for real world apps to what the OP is suggesting, and you can't abstract them away in a framework or library, as much as you may wish it to be the case. See also: http://en.wikipedia.org/wiki/Fallacies_of_Distributed_Computing http://en.wikipedia.org/wiki/Fallacies_of_Distributed_Comput...
- hello_moto 15y agoIt's a typical cycle in our industry. Once the community reached to the point of repeat-rehash-cycle, we tend to push things too far. Call it second system syndrome, call it ivory tower complexity or architecture astronauts. Some of us used to think that the overly complex solution only exist in Enterprise environment yet it happened everywhere a developer exist.