Back in July I hinted at the fact that I have started working on a new project that builds on C++/WinRT. Well that project is finally out in the open and it’s called xlang: a cross-language, cross-compiler, and cross-platform generalization of WinRT. It has no dependency on Windows or even WinRT and thus sports an open source PAL. Think of it as WinRT but with much greater reach, potentially supporting Windows 7, Linux, Apple platforms, and more.
https://github.com/Microsoft/xlang
It’s far from done but we are developing it in the open, so you will be able to follow along, provide feedback, and even contribute your own language projections and platform support. I will share more information once there’s more there that works, but feel free to reach out and let me know what you think. Just to set expectations, none of this is ready to replace C++/WinRT just yet. My main goal right now is to reach feature parity with C++/WinRT. At that point I will share more information and explain how the xlang tools and libraries work to generate projections and much more. If you’re impatient, xlang already includes a metadata reader that provides an incredibly fast and portable abstraction over the ECMA-335 format that sits at the heart of both WinRT and now xlang. I started writing a new metadata reader in portable C++ long before this project got started as it’s so fundamental to this whole space. It is thus quite mature, and you can have a lot of fun with it. Happy coding!
Does this mean ultimately you wish to implement WinRT on platforms other than Win8/10? Or does this project aim being able to define C++/WinRT-like libraries with some language bindings in a cross-platform manner? Sort of like how the Vulkan bindings are generated from an XML, you wish to generate them from another standard? Could this project generate C++ bindings to .Net assemblies and vice versa? C#/F#/PS bindings to an API implemented in C++?
Sorry for the dumb questions, but this summary was a little too dense for me.
No dumb questions, but https://github.com/Microsoft/xlang/issues is probably a better forum to discuss. There’s also more info here: https://github.com/Microsoft/xlang/tree/master/docs
Jeapers, looking forward to digging into that.
When I read cross-platform from the last post, I was anticipating 0-day readiness for Fuchsia that Google appeals to me to be the 5G networks timeframe successor to its 4G timeframe Android. This open source solution might be even better! Thanks, Kenny for just being yourself.
This looks exactly like what I wanted to happen all the time – I am looking forward it!!