Hacker News new | past | comments | ask | show | jobs | submit login

Docs pretty much threw out all the Writely code and switched over to a new editor built from scratch (codename "Kix") in 2010. I'm not sure if Kix used code from Wave, though.



I'm pretty sure there is no lineage from Wave to Kix (which, yes, was the code name for the modern incarnation of Docs). Kix is more of a descendant of the architecture of Google Sheets.

Source: I am one of the original authors of Writely, did not work on Kix but I was still at Google when it was being written, had a minor role in reviewing the design.


Out of curiousity: with these full rewrites, do they at least learn from the mistakes of the previous code? I can imagine there is potentially great value in that.


Good question. I don't know how much of that was done in this case. I can say that at the outset of the Kix project, they did ask me for advice about pitfalls. (I was skeptical that it could be done at all using the browser technology of that time; they proved me wrong. One of my concerns was proper handling of complex international character sets, both for input and rendering.)

Kix is a drastically different architecture than Writely, so many lessons would not have been applicable. Writely was built on a contentEditable DIV, so the data model was literally whatever junky HTML the browser's contentEditable implementation would create, and synchronization was implemented by performing three-way diffs on the HTML code. It was very much a dancing bear, in the sense of "the amazing thing is not how well it dances, but that it dances at all". ...but I digress. My point is that the mechanisms and challenges of that approach are entirely different than the Kix approach. I think the important lessons would have been product-level rather than code-level.


I dunno, the description you just gave of a dancing bear gives me the impression that your advice must have contained quite a bit of insight about past mistakes to avoid.


If Trix is Sheets and Kix is Docs, what does the K stand for?


I have no idea. :)


Hmmm, best I can come up with is a joke about cereal.


What about the OT code and the comments?


Bear in mind that this was almost a decade ago, and I wasn't directly involved. With that caveat: the core mechanisms for client / server coordination in Kix were a direct descendant from Trix (short for "Matrix"), which was the original code name for Google Sheets. And Kix was developed by a team in New York, an offshoot of the Trix team which was also in New York. Writely (post-acquisition) was in Mountain View, and Wave was in Australia (I forget which city), and the picture that might give you of how closely the various teams communicated is probably accurate.

I don't know whether Trix originally used OT specifically, or the Kix team borrowed that idea from Wave. But the basic idea of clients performing small, tidy logical operations and then synchronizing them in realtime through a server was part of both Trix and Kix. Writely used a very different (and more primitive) approach.

I don't know anything about the origin of the comments feature, but my guess is that there was no connection to Wave, except (again) possibly a bit of inspiration. The Wave team was very separate, both geographically and organizationally, and the tech stack they built was very disconnected from anything that was going on with Trix, Kix, or Writely.


Wave was in Sydney, the only Google engineering office in Australia. I walked through their space before they had even announced the project internally. All that almost everyone in the company knew was that Lars and co. were busy on something big. The rest of the office was aware of its nature, but sworn to secrecy until the announcement. I remember going by a whiteboard, looking at this architecture diagram (wavelets?) and still having little clue on what it was all about, other than it having something to do with threads. :-)

I was asking because I have a vague recollection that Kix borrowed OT ideas or even code from Wave. But then I was even more removed from both teams than you. Or maybe it was just an aspirational thing from management to find a silver lining in the Wave shutdown.


You might be right about the OT idea, or even some code, having been borrowed from Wave. I wouldn't necessarily have known about it (or I might simply have forgotten). But I'm pretty certain that Kix as an overall project was much more closely connected to Trix than to Wave.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: