Log in

entries friends calendar profile My Google Pages Previous Previous Next Next
Web applications are frauds - Brett Morgan
Web applications are frauds
As a member of the secretive web application builder society, I am about to break ranks and point out a long held secret of our little group that many have known, but refused to admit.

Web Applications lose data. By design.

Have you ever been hammering on a web application with a team of people, say a bug tracking system, and had a recurring issue of small changes going missing? If you have, then you have met our demon face to face. Undoubtably, you questioned your perception, how could this software be breaking? We tested it, and it worked flawlessly!

Web software that handles edits of data only work when there are no clashing edits. If there is a clashing edit, then in the best case the second person to commit will lose his edit, and be informed of the conflict. In the worst case, the first person's edits will be silently over written. It is the silent data overwrite case that is the default in most web applications in service, because it is the easiest to code.

You can test this yourself easily enough. Open up a LiveJournal post or comment in two different web browser windows, and edit it in both. Commit one, then the other. Notice that your edits from the first submission are now missing?

How could this be? We had a long history of building applications that dealt with data properly! Well, one of the things we did, sleight of hand style, when we were creating web applications is that we dropped the data integrity maintaining locking strategy for database records on the floor. We had no choice, we never knew if someone was going to post back the form they were filling in. HTTP is stateless, ya see...

About the only web application that deals with clashing edits correctly is Wave.
6 comments or Leave a comment
certifiedwaif From: certifiedwaif Date: February 3rd, 2010 07:12 am (UTC) (Link)
And we continue to put up with this only because web applications are so incredibly useful!
domesticmouse From: domesticmouse Date: February 3rd, 2010 07:47 am (UTC) (Link)
They are better than what came before, yes. But, with some decent engineering we could actually have web applications that don't lose data... =)
(Deleted comment)
domesticmouse From: domesticmouse Date: February 3rd, 2010 07:55 am (UTC) (Link)
now i'm lost =)
(Deleted comment)
domesticmouse From: domesticmouse Date: February 3rd, 2010 12:16 pm (UTC) (Link)
One of the things my dad used to do in his days as a contractor was turn up on site, spend ten minutes on the keyboard, then turn to management and inform them that their computer has become corrupted, and needs to be brought back from backup.

After a couple of minutes of sheer terror as the company execs come to realise that their backup tapes were non-existant, he would then calmly inform them that their system was in fact fine, but that they should probably think about rectifying their backup procedures.

A similar trick can be used on your current employer with a seven year tax audit or similar. But it could very well get you fired. =)
From: (Anonymous) Date: February 12th, 2010 06:52 am (UTC) (Link)

You forgot Wikis

Hey, you forgot a huge amount of web applications out there: Wikis. At least the popular MediaWiki also got concurrent editing right, in my opinion. Wikipedia would be impractical otherwise...
domesticmouse From: domesticmouse Date: February 12th, 2010 07:25 am (UTC) (Link)

Re: You forgot Wikis

The only wiki that I've used that got concurrent editing correct from my point of view is Wave. That said, I haven't used MediaWiki with concurrent editing, but seeing as tho I've seen demonstrations of embedding Wave inside of MediaWiki's edit cycle, i'm a little confused.

That said, I am hopeful that Wave's OT and things like MobWrite can be spread around to make modification of shared state sane and non lossy in more web applications.
6 comments or Leave a comment