I find this a bit ironic that Nuclide is an IDE designed to support React and React-Native, built on top of Atom - Atom itself just ripped out their React implementation in favor of direct DOM manipulation. Don't get me wrong, I'm a huge React proponent and likely will give this a whirl - but it is ironic, no?
They never really needed React in the first place, because React doesn't solve THEIR problem. Their problem is so specific to text editors: how do you get hundreds of lines of hundreds of rich-text characters to render as fast as possible?
In terms of game engines: React is comparable to the occlusion culling capabilities of a 3D game engine (render less), where Atom was in search of the fastest way for the graphics engine to push triangles to the GPU (render fast). Ultimately I believe a mix of both is the best.
Having implemented a code editor, I can assure you that not re-rendering lines and blocks of code is also a worthy effort. It probably just doesn't fit into react's incremental computation model yet?
Yeah, that's the reason why they tried React I guess. But as far as I can tell they kept the should-update-or-not procedures they implemented specifically FOR React. So what they removed wasn't the concept of React, just the library as their DOM rendering implementation.
I would argue that React set them on the path to doing DOM manipulation right. After all, when they started using React as a replacement for (less optimal) manual DOM manipulation, it brought performance improvements, and when they replaced React with (more optimal) manual DOM manipulation they achieved further performance improvements.
I think Atom still uses React-- they just decided to build one super performance-sensitive part, EditorComponent, without it (https://github.com/atom/atom/pull/5624).