3 ms·
Google Wave was really the spark that inspired me to "build a startup." With that said, it was a mess. It was a schizophrenic product that couldn't decide wheth
by dvt 9y ago
Google Wave was really the spark that inspired me to "build a startup." With that said, it was a mess. It was a schizophrenic product that couldn't decide whether it was a developer platform or replacement for email. It had "everything" in the worst of ways.
It really was a Frankenstein; I distinctly remember threaded conversations that wouldn't collapse, weird and inconsistent results when contributing to the same "wave," and an interface that was honestly pretty awful (not to mention cramped on the screens of yesteryear). There's more: Google wanted to create a protocol but the tech was invite-only (???), it wanted to replace email but no one else adopted it. The whole thing made no sense.
But after watching the Google I/O talk, I was enthralled. I thought to myself "I bet I could build that!" And really, even if Google Wave failed horribly, it did contribute to the "real-time" web we all enjoy today.
- derefr 9y ago> It was a schizophrenic product that couldn't decide whether it was a developer platform or replacement for email. In other words, it was Lotus Notes 2.0. One of these days, someone's gotta make a Lotus Notes 3.0 that actually makes good on the original premise, without screwing it up by adding too much other stuff (like Lotus+IBM did) or by forgetting what the problem being solved is (like Google did.) The original premise is pretty cool, once you see through to it. Notes did two important things: 1. Notes takes email message bodies and turns them into, essentially, the initial response-bodies of (gradually-enhanced) HTML5 web-applications. Each message body contains a common "program"—which may or may not require any bandwidth to deliver, depending on whether the receiving server already has other copies of it—and then, along with that program, it contains some initialization data customized for the recipient (like the initial response-body HTML in a gradually-enhanced webapp.) Your mail-reader becomes equivalent to a modern web browser (i.e. it's a zero-install application sandbox), except that there are no URLs—instead, you get pushed new pages [or new versions of pages] by other people, and then they stick around in your "cache" (your inbox) until you delete them. 2. Notes then gives those little email applets persistent "cloud" storage, in the form of Firebase-like synchronization to tiny per-applet databases that live on—or next to—the message author's IMAP server. (Notes' applet database server is called Domino, but it was essentially just Firebase's API backed by a bunch of BDB DB files on a disk—usually on the same machine that the IMAP mbox files were held on.) Together, that meant that you had a federated, vendor-neutral method of composing little applications like straw polls of what to get for lunch, or interactive infographics with live source data. Each applet's program would travel around by regular email; and each applet's data would be canonically on the applet-author's mail-server, but would be synced with anyone any time they opened the applet message. And then, along with that, you also get federated, vendor-neutral, PKI-keypair-based ACLs giving identity to every read or write, enforced by the applet DB server, that applet authoring software could then turn into simple access control settings for each Firebase-like object type. Wave took the whole distributed infrastructure of Notes and puts it into Google's cloud, but without any of the federated/vendor-neutral/client-synced stuff that was the whole point of the design. You got the same essential architecture (applets live inside messages; applets get shared cloud backend storage; the system syncs the state of "your" applets to local storage), but you no longer got any advantage from it: since you were talking to a cloud that could run arbitrary compute anyway, anyone in an enterprise who wanted to "author an applet" could just write (or rely on authoring software to generate) a little Google App Engine app, which would store its data in Google Cloud Datastore and use GSuite OAuth for login. All the same benefits, but now it's just a web-page. Open it in a tab, bookmark it, whatever. No need to push the app; just email people a link to it.
- lern_too_spel 9y agoWave was federated/vendor-neutral/client-synced. The federation protocol is described in http://googlecode.blogspot.com/2009/05/hello-world-meet-google-wave.html?m=1 http://googlecode.blogspot.com/2009/05/hello-world-meet-goog... Syncing is described in https://svn.apache.org/repos/asf/incubator/wave/whitepapers/operational-transform/operational-transform.html https://svn.apache.org/repos/asf/incubator/wave/whitepapers/... It was also every bit as buggy and confusing as Lotus Notes.
- deleted 9y ago[deleted]
- pokstad 9y agoCouchDB was inspired by Lotus Notes: https://www.wired.com/2012/12/couchdb/ https://www.wired.com/2012/12/couchdb/
- mseebach 9y agoIsn't your (1) the AMP for email that Google just announced?
- Spooky23 9y agoGoogle Wave could have been a killer product, but for a key mistake that is a bat light for failure — it was positioned as a replacement for email. Email is the ultimate killer app and ultimate whipping boy.
- jacobolus 9y agoThe “key mistake” was that all of the technical parts were poorly architected and horribly buggy, and then they tried to scale up the user base using a massive amount of marketing hype before their product or infrastructure could handle the load. As a result all the hyped-up customers were confronted by a terrible user experience, felt burned, and left. Without a completely different technical implementation from top to bottom it was bound to fail irrespective of how their marketing team “positioned” it. The UI was a GWT app written in Java and compiled to JavaScript which suffered from inexplicable UI hangs and all kinds of weird bugs in every corner case (it would e.g. get stuck in states requiring a page reload to fix). The “communication protocol” was opaque binary blobs of GWT stuff wrapped up in Jabber/XMPP (XML) but without really using most Jabber features. Basically not a designed protocol at all, just the most ad-hoc thing slapped together overnight, with XMPP used as marketing (because that’s “open”). The server was some closed source thing only hosted by Google. The original marketing claim was that this was all “open” and “federated” but it was not possible to run a third-party server, and it was not possible to implement a different front-end since the whole thing was coupled tightly to the GWT front end they had. The big innovation was supposed to be that some fancy “operational transformation” magic would merge different users’ diffs so that everything could be edited collaboratively in real time without conflicts and with minimal bandwidth, but in practice what that meant was they just sent the full content of every message on every keystroke (where “full content” here includes a massive amount of protocol overhead wrapping the messages) – maybe the fancy diff research stuff was intended for some future update that never made it. The front end really started falling apart horribly (slowing down to the point of being unusable) under any kind of larger group, because it hadn’t been architected to keep up with the load. From what I remember it mostly worked with about 2–10 people communicating in a group, and became entirely unusable with 50+ in a group. Disclaimer: I was never a Wave expert, just some guy who tried to read their docs and play with their technology and ended up laughing and sadly shaking my head all the way through, and it’s been a decade now. Some of my recollection could be slightly off.