* Adobe Flex and Adobe Flash
* Mac OS X Carbon
* Symbian
* JavaFX and Java Applets
* etc. * Adobe Flex and Adobe Flash
* Mac OS X Carbon
* Symbian
* JavaFX and Java Applets
* etc.The net result is that for at least a decade or more, many Microsoft developers have lost the independent judgement needed to filter solid technologies from the over-hyped ones.
The truth is, Microsoft is a business like every other. And they have changed with the times in that they experiment a little more and admit failures a little sooner. The challenge for Microsoft is that they are still viewed as the "safe bet" by many in their own community and they have to reconcile this reputation among their base with their own ability to evolve.
Realistically, most EOL'd Microsoft development platforms had been in their period of being officially supported for no less time than it takes an open source platform to go from being the hot new thing to something that's barely worth mentioning on your resume anymore. And Microsoft still offers a lot of continuity - XNA and Silverlight may be dead and WPF might be on the way out. But those C# skills you learn on the old platforms are still usable all over the place, including in Unity (for game developers) and with Xamarin (for mobile). And those XAML skills will still hopefully be useful with WinRT. By contrast, it'll probably be a much bigger deal to switch platforms when Ruby finally becomes passe. For one, it'll take learning a whole new programming language.
Before I get jumped on, I should hasten to say that my intent isn't to criticize any open source for anything. It's to criticize the Microsoft community for developing an attitude of complacency and perhaps even entitlement.
But Microsoft is a chronic, habitual offender. It's a point of routine at MS rather than an occasional occurrence.
The principles are all the same, everywhere you go. The names change and the exact implementation details differ, but it's the same stuff with a different hat.
There's perhaps some truth to that, but they could handle things so much better.
Some of these technologies should perhaps be in perpetual beta or something, until they decide they're going to support it long-term. The problem is that Microsoft flogs them as the blessed platform, puts out the rallying cry for all developers to come running and use this cool new thing, and then drops them like a bad habit.
I actually can't think of a case as bad as Apple axing the Xserve line and telling people to use mac minis and mac pros in a rack.
Long story short: Microsoft realized that Entity Framework was taking longer than expected. But they really wanted an ORM to ship with LINQ. So they took a smaller mini-ORM project that was really written for testing LINQ and was never intended for production, hastily dressed it up, and pushed it onto the market as a stopgap. Entity Framework was still happening, mind you - Microsoft never actually planned to support LINQ to SQL long-term.
But they never really mentioned that was their plan. So a great many developers had already written data access layers based on it by the time Microsoft announced they were going to stop supporting it approximately 11 months after it was initially released.
Now, Apple has a whole hoard of technologies that Adobe and Microsoft didn't use that did not make the jump from OS 9.0 to OS X. OpenDoc is most famous for the youtube video where the angry developer questioned Steve Jobs. I suppose you could add Newton OS to that list, but it is more the closing of a whole platform.
In more modern times, if you started using GC, then you had to convert to ARC pretty soon thereafter.
I have been experiencing this since the mid 80's from all kinds of vendors.
Surely people older than me even have similar experiences from before.
http://www.youtube.com/watch?v=Ko4V3G4NqII&feature=playe...
It certainly seems clear to me (and seemed just as clear to me at the time) that Cocoa was being presented as the API of the future. Sure, Carbon is on the same slide, but so is Classic!
I also seem to recall (though I'm not an expert and I certainly don't have inside knowledge) that in those first few releases both Cocoa and Carbon were evolving, sometimes at different rates in different areas. Then I remember when Core Foundation and similar C-only APIs became a thing that people talked about, which as an onlooker of the platform kind of confused me at the time - was it an admission of some inadequacy of objc?
I don't think the evolution of C vs ObjC APIs was a good proxy for the future viability of Carbon vs. Cocoa. If an API was intended for Carbon apps, it had to be C. If it was exposing core OS services already implemented in C, it was more likely to be C. Even fairly new APIs like Grand Central Dispatch have both C- and ObjC-intefaced components, based on the level of abstraction.
Also, JavaFX Script is dead, but JavaFX the library is doing quite well (http://www.oracle.com/technetwork/java/javafx/overview/faq-1...).
So building products and applications on the flash player these days is quite the gamble.
It's not that much of a gamble as long as W3C and HTML/JS are still around.