Microsoft's focus is profit, as it is for every corporation. If someone screams developers, developers it doesn't mean much.
I can remember several instances where developers were nicely screwed by policy and strategy changes, products languages and tools got canceled.
I find that the best strategy for someone that doesn't want to depend on Microsoft's moods is to not use their tools, or at least stick to the ones that have a long history and won't be messed up by strategy changes - that doesn't include C# or .NET
C# and .NET will endure in one form or another, but all these transformations waste developers' time and make their skills obsolete. No thanks, I'd rather learn something and use it more than a couple of years without having it change under me for no good reason.
None of those are C# or .net. You're complaining about frameworks, which really naturally evolve and change over time. It's downright silly to say that because frameworks are changing, the core language will change too.
Well, whose fault is it that all things have .net in their names? I meant the .net frameworks in my original comment (even though the runtime environment changed a lot too, causing pain for deployment - read some old Paint.net blogs to find out more).
My point was that it doesn't matter if c# or .net continue to exist or not, all it matters for me is whether one can count on one's skills being still valuable. My Visual C++, WinAPI (bit WinRT is replacing it) skills are still fine, my C# & .net framework that I learned back in 2006 are nearly useless, because a lot of stuff changed.
Why do companies expect developers to always gobble up whatever they throw over the wall and say "thank you sir, may I have more sir?", as if it's our duty to relearn how to do X for the Nth time, this time with bells and whistles?
More importantly, why do devs like investing in such ephemeral knowledge?
What about community-driven languages that are rapidly evolving? In that case, would you say that the community expects developers to always gobble up whatever is thrown over the wall? (See: web frontend development)
> "as if it's our duty to relearn how to do X for the Nth time, this time with bells and whistles?"
There are a few areas of computing that are fairly stable, if stability of knowledge is your priority, you should seek one of those out.
But in many other areas of computing, our discipline is young and rapidly evolving. Some of that evolution is being driven by a corporate need to sell the next version. But plenty is driven by the rapid evolution in languages and paradigms. And why is that? Because we all know that programming can still be (much) easier, more reliable, more predictable, cheaper, and more fun. This is why many devs, myself included, like investing in "ephemeral" knowledge.
Honestly, I understand that the decay of hard-earned skills is distressing for many people. Not all fields have this characteristic. But in our field, it just comes with the territory.
The web front-end is shooting itself in the foot in a spectacular way and is a pathological example of software entropy. :) Personally I am seeking thay out - the stuff I work on has existed since before I was born and is evolving in quite a rational manner.
I don't mind at all when a language is evolving, that's indeed to be expected and manageable, because one can leverage existing knowledge and augment it. But a lot of change is either driven by corporate interests as you mentioned or by fashion and is disruptive, as in replace X with Y. And it's not clear how Y is more robust or faster, usually it's a mixed bag of pluses and minuses.
You do realize that, although Silverlight and WPF aren't being actually developped ( and transformed into something else). You can keep your XAML skills in the newer platforms.
And Windows Forms still works on the new platforms ( except mobile), so it's not like it broke functionality.
VB 6 Applications still work and that IS a long time ago...
What better way to profit than selling developers the tools they need to build projects? Again, Microsoft is focusing on developers. As for being locked in to their products, it doesn't look like Visual Studio is going anywhere, and as others have said, their stack has been around at least over a decade now. The only newcomer is Visual Studio Code and that is open sourced anyway.
Just because the product isn't going anywhere, doesn't mean the licensing structure isn't going to change. You ready to pay for your monthly VS Studio subscription?
Q: Who can use Visual Studio Community?
A: Here’s how individual developers can use Visual Studio Community:
Any individual developer can use Visual Studio Community to create their own free or paid apps.
Here’s how Visual Studio Community can be used in organizations:
An unlimited number of users within an organization can use Visual Studio Community for the following scenarios: in a classroom learning environment, for academic research, or for contributing to open source projects.
For all other usage scenarios: In non-enterprise organizations, up to 5 users can use Visual Studio Community. In enterprise organizations (meaning those with >250 PCs or > $1MM in annual revenue), no use is permitted beyond the open source, academic research, and classroom learning environment scenarios described above.
The best way to profit is to make it easy for developers to build software that works on their (mobile) platforms. Right now most dev's focus is iOS/Android (at least it's mine). If M$ can make it easy to produce a front end for Windows mobile and reuse all the business/server code then THAT is where they win. Selling dev toolkits doesn't bank anyone billions.
Why do you not include C# or .NET? Both have been going for quite some time and there's a tonne of code in the world depending on both. What strategy changes do you think could affect them?
I can remember several instances where developers were nicely screwed by policy and strategy changes, products languages and tools got canceled.
I find that the best strategy for someone that doesn't want to depend on Microsoft's moods is to not use their tools, or at least stick to the ones that have a long history and won't be messed up by strategy changes - that doesn't include C# or .NET