Steam Engine Time
In an email conversation with my brother, inspired by this blog post about Windows 7, I got to talking about some of the things Microsoft actually does right, and in that discussion mentioned some of the cool things that come out of Microsoft Research, including their OS research (since that was the context of the discussion).
One of the interesting bits of OS research coming out of Microsoft (stemming in part from their interest in managed languages) is Singularity. When I first heard about it though, I was struck by how similar it was to JavaOS from the mid 90s (descriptions of which seem to have now virtually disappeared). When you see similarities between two things, you might be disposed to wonder whether someone copied something, but that need not be the case. If something is a good idea and the time is right for it, it's entirely possible that independent people will think of the same thing.
Staying in the OS arena, a recent example of this phenomena seems to be Microsoft's Xax technology (which allows you to run “unsafe” legacy code within the safety of a web browser) — most interestingly, they show how you only need a very small number of system calls to get the job done. What's erie is that essentially the exact same time, Google was doing something similar, with Native Client.
It's interesting how often unrelated people end up coming up with the same thing. It happens all the time, even with “transformational” inventions (e.g., the telephone, television, etc.). Lots of people have noticed this phenomenon, but it was Charles Fort who coined the phrase “It's steam engines when it's steam engine time.”
(It's also one of many reasons I believe that patents are problematic.)