I think we have a few .NET-familiar devs on here at least. I wanted to know what you thought about .NET Native. If you aren't super familiar with it, the best outline of it is located here.
Please do not jump to conclusions on the subject unless you really do understand how it works. I've found that many I try to discuss this with who know regular .NET have no clue how .NET Native works and then jump to incorrect conclusions based upon false assumptions. If you would like to learn the details, I suggest:
Video 1: https://www.youtube.com/watch?v=JoE7OytQWj0
Video 2: https://channel9.msdn.com/Shows/G...de-Compiler-in-the-Cloud-and-MDIL
That out of the way, this is how I see it:
1. The grand benefit of .NET in general is obviously to make it "nicer"/make applications both easier to develop for businesses, supposedly cutting down development time, and also perhaps compatible with a wider array of machines.
2. The above is certainly at the cost of performance and control. However, many business tasks can get by using the .NET model because they do not necessarily require high-performance computing.
3. However, in the grand scheme of things, it makes me wonder about Microsoft in that they essentially started with native, went to abstraction/GC land, now are actually coming back to native again. I say "coming back" because now all Windows Store Apps use .NET Native, so it's clear that MS is shifting in this direction. That said, the GC is definitely still there, but it's just a part of the compiled native binary rather than being in a separate runtime.
But watching that first video of them taking C# code, turning it into CIL (MSIL), then tree-shaking, transforming, turning that into MDIL, then feeding that into the Visual C++ back-end, then taking the output and running it thru a binder (linker, basically) to produce a .exe and dll... I can't help but think "what on earth are these guys doing???"
So the .NET framework has now become like a jQuery of sorts... Just a giant statically-linked library which is attached to executable files, adding overhead, but supporting a standard format. Microsoft seems to be attempting to overcome the challenges of native, such as lack of cross-compatibility between architectures, by dynamically making decisions in the cloud and then shipping and linking when the user downloads/purchases the app. Essentially, you program your code in Microsoft's proprietary markup, send them that, and then they inject their framework and eventually send the consumer a native binary.
My questions are:
1. Do you think Microsoft is actually doing something innovative here or are they running in circles?
2. Would you consider using .NET Native for your development needs? Why or why not?