A Pissed-Off Tutorial for Google Wave (2010) [video]
youtube.com
youtube.com
The thing that's missing from "Google Docs" is a decent collaborative outliner called "Google Trees", that does to "NLS" and "Frontier" what "Google Sheets" did to "VisiCalc" and "Excel".
And I don't mean "Google Wave", I mean a truly collaborative extensible visually programmable spreadsheet-like outliner with expressions, constraints, absolute and relative xpath-like addressing, and scripting like Google Sheets, but with a tree instead of a grid. That eats drinks scripts and shits JSON and XML or any other structured data.
Of course you should be able to link and embed outlines in spreadsheets, and spreadsheets in outlines, but "Google Maps" should also be invited to the party (along with its plus-one, "Google Mind Maps").
More on Douglass Engelbart's NLS and Dave Winer's Frontier:
Google Docs is for writing documents, letters, school essays, etc... The output is a document of some kind.
Sheets is for performing calculations, modeling numbers, etc... the output is normally some calculated value (or values). The benefit of this over just writing a single function/program is that you can potentially have more insight into the way that calculation is performed, but in general, the output is some calculation.
But outliners are different... what is the result? The NLS demo describes a shopping list. Which is nice, and you can slice and dice the data around, but fundamentally, it's a shopping list. And that function can be achieved with Google Docs for 80% of the functionality. Sure, it doesn't make moving bananas and carrots into a 'produce' category easy, but with copy and paste, it's a pretty well solved problem.
But the basic outliner functionality you're describing -- what's it actually used for? What's the payload that you're organizing?
Even Dave Winer's tools were used not for making lists, but for making websites. There was a "payload" present. You were managing data for websites (at least, as far as I can understand it, I didn't have a Mac at the time, so never used most of the UserLand programs).
So, would you say the "point" for these tools is making other tools? For example, using Frontier to manage websites? Or Wave to make a chatting tool?
In my mind, this was the problem that Wave came across... it wasn't easy to describe what it did in a simple way. It wasn't email. It wasn't chat. It wasn't collaborative writing. It was the backend that made that all work. It was incredibly ambitious, and that made it difficult to get people to use.
If it was "just" chatting -- I think that would have made a huge difference. Users don't care that you're using OT to write messages on the fly... they just want to be able to chat with friends or colleagues.
So, what is the killer application for a collaborative outliner? Why would I need one? I'm genuinely curious as to your thoughts, as you've clearly spent a lot of time thinking about this.
You're right, you can represent tree-structured outlines in Word or Docs (or JSON in Excel or Sheets as I described here [1]), but it's clumsy and not well supported by the user interface.
[1] Representing and Editing JSON with Spreadsheets: https://medium.com/@donhopkins/representing-and-editing-json...
Where Frontier really shines is in its user interface and feature set, which makes navigating and creating and editing outlines very easy and efficient.
Frontier's main use was (tree structured) content management and scripting, and making websites is a popular application of that. It was extremely useful for making tools, and like Emacs, its power came from its extensibility.
Its pre-web predecessors [2] were ThinkTank (which started on the Apple ][ with a keyboard based interface) and MORE (which added a mouse-based drag-and-drop interface, that made it much easier to use without spoiling the ease of use of the keyboard interface, and also formatted graphics for making charts and slide shows).
[2] MORE (application): https://en.wikipedia.org/wiki/MORE_(application)
Beyond obvious stuff like content management, blogging, and scripting, I think there are many other killer applications of programmable outliners (just as emacs and spreadsheets have many applications), some old hat, and others undiscovered!
I wrote some more [3] about Dave Winer's work on Frontier, and linked to some screencasts he made that show how he uses it to organize his thoughts (about the history of outliners, in this case, which is beautifully self-referential).
I think the most important point that comes through in Dave's demos is that the operating system and user interface shell should support generic outlining and scripting at a very basic, built-in, ubiquitous level. But I believe Windows, OS/X, iOS and Android have a hell of a long way to go!
[3] https://news.ycombinator.com/item?id=20672970
Dave Winer's second outliner screencast:
https://www.youtube.com/watch?v=mgUjis_fUkk
Dave Winer's the many lives of Frontier screencast:
https://www.youtube.com/watch?v=MlN-L88KScw
Dave Winer on The Open Web, Blogging, Podcasting and More:
https://www.youtube.com/watch?v=cLX415mHfX0
>UserLand's first product release of April 1989 was UserLand IPC, a developer tool for interprocess communication that was intended to evolve into a cross-platform RPC tool. In January 1992 UserLand released version 1.0 of Frontier, a scripting environment for the Macintosh which included an object database and a scripting language named UserTalk. At the time of its original release, Frontier was the only system-level scripting environment for the Macintosh, but Apple was working on its own scripting language, AppleScript, and started bundling it with the MacOS 7 system software. As a consequence, most Macintosh scripting work came to be done in the less powerful, but free, scripting language provided by Apple.
>UserLand responded to Applescript by re-positioning Frontier as a Web development environment, distributing the software free of charge with the "Aretha" release of May 1995. In late 1996, Frontier 4.1 had become "an integrated development environment that lends itself to the creation and maintenance of Web sites and management of Web pages sans much busywork," and by the time Frontier 4.2 was released in January 1997, the software was firmly established in the realms of website management and CGI scripting, allowing users to "taste the power of large-scale database publishing with free software."
I spent years building tree oriented uis before realizing.
The specific application envisaged in the parent post is a solution without a problem, that scratches the programmers itch.
Trees are fiddly and poky things to navigate.
Tree oriented uis leave information hidden and require lots of clicks. Ugh.
Special cases and complexities constantly arise in tree oriented uis and clear consistent solutions are often hard to fit in to the system.
Programmers love trees though because truth is a lot of data is in tree form so the assume that data structure should be surfaced to the user.
It not correct though. Simple flat uis are much better.
My obsession with trees culminated in building a major business system that realized my dream of a fully tree oriented ui. It was shit.
I totally redesigned and rebuilt it several years down the track.
Now I don’t put trees in uis.
What I really like are the limited depth, non-collapsing trees in a lot of UIs now. Like in Slack, where the left nav has few top level nodes—pinned channels/chats, channels, and chats—that make it easy to get exactly what is needed. It’s not perfect (like I would prefer an aggregated pin that simply shows everything from all pins in one conversation dialog), but it is visually clean and efficient. And instead of a giant tree to enumerate all channels, you use a dedicated search interface that makes it easy to add entries to tree with a single click (without having to interact with the tree).
All function parameter usages in function bodies are just "ordinary" links to their corresponding declarations, and it just happens that links are rendered as "-->" followed by the name of the cell pointed to by the link. Instead of the arrow symbol I could render the link with some distinct background pattern or color. I might also make the arrow shorter, I guess.
I personally feel like lisp in the right clothing could accomplish what you describe. I am currently working on http://colortree.app to do some of this, but it is still in its early stages.
Videos:
1. The FLOW Shell: https://drive.google.com/file/d/0B6Qg3A0fSZHoNk5EX3ZkREEwbUk...
2. FLOW 2D Turtle Graphics: https://www.youtube.com/watch?v=4wO_RrftJTE
3. Background: https://www.youtube.com/watch?v=-fbq-_H6Lf4
Had they simply said it was a cool chat application and given everybody access then it may well have caught on.
A year or two later Google Wave was "opensourced" and "donated to the community", so I was very happy I didn't invest more time investigating it.
To have a group of say six, five have Wave, one does not and can't get an invite...group can't use Wave. What wes Google thinking?
Long to short, I bet there are plenty of great ideas/products in the startup graveyard waiting to be revived and re-executed. It's not the idea/product that failed but the marketing/growth.
They also didn’t have explain how it was different, if at all, from similar chat systems of the past, like PowWow or ICQ chat. Those were both see-typing-in-real-time-systems that were, IMHO, not at all useful in business.
So forming a group wouldn't have been a problem because you could invite your friends who could invite their friends.
After it was shutdown we migrated to Hipchat, then Slack, and finally Keybase.
It was positioned as an 'email killer' - and as validated by Slack I think that was pretty clever and spot on marketing.
I burst out laughing at that and I’ve been trying to figure out why.
Laughter is an act of destruction, an emotional declaration that this thing is not part of reality and wiping it out of existence.
A lot of what tech companies do feels like a fuck you. Killing Google Reader without explanation, disabling the full capabilities of ad blockers, removing headphone jacks, letting third parties exploit our social data, hiding the full scope of data collection behind a vague “we will use your data to improve the service”, and so much more.
The relationship between tech companies and customers wasn’t nearly so adversarial 20-30 years ago. In the 1980s, it felt like Microsoft was really on a mission to bring computers to everyone. Sony was creating tech to allow us to listen to our existing music collections. By the late 90s, Apple’s big idea was basically “candy color are pretty, they will make our users happy, so let’s make good colorful cases”.
And up to the mid 00s, google really seemed like a champion and advocate for internet users. It felt like (though in hindsight it was an illusion) that when policy decisions were being made, we could trust Google to be our voice when we weren’t in the room.
“Because fuck you” would not have been at all funny back then.
The point of the video is that products don't fail for lack of developers
Web-forums could finally be re-invented.
I also saw it as a great platform for things like 'Remote D&D', and a "rich media" that was hinted at in the 90's.
Anyway, Wave wasn't killed because it wasn't viewed as viable, it was killed for politics, which is probably why it's creators and engineers were so pissed off. Shame.
I keep debating revisiting something like it for Discord/Slack today, but the style would still be quite different from that "threaded, collaborative Word document with revision tracking" feel of Wave.
I’m not sure how well it works in groups but 1-on-1 it feels more like a phone call than a messaging app; except it’s over text, it seamlessly transitions to offline asynchronous messaging if someone isn’t there and you can both “talk” (type) at the same time.
You could write in draft mode I think, and people couldn't see the result
https://dspace.mit.edu/bitstream/handle/1721.1/41180/AI_WP_2...
>Another useful comlink program is UNTALK. UNTALK is similar to TALK but does not work across machines. However, on a display terminal, UNTALK splits the screen horizontally and allows the two people to type at the same time on their part of the screen.
Google Wave Developer Preview at Google I/O 2009 (May 28, 2009)
https://www.youtube.com/watch?v=v_UyVmITiYQ
Google Wave Drips With Ambition. A New Communication Platform For A New Web. (May 28, 2009)
https://news.ycombinator.com/item?id=630427
https://techcrunch.com/2009/05/28/google-wave-drips-with-amb...
Google Wave: What Might Email Look Like If It Were Invented Today (May 29, 2009)
https://news.ycombinator.com/item?id=630470
http://radar.oreilly.com/2009/05/google-wave-what-might-emai...
What problems does Google Wave solve? (Oct 15, 2009)
https://news.ycombinator.com/item?id=883116
https://danieltenner.com/2009/10/15/0012-google-wave-html/
Google Kills Wave (Aug 4, 2010)
https://news.ycombinator.com/item?id=1575892
https://googleblog.blogspot.com/2010/08/update-on-google-wav...
What makes Slack so successful whereas Google Wave wasn't? (Oct 10, 2015)
https://www.quora.com/What-makes-Slack-so-successful-whereas...
What in the Hell Was Google Wave Trying to Be Anyway? – Gizmodo UK (May 27, 2019)
https://gizmodo.com/what-in-the-hell-was-google-wave-trying-...
On a lighter note, the Game Helpin’ Squad (who made the Wave tutorial) also has several spot-on parodies of various video game genres!
“Time Travel Understander” is a parody of Braid:
https://www.youtube.com/watch?v=1fABGyVzVwI
“Severe Running” parodies those Flash running games:
https://www.youtube.com/watch?v=lrUWFo2D1Xs
And “World Quester 2” is the ultimate D&D RPG parody:
https://www.youtube.com/watch?v=0Gy9hJauXns
"Pretend Gas Station" is a SimCity parody:
https://www.youtube.com/watch?v=WPMeWas4kXM
“Solitare Party” parodies all those card games:
I wish someone could have shown them The Mother of All Demos, if they could make it do mostly that it could have been amazing, but they were probably pretty heavy into drinking their own flavor-aid at that point.
It's one of the finest statements ever made about our industry, but if it's still around it's well hidden
I remember seeing the hyperventilating response to Wave by tech people at the time and wondering what they were actually experiencing. Because what I saw was yet another Google initiative that would be shut down and forgotten fairly quickly.
It would have worked better for me if they had kept it simple
Not too early for users to see the value, but for Google to roll out widely enough to make it a proper social network.
Technology was not mature enough for such an application.
Slack is also disruptive in a way that email isn't. Slack demands attention, which breaks concentration on other tasks. Email can be dealt with at the recipient's leisure.
I'd really love to see something similar to Wave's "real-time" instant messaging in one of these newer apps.
i.e. the stuff a veteran IRC user cobbles together from an always-on server running irssi+screen, nickserv, saved identify and ghost commands, a chatbot and some personal webspace.
Still, I agree Slack is far more the child of IRC than the child of Wave. IIRC Wave had full rich text, a threading-like mechanic, and you could edit other people's messages, and documents rather than channels.
Reddit and HackerNews allows n-tier conversation where you can branch a thread to heart's content.
* Can't communicate with anyone without GSuite
* Can't talk with our customers who use GSuite on another domain.
* Can't communicated with the "old" Hangouts, so it's utterly useless.
Another failure from Google. Whatever management structure incentivizes this crap needs to be fixed, if they ever want to expand out of their current domains.
Google had a winner with Hangouts. Instead they left it to die, while they moved on to Duo, Allo, and now Hangouts Chat. Meanwhile slack stepped in and took what should have bee their market.
Buzz? dead. Wave? dead. Plus? dead. Allo? dead.
It's so bad now that even features and innovation on their existing platforms are dying.
Youtube? Everything they do with Youtube is a screwup. Android? Good luck getting an app in the app store without Google accidentally killing your company.
Google Cloud? Sorry... everyone's on AWS or Azure.
Search? Nope... Elasticsearch now dominates that space. Think about it. Elasticsearch now beats Google at what Google should have dominated - search.
Imagine if there still was a private Google search tool for businesses where you could have patched into those APIs for integrating new tools. Everything could have been searchable -- Slack, Email, Docs... everything. Instead, they are all siloed.
Isn't that what https://cloud.google.com/products/search/ claims to do?
Google Cloud was late to the party, but they were very smart to invest in GPUs near edge nodes. I think Stadia is primed to eat the gaming world's lunch. They can reuse this capacity for ML during off-peak hours.
I'm actually kind of scared of Stadia. I like having physical copies of console games, and if Google makes major inroads they could become the dominant player in the gaming industry. They definitely won't be friendly to physical form factors.
I imagine it is not quite the same for games which might require maintenance like security updates. Still, old versions of their games should be available.
On the flip side, physical games are no longer truly self contained. Day one patches and license keys and DRM and server shutdowns all prevent you from owning the content on the disk any more than a digital purchase.
Now if only I still had time to play games...
I think I only have a 128 gig in here now that I'm counting. (The menu only tells you free space, not capacity) I have 31 "games" installed, where NES, Genesis, Spyro, Crash, Hotline Miami, and Contra collections each count as 1.
The top three are Spyro, (which isn't even out yet) Smash, and Zelda, which are 14.8 to 15 gigs. I could get rid of Zelda and not really notice tbh.
Next biggest is Doom 3 at 8.8, then a bunch of 6.x games. 16 of them are 1.1 or smaller.
So not quite as dire as you're making it out to be, but in fairness my tastes skew more indie and retro than the average.
Not in the US, with most residential ISPs having arbitrary 1TB data caps.
Seems like Google innovates and builds a ton. It's the whole dealing with customers part that they don't like.
how they handled that transition gave react a huge footing, splintered the framework community, also have made it very hard to search for their own framework.
MapReduce far far predates Google, in shared-memory multiprocessors of the late 80s and thereafter, for instance, though didn't Google popularize it.
Golang was developed at Google, with Googles blessing, by Google employees. I don't know how much more you can ask for. What difference does it make that some of the people had jobs before Google.
MapReduce far far predates Google
The general concept was known, the implementation and algorithms Google used to run MapReduce efficiently on large cluster of heterogeneous machines was original to Google.
It’s just that they really suck at creating products. After gmail and maps there were next to no successes; even when they throw all their weight behind something like they did with buzz and plus, they tend to fail hard.
Yeah, just little used products like Android and Chrome /s
I am still sad that they acquired a really cool company called Flutter back in 2013 that shipped an awesome product allowing you to control media players using your webcam with hand gestures [0]. They only kept the name it seems. So yeah, not so innovative.
0.https://arstechnica.com/gadgets/2013/10/hands-on-with-google...
Android team is pushing Kotlin/Native for common code across iOS/Android, came up with Jetpack Compose and rebuilt their reload code from scratch for Android Studio 3.5. When asked about Flutter they always give the "use what is best for you" kind of answer.
Go is still playing catchup with majority of internal services written in Java/C++. Although it already has some small victories in ChromeOS, Fuchsia and Android GPU debugger.
Kubernetes was originally written in Java, was rebooted into Go after another team took over and its codebase suffers from lack of generics support, leading to a pile of code generation.
Some devs dislike so much how AngularJS was so badly managed, that they still mix the Angular/Typescript variant with AngularJS.
I'm a UI-focused engineer who's been working with it for the past 8 months or so, and I'm really liking it. Hot reload is awesome, the framework's primitives and how they compose is very natural feeling after some practice, and the framework doesn't hide low-level control from you if you need it.
Dart's no slouch either. I mean, it's not super exciting, but its standard library is nice, and the language itself is improving all the time (non-nullable by default coming soon!).
PLUS, with support for macOS, Windows and Linux on the horizon, we're soon going to have a really solid development environment that works on both mobile and desktop platforms.
I know this sounds like an ad, but I'm serious. I like it a lot.
"App Engine", to non-googlers.
Saying that it works just like Altavista's Bablefish of yore is ridiculous, at least for the European languages I am familiar with. Translation quality as offered by all major services is leagues ahead compared to the state of, say, three years ago.
(Disclaimer: I work on a competitor to Google Translate)
I am a huge fan of TensorFlow.js, the examples, docs, etc. are really good. But, I am nervous about jumping in too deep in case it disappears. Regular TensorFlow is here to stay for the long term.
Anyhow, acquiring the right companies, integrating them successfully and keeping them successful is an equally important skill for a big corp. Look at FB, where would they be without being excellent at acquiring companies (IG, WhatsApp, Oculus).
Edit: Can't spell
https://en.wikipedia.org/wiki/Lars_Rasmussen_(software_devel...
Google published a sample AppEngine project that was very hackable and used the Buzz data stream. Nice, but now it is gone.
Edit: Screenshot https://imgur.com/a/ERuEwuo
Kinda painting with a broad brush about the world's most popular operating system with an 85% mobile marketshare.
>Search? Nope... Elasticsearch now dominates that space.
Again, being really selective here ignoring the virtual monopoly on consumer search.
at least memorialises them...
K8s? BigQuery? Chrome (in particular v8)?
> Wave? dead.
Wasn't Wave effectively a tech preview for collaboration technology central to Docs and Sheets?
Whether or not that's the case, aren't Docs and Sheets counterexamples to your argument?
> Google Cloud? Sorry... everyone's on AWS or Azure.
AWS and Azure have together (as of Q4 2018) a bit less than 50% of the public cloud market, hardly “everyone”. Proportionately, Google is closer to Azure than Azure is to AWS, and has a higher growth rate than any of the other major public clouds, bigger or smaller. [0] AWS has first mover advantage, Azure has leveraging Microsoft’s preexisting deep penetration into enterprise. But Google's gaining on them, anyway.
[0] https://www.canalys.com/newsroom/cloud-market-share-q4-2018-...
Wasn't Wave effectively a tech
preview for collaboration
technology central to Docs and
Sheets?
According to Wikipedia, Docs launched in March 2006 and Wave in May 2009. And Docs had collaborative editing from the start (Google brought it from a startup with that feature already working)https://lifehacker.com/google-docs-updates-with-a-drawing-ed...
Hasn't live multi-user editing been there all along?
I think that Milton Friedman spiel about giving Shareholder value as the main objective of a manager, as opposed to giving value to customers, has done major damage to humanity, and the capitalist system.
I seem to remember that (maybe Facebook) had its WAVE development team recruited away.
The Chrome browser and Chromebooks are non-trivial examples of Google's successes.
WAVE was genius and needed time and feedback loops to mature.
I morn early Polymer more than WAVE. Spot on brilliant.
But yes, Google is this generation's Digital Equipment Corp. - engineering brilliance/marketing ineptitude.