Still seems like there should be an approach like this to build mobile and desktop? TideKit (split off from Appcelerator Titanium) was giving it a shot but I think might have dissolved.
"It's worth noting that we're not chasing “write once, run anywhere.” Different platforms have different looks, feels, and capabilities, and as such, we should still be developing discrete apps for each platform, but the same set of engineers should be able to build applications for whatever platform they choose, without needing to learn a fundamentally different set of technologies for each. We call this approach “learn once, write anywhere.”"
It's interesting. Not sure where we'll take it, but I love the idea of one code base running everywhere, including desktop.