Hacker News new | past | comments | ask | show | jobs | submit
Before the .Net era, there were millions of programmers who were experts in VB. In fact, VB6 was the defacto tool to build desktop apps.

Then Microsoft decided to compete with the new-age rivals: Java and CORBA. So it expanded COM into DCOM and then further into COM+, and eventually released the .Net platform.

Suddenly, those millions of programmers and their built desktop apps were obsolete, as they had to race to understand .Net and learn how to use it to build new apps and replacements for the old VB6 apps.

And somewhere along the way, many of them decided it wasn't worth the struggle (because .Net was a nightmare to install as client apps on Windows machines; even the deployment scripts had becom3 too complex), and they migrated to other tools (Java, Python, Perl, Ruby on Rails, PHP, etc.) or to non-programming jobs (usually management).

Thus, within a few years, Microsoft had veritably killed the programming industry it took decades to build and nurture (and yes, Microsoft's decision to turn a blind eye - as its Windows OSes, MS Office and Visual Studio (VB & VC++) tools were pirated across the world, churning out millions of programmers and users familiar with its products as they used the pirated versions at school, college. home and office - that was also a deliberate decision by Microsoft during this halycon era).

But I feel .Net became too big of a beast even for mighty Microsoft to handle. As concerns grew over the performance aspects and innumerable dependencies of the .Net platform and related tools (Azure, SSIS, SSRS, etc.), the world started to shift away from Microsoft's tools, and that's perhaps why Microsoft finally knuckled under and embraced the open-source ecosystem it had openly hated for decades. VSCode, etc., are Microsoft's last-ditch attempts to have some relevancy in the programming industry.

.net was fine ... they were solving these fleeting problems of interoperability, event driven gui programming, object re-use and a bunch of other things. They tried tackling this so many ways: win16, ole, mfc, activex, win32s ... it was a big mess and nothing really worked well.

Microsoft had some really smart people working on the problem for years and .net was the culmination of the efforts with things like c# and the very interesting f#.

The problem was they finally solved the desktop interoperability problem when it no longer mattered and there wasn't a huge killer app for it.

Properly scoped well designed abstractions can be extremely powerful and also pretty useless.

There's an interesting counterfactual if they had .net ready to go around windows 98 ... I might be on a windows phone right now...