Hacker News new | ask | show | jobs
by pjmlp 1716 days ago
The usual politics, from .NET vs C++ at Microsoft.

Here Joe Duffy mentions towards the end that even with Midori running in front of them, the Windows team was sceptical of it.

https://www.youtube.com/watch?v=CuD7SCqHB7k

Since .NET's introduction, Microsoft seems to lack the same kind of culture that Apple and Google have towards into steering their platforms into safer languages (e.g. how constrained NDK happens to be, or first class bindings to all OS APIs in Swift).

It appears that every attempt to do so ends up being sabotaged in some way to assure C++'s reign at Microsoft and Windows subsystems.

Note that Windows is the only desktop/mobile OS where the GUI stack is still fully C++ aware, and they even make a point out of it.

https://microsoft.github.io/microsoft-ui-xaml

> WinUI is powered by a highly optimized C++ core that delivers blistering performance, long battery life, and responsive interactivity that professional developers demand. Its lower system utilization allows it to run on a wider range of hardware, ensuring your sophisticated workloads run with ease.

2 comments

Perhaps due to a pervasive desire to maintain backwards compatibility, bugs and all?
That doesn't justify why Managed Direct X, XNA, Silverlight (on WP 7), .NET Native got the axe.

Even the Longhorn failure, which resulted on the "everything COM", that then evolved into WinRT (basically COM + IInspectable + .NET metadata + sandboxing), could have worked out if everyone actually worked together.

I don't believe that if there was actually a willingness from Windows/C++ crowd, they couldn't have helped to push the .NET runtime into improvements similar to .NET Native.

Or to put into another way, the efforts done by Google and Apple improving the Objective-C, Swift and ART, respectively.

In fact, probably the reasoning behind bringing Midori learnings into .NET Core (thus making C# into D like), has more to do with C++/CLI being Windows only, and the managed languages competition outside Windows than anything else.

> could have worked out if everyone actually worked together

Apparently, Sinofsky suffers dreadfully from "not invented here syndrome." He simply does not trust anything that his team has not built, and Midori is the tip of the iceberg. There are a some instances where his attitude worked, but they were far and few between.

You'll notice that there is a very distinct "firewall" between core architecture and "other teams" on the projects he managed, even today (e.g. .Net Office extensions are just COM).

Indeed that is quite clear in between the lines on MSJ, Channel 9, blogs, PDC, BUILD, among others, since Visual Studio.NET came out.
nah, they had Drawbridge running on Midori, which allowed nearly perfect app compat. it really was a case of internal politics as far as I know.

though another way of looking at it is that rewriting the entirety of Windows in Midori would be been a monumental feat, and by the time Satya became CEO it was clear Windows wasn't the future of the company, so that kind of investment didn't make sense.

Maybe, but my recollection from the time (as related to me by Bryan Willman) was that a group of base team architects did an analysis of the .Net runtime and created a list of technical concerns that they felt precluded it's use in any critical component of the OS.

Of course, all of these concerns could presumably have been addressed or mitigated, but by the time analysis was released it was too late

That is exactly my view, instead of addressing the issues, like Apple and Google have been doing the last decade, the decision was to double down on C++ and COM instead.
Yes. And to a certain extent a **-swinging contest between DevDiv and the base team
My previous company had a C++ portion/team and wow were they defensive about changing anything :-)
We know how well that worked for Symbian.
Also politics.

Back in the day Nokia did road shows to gather employees feedback before going public.

One point regarding Maemo that I and others did, was the missing radio link.

Naturally that was a no go as they would eat into Symbian's turf.

I happened to be in Espoo shortly after the burning platforms memo, and it did not land well, specially since the Qt and PIPS effort was finally gathering some support.

As far as i know .NET binaries cannot run from a network share which is a big limitation.
Not actually correct. You needed to fiddle about with code access security using the caspol tool and then they'd run just fine.

.NET 4 disables CAS by default though there can still be a bit of faff to get an exe to launch from a file share, but it is doable.

.NET core abandoned CAS (https://docs.microsoft.com/en-us/dotnet/core/compatibility/c...)

When there are issues and one owns the runtime, there is a way to fix them, when there's a willingness.