Apache Wave on Sandstorm.io
blog.sandstorm.io
blog.sandstorm.io
Wave was supposed to be a collaborative replacement for email built on the then-exciting XMPP protocol. It was marketed poorly, misunderstood, and eventually shitcanned because Google had no idea what to do with it.
Which is a shame because I liked Wave a lot.
The lag sucked, though. Just when the discussion would start to get interesting, it would slooooowwwww dowwwwwwn.
I mean, that'd explain a lot.
I felt like Wave very closely approached something useful in this space, but almost anything in communications is interesting when you have another person to talk to, and very little is interesting without one. That makes it very hard to judge if the platform is helping or not.
It was favored among the tech-hyperbole people who turn concepts like 'cloud computing' into meaningless phrases. But that faded away pretty fast.
Unfortunately Google decided to abandoned one of the actual good use-cases for it when the dropped XMPP support from Hangouts (by default), which still upsets me.
It may sound hard to believe, but yes that was part of it. XML's popularity in the year 2000 was similar to JSON's popularity today.
Even more importantly, though, XMPP provides structured datagram exchange between entities using email-style (user@domain) addressing. This notion is still exciting today.
Anyways, Wave using XMPP isn't very exciting, but the the thing that was exciting about Wave was that it was supposed to be this system that organizations could install and run internally - plus they could share their waves with other organizations that also were running wave servers. Alas, Google stood up one beta server which got overloaded and they never released enough code in a form suitable for anyone to stand up on their own.
Apache got a copy of what code was released in 2010 and it's taken 4 years for someone to get it to an easily deployable state.
The messaging system wouldn't have to individually add support for these things - it would just use XML schema to validate anything that got passed through. Data could come with XSLT to explain how to display it (i.e. your warhammer army list would come with a transform that told wave how to turn it into XHTML for display) - but the source data was still available in machine-readable form, with a canonical schema defined by a URL - we could have a single canonical format for everything, even things like addresses, and then rather than defining their own address type, any more complex data format that needed to include an address would just say "embed the address element defined at this schema".
It would work in the other direction too. Rather than fetching a wikipedia page, say, or a blog post, and getting a bunch of unstructured HTML, you'd get the article source in XML format, and an XSLT that said how to display that as the web page. There'd be no need for separate "web API" endpoints to fetch data in structured form, because every web page would simply be that structured data, plus a transform to render it as XHTML.
It was a glorious dream, and one that resonates even now. To my eyes the main - perhaps only - reason it failed is that XSLT turns out to be a horrible language to write and even more horrible to read, to the extent that even for transforming XML-like documents - literally the sole design purpose of XSLT - I'd prefer to use a general-purpose programming language, or even, shudder, Javascript. And people did.
Is this the real purpose of Wave or is this the purpose that came out because it was misunderstood?
Unfortunately, Wave was never given a chance to replace anything since it was a stillborn project that barely exited the launch phase.
If anything, we all learned that invite only soft launches on something that is expected to replace a service that is ubiquitous is not a very good idea. Early invitees got in, panned it, and by the time it went live, everyone already had a preconceived notion as to what Wave wasn't.
Pretty hard to get people on board when they first have to scrounge to get an invite to something they do not quite understand. Network effect--;
It could have been so big and awesome. I'm sure after a while the speed issues would have been ironed out.
On some large subjects with many people contributing the service was practically unusable.
I think where Google messed up was letting everyone try it on day one.
Pretty hard to get on board when day one is just laggy and chaotic. Performance--;
It could have been so big and awesome. I'm sure after a while the speed issues would have been ironed out.
That said, a self hosted Apache Wave to small teams seems like a good tool for collaboration.
What is this supposed to be - a new workflow? a new UI? a new paradigm to do something? Every discussion or webpage I see about this talks about mail. Is it applicable to any other application?
Instead of installing an App on your phone. You would install some service on a personal server. Without needing to be a technical person who understands configuring servers.
And for technical users, you can have one-click installs for apps that you know are secure, sandboxed against your other apps and more.
And for App writers, you have an API surface area that makes it easy to do authentication, sharing, etc...
There are lots of things to like here. And a lot of opportunity given how much richer an experience an actual persistent web server can offer over a traditional client app install.
(I am not affiliated with Sandstorm. Just dig the vision, and think that Kenton and his crew are pretty awesome engineers who can pull it off.)
Edit: Re-reading your post, I think you might have been talking about Wave and not Sandstorm :). Whoops. My bad :P.
Wave is really just a different kind of real-time collaborative document editing that extends documents into discussions rather than just flat blobs of text.
Wave also had its own email-like inbox for reading updated documents, and was marketed as improved email but it never really worked well for that.
These days I use Google Docs with commenting enabled for the sort of thing we used Wave for.
That made me a backer.
[1]: https://slack.com
You can learn more about what Slack is here: https://slack.com/is