Recently another post got some traction, this time about the .NET ecosystem
And same as the articles about Ruby, we can learn from that.
From a Flash point of view
- Silverlight compare to Flash
- XAML compare to MXML
- WPF compare to the Flash API / runtime
The whole story is about how Microsoft by announcing a big support for HTML5 destroyed its own technology like Silverlight, XAML, etc.
The focal point of the story is the first public announcement/demonstration of Windows 8 at the AllThingsD D9 conference back in the spring of 2011. Specifically, a part of it that provided both vague and, at the same time, pretty specific details on how native Windows 8 apps will be written
This rejoin what you could have seen in the Ruby article: if you use a big player technology, if this big player decide to drop the tech you are done.
By .NET, in this case, I mean charting controls for WPF and Silverlight that I developed over several years. Which it turn means XAML/C# (primarily) as underlying technologies. amCharts for WPF and Silverlight were the primary source of my income by the time Windows 8 was demonstrated at D9.
For the next 3 months our sales on the .NET side fell to literally $0.
yep this official announcement was bad news for .NET tech like Silverlight, XAML, WPF
What this meant for every sane developer team? It didn’t take long for all of them to decide to park all the new client-side XAML development projects until the situation clears up. And that, obviously, included investing into XAML based components and component suites.
So yeah, Flash got it bad but apparently .NET people got it worst.
And what does a sane CEO do when he sees a substantial and sudden drop in revenue from their main product suite? They decide to accelerate plans to diversify and loosen the dependency on the single ecosystem owner. And where do they get the funds for that diversification? Yes, you guessed it right, by shifting budgets and attention from the “XAML projects” to that next thing (whatever it was for each specific company).
Again, fro the Ruby article, when you decide to rewrite parts of your app, if the part is a little too big you may as well ditch altogether the tech and move on to another tech.
A lot of interesting insight about Microsoft people not willing to admit a mistake was made and then …
Fast-forward 4 years. At Build 2015 Microsoft announces that they will create “bridges” to bring iOS and Android apps to Windows 10. This time I was there and I’ve seen and heard from my friends doing contract Windows development. For many of them this meant they were out of a job. Their clients called them and asked: “Why would I pay you to create a Windows 10 app, if I can just take our Android app and run it on Windows?”. And there was no good answer to that, since there weren’t that many details about the Android bridge at the time.
As we know now that bridge never really happened. But the damage was done. I’ve heard people quite high up the ranks admitting that underappreciating the effect of the announcement was an oversight and even trying to mitigate the fallout. And that was encouraging to see despite the actual mishap.
the key point here is “But the damage was done”.
Even if now Microsoft bought Tamarin which leverage .NET to publish to mobile iOS and Android,
if you were a .NET developer and see that as “good news”, you have to wonder if that big player
which is Microsoft will not do another mistake in the future ?
You may also wonder if Microsoft, the creator of TypeScript, may favour more HTML5 than .NET tech in the future ?
Who knows what can happen ?
The thing is you are basically stuck with Microsoft decision.
Now here the interesting part and you may hate me for even suggesting the idea.
Because Google decided to bundle Flash in its browser Chrome, it influenced Microsoft to alo bundle Flash in its MS Edge browser.
Because of the recent Google proposal of blocking Flash by default, it could also influence MS Edge to also follow the same path and block Flash by default.
As both Google and Microsoft have a business case in favour of HTML5, work with each other on things like TypeScript and Angular 2, it’s not far fetched they could synchronise to similarly block and later remove Flash altogether.
Those big players don’t even blink once to kill their own tech so if they want to kill someone else tech … they will, without an once of hesitation.
So I’m not here to present those as evil, those are big companies they do business and so make business decision (which is not an excuse but still help to understand certain “move”), but basically I’m just saying’ when you as a much much smaller entity, either solo dev - indie team - small business, you make a decision about which tech to use, just remember those stories and chose wisely.