Architecturally, Visual Studio Code combines the best of web, native, and language-specific technologies. Using the GitHub Electron Shell, Code combines web technologies such as JavaScript and Node.js with the speed and flexibility of native apps. Code uses a newer, faster version of the same industrial-strength HTML-based editor that has powered the “Monaco” cloud editor, Internet Explorer's F12 Tools, and other projects. And Code uses a tools service architecture that enables it to use many of the same technologies that power Visual Studio, including Roslyn for .NET, TypeScript, the Visual Studio debugging engine, and more. In future previews, as we continue to evolve and refine this architecture, Visual Studio Code will include a public extensibility model that lets developers build and use plug-ins, and richly customize their edit-build-debug experience.
$ /Applications/Visual\ Studio\ Code.app/Contents/MacOS/Atom .
Visual Studio Code is more like an offline version of Visual Studio Online (the editor part), 2 years later.
Nadella's contribution is to make it possible to ship this sort of thing. Shipping this under Ballmer would have been a miracle.
This sounds like you're speaking from inside experience. I would _love_ to hear more of this back story. Seriously, to anyone, write it up.
I think MS Research would be a pretty amazing place to work.
WPF also abstracts control behavior away from presentation and allows you to easily and quickly extend the base set of controls to do whatever you want to.
After building multiple thick client applications using VB6, MFC, Swign, Winforms and WPF, WPF exceeds all of these, by far, in flexibility and maintainability.
For me, the real value is composition flexibility.
I think a better foundation for a cross-platform editor/IDE would be SWT, the Standard Widget Toolkit from Eclipse, perhaps ported to .NET.
For decades of trying, this is the best we've managed to do for cross-platform UIs. It ain't great, but it soundly beats the alternatives.
Try using it to view its own source code inside the app!