Live data from Hacker News

Retiring Wave

git-wip-us.apache.org

51–60 of 98 posts

Re: Retiring Wave

#51
post #23

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 "…

> 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.

Re: Retiring Wave

#52
Wave was highly ambitious, but under resourced with a horribly botched rollout. It could have killed Twitter, Facebook, and preempted Slack, or better shifted them to a common open source framework which would have allowed a thousand twitters and fbs to bloom and interact. Real shame that OStatus couldn't get traction.

Re: Retiring Wave

#54
post #14

Earlier quoted context omitted.

Not just internally. I remember the massive hype around this being the "next email." I excitedly got as many of my friends onto there as I could. I can't really pinpoint any one thing. There really was a mass of mistakes that all lead to this imploding heavily. I seem to recall that the fate of GWT was intertwined heavily with it. Very heavyweight widgets to support the general idea of massive collaboration in real t…

Pretty sure the biggest mistake was the same as Google Plus': the invite system that artificially hampers growth. Since these platforms need to capture an entire network of people at the same time if there is something preventing someone from bringing all their friends/collegues in at the same time then it is doomed to fail.

Yeah, this worked fine for Gmail's early years because you can talk to people on other email systems. But Google tried to apply the same system to both Wave and Plus where the exclusivity made them comparatively useless.

I think they've learned the lesson by now at least, since their latest communication systems (Duo and Allo) had open signups. If those two fail it'll be because they were pointless (from a user perspective) entries into a crowded market of established players who already had network effect lock-in working them.

Re: Retiring Wave

#55
post #10

I wonder if Wave and Reader are hanging out in heaven somewhere.

If heaven is in the clouds, then I don't think they are hanging out in the cloud anymore.

Since they came from there originally, I doubt they'd end up back at Google Cloud. Maybe AWS? I just hope they don't get sent to, well, the bad place.. Azure..

Re: Retiring Wave

#56
post #51
post #23

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 "…

> 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…

Wave was federated/vendor-neutral/client-synced.

The federation protocol is described in http://googlecode.blogspot.com/2009/05/hello-world-meet-goog...

Syncing is described in https://svn.apache.org/repos/asf/incubator/wave/whitepapers/...

It was also every bit as buggy and confusing as Lotus Notes.

Re: Retiring Wave

#57

Earlier quoted context omitted.

Yeah, no, your impression is correct. Apache is and always has been a bit of an open source graveyard. There's counter-examples but even they have me worried. Airflow, originating from AirBNB, is now Apache Airflow: https://github.com/apache/incubator-airflow -- And I've been super hesitant to throw weight at it because of that, even though it looks actively maintained.

Airflow is extremely active — check the mailing list, Gitter chat, or even GitHub contributions. My company, Astronomer, also provides a hosted version of Airflow [1] if SaaS is more you're thing. [1]: https://www.astronomer.io/airflow

%s/you're/your

/me shudders

Re: Retiring Wave

#58
post #23

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 "…

Google 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.

Re: Retiring Wave

#59
post #51
post #23

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 "…

> 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…

CouchDB was inspired by Lotus Notes: https://www.wired.com/2012/12/couchdb/

Re: Retiring Wave

#60

Earlier quoted context omitted.

Can you explain your position a bit more, like which parts you think would be better decoupled?

I like airflow the dag/re-run/cron stuff but have a project running in py2.7 and one in 3.6, what do I do?

That's definitely a good question, and one that I don't think is clearly addressed in the docs (so I might take the opportunity to turn this into a little blog post later). tl;dr - Airflow can support running multiple Python versions.

Here's a three-pronged answer:

1. PythonOperator - Assuming you're running Airflow on 3.6, you can run your 3.6 functions with the normal PythonOperator.

2. PythonVirtualenvOperator - Then, if upgrading your 2.7 code to 3.6 is an option, I would; if that's a hurdle... You can run multiple Python versions mixed using the PythonVirtualenvOperator [1] to run the other tasks in dedicated 2.7 etc virtual environments. That's pretty simple if it satisfies your requirements, but it's not a foolproof solution if your reason for being on 2.7 is complex or some system-level dependency that requires more.

3. DockerOperator - If the setup requires more complex things to be installed, you can use the DockerOperator [2] and build out a simple Python Docker image e.g., [3]. This is the method we use to run other languages like Scala and JavaScript via Airflow.

Feel free to reach out via email if you'd like to discuss more or have questions - taylor [at] astronomer.io. We like to help people get started with our Airflow and have written a bit of content for it.

[1]: https://github.com/apache/incubator-airflow/blob/ba126926d7d...

[2]: https://airflow.apache.org/code.html?highlight=dockeroperato...

[3]: https://hub.docker.com/_/python/

Post reply on HN