I'm not sure what lessons could be learned from Plan9 and Inferno. I think the same lessons from NetBSD, FreeBSD, and other not as popular OS systems.
It isn't that I'm seeking to build a popular OS, it is highly unlikely I'll even finish one. It is that I'm curious on, if I'm able to finish one, my hypothesis on usage would be an accurate one.
My hypothesis being that, I believe that OS that are popular are based on support, documentation, applications (quantity, quality and usability), OS usability and device capability. The irony factor being that popular systems gain more popularity as they become popular.
Why is Windows popular with end users? Why is Linux popular with servers and administrators? There are many reasons, but each catered to a given audience and therefore gained a foothold that the other did not.
The problem is that the relevance of the past might not be the same in the future. Applications of the past had to rely on each individual system it was built. If it was easier to build for one system verses another, and took less support from the original developers, then it is likely that developers would flock to that ecosystem.
It is sort of the experiment I want to test. If you built a system that was easier and quicker to write applications, that was managed separately and had an ease of use, then what? How far would that system go? Would it splinter as with BSD, UNIX derivatives and Linux? Would programmers using it create multiple implementations of the same thing, requiring users to research which solution was the best at a given time? Probably. That is true with all things.
I don't think multiple implementations are a bad thing as long as the API to them are the same. Developers should only ever have to use one API regardless of the underlying implementation. I think that is just so difficult to enforce. I also think that new APIs should also be created that eventually replace old ones.
That is difficult, in an open source ecosystem, it is damn near impossible to get people to agree. It is also interesting. I don't think it matters. I think of all matters of implementation, the best one will eventually succeed. Providing extensions to the base API, should not be frowned on and hopefully the ones that succeed become part of the new version of the standard.