Microsoft’s Silence is Infuriating .NET Developers
infoq.com
infoq.com
I use the .NET stack for pretty much everything I do, and I'm not even slightly worried that the next version of Windows will make my life worse. I can't even come up with a way in which they could do so.
I get the feeling that there is some PR agency somewhere inventing these stories for some motive of their own.
I think much of it is an overreaction, but Microsoft's native development story the past few years has given them room for concern. You're correct though, that the idea that there won't be .NET applications being developed and deployed over the next decade is pretty ridiculous.
I definitely think this is a PR disaster for Microsoft. Whether warranted or not, if Windows developers feel like they're investing in deprecated technology, there's a chance that what they jump to won't be controlled by Microsoft.
... like HTML and jQuery ?
Forgive me, but I believe I can safely disagree here.
1) Seattle is probably the top 3 hi-tech hub in USA (Silicon Valley/SF/SanJose and NYC as the other 2).
2) Are you comparing .NET dev in Redmond vs Rails dev in Redmond? Or Rails dev in Redmond and .NET dev in Florida?
* I can't get into specifics, mostly because it was just a conversation, but you could sense the resentment and the feeling of betrayal.
As for why it feels like that, I suspect that different developers would have different answers. For me, there's the abandonment of the Iron* projects, the lack of a decent .NET Javascript, and the weird need-hate relationship Microsoft has with its open source developers.
In fact, if anything, over the past few years I'd say the general sentiment has been that .Net has now eclipsed the JVM as the "best" platform available. Obviously not being able to deploy to other OSes (ignoring mono, of course) was a problem, but not a big one for a lot of folks. C# is a language a lot of people really enjoy using, and F# has excited a lot of people and since it's "official" gets accepted in stodgy corporate environments quicker than some of the alternatives (Scala comes to mind).
That said, yes, in the last month or two I have been surprised (but not disappointed) to see that MS seems to be reinvesting in C++. I'm a little confused by this Win8 stuff, though. I think MS focus on Silverlight over the past year or two was misplaced, when they should have been focusing on WPF first, and now I'm not really sure what the status of WPF is with "Jupiter".
F# is cool, however.
That said, I think there's reason to be apprehensive. I mean, .net is a Microsoft product. It's never a good sign when you have to press a product's maker for information about how great said product is and how central it is to what they're doing. I'm not saying .net is going to disappear in Windows 8, but it certainly sounds like Microsoft is trying to de-emphasize it at this point.
I'm glad they are moving towards HTML5 as their presentation layer standard. I've been doing this for months now anyway, like most .NET (ASP) developers.
Going through 'wizards' and setting properties in a drag and drop visual environment are great for prototyping but these developers were often pressured by their managers to make these prototypes live immediately. Problems were fixed with 'work arounds' and users complained constantly. Often, all I had time to do was clean it up, trim it down and move it to a SQL Server. A temporary fix at best.
I can only imagine that the fear of losing support for these tools is driving a lot of the forum posts that I have seen.
I for one am extremely curious to see what microsoft considers to be HTML5.
You read wrong. Expression blend is not a wizard. It's more like Photoshop.
If you don't "drag and drop" when developing WinForms/WPF applications then it would really be a waste of time hand coding everything, don't you think?
I've been into .Net for a decade now and I am not worried at all. Maybe that's because I am not limited into win apps development.
Of course, who else is expecting to just hear that Silverlight is HTML5? Code targeting it and any HTML5 browser will be able to run the apps, with a better ("native") experience on Windows, but supported on those other platforms... :-)
However, Microsoft isn't necessarily logical. They may simply have not expected people would read this from their Win8 demo and nobody in the company is willing to speak up about Silverlight's roll in Win8.
Either way, this is bad PR for Microsoft.
It's not useful to think of it in terms of what "Microsoft is" or "Microsoft isn't". Microsoft is a very big place, and the internal power struggles are what shape it. In this case, it's Windows division under Steven Sinofsky versus Developer Tools division. DevDiv owns .Net, WinDiv is less keen on it, and they have IE9 now.
Sinofsky is the one who came up with the "native html" non-sequitur at the mix11 conference. How do you start to try to get platform-specific coders to adopt a cross-platform lowest-common-denominator technology? Call it "native".
If this is Kremlinology then so be it. it's the only way to make sense of MS. It's sad that their best technologies are used as ammo in internal battles.
I have to agree though that it doesn't really make sense to use Silverlight for anything else, although Bing Maps is pretty impressive.
I don't support restrictive DRM, but Netflix does have to bow to their content owners to stay in business
Lets put it this way, there are 500M or so Silverlight enabled desktops. There aren't many things you can target that have such a large user base.
In contrast, the devsigner community in HTML is vibrant and competitive. Just look at how many beautiful SaaS apps there are.
MS needs these people working on their stack and they realize Silverlight and WPF is a hard sell for these people who already have HTML chops. If they could get these devsigners working on Windows, it will present a shot in the arm for better looking UI on Windows again.
XAML, WPF and Silverlight were designed by .NET developers for .NET developers, but marketed towards designers. You cannot develop/design in that ecosystem without already knowing C#, VS project and solution files. The workflow was very dev-centric, and that's why I think it failed to take off as MS would like.
The workflow was very dev-centric, and that's why I think it failed to take off as MS would like.
+1
I don't have any qualms saying that those who choose to stay out are depriving themselves of what starting to be a productive app dev platform across the board, with C++ serving as the "dive in for performance" level.
At most I would say JavaScript can be a "serious contender" to a very small subset of .NET. There is no way you can just substitute everything .NET offers with a mix of html5 and JavaScript. That's why I don't think anyone doing .NET development should be in the least bit concerned. That is unless they have some irrational phobia of having to learn something new for their presentation layer.
Is your point only about the presentation layer or about other parts of .Net?
HTML5+JS is only suitable as a replacement to the presentation portions of .NET (so WPF or WinForms), which are just a small portion of everything that .NET is. Think of .NET as being a Humvee and HTML5 and JS as a motorcycle, and developing your application as going to some remote location in Alaska -- while the motorcycle will look great, it will only get you so far, and you need something more for the rest of the road that can also carry a motorcycle if need be.
JS is a language that primarily lives in the browser and doesn't come with anything that would allow you to access much of the computer it is running on. We're talking about applications that will be executing natively here, so things like access to the file system are a must. You can of course try to use something that implements the CommonJS spec, like NodeJS, but are you honestly going to throw out the massive amount of libraries Microsoft created for doing IO, database connectivity, concurrency, networking, and a whole lot more, for something as minimalistic as an implementation of the CommonJS spec?
There are other problems on top of this. People say JavaScript is "fast", and it's true when compared to JavaScript a few years ago, but it is not true when compared to most .NET languages. Objects essentially being associative arrays in JavaScript means accessing a value that is deeply nested in a hierarchy of objects is slow. While even a problem now, it would get much much worse if you were to throw in the large number of libraries needed to make HTML5 and JS into a general application development framework. Stuff like: Com.Company.Project.Class.Member.Member.Method(); simply takes too much time in JavaScript. Same story for deep inheritance chains you often see in desktop apps.
Another problem: If your whole application is going to be in HTML5+JS, your whole application's source code is going to be public. You can try obfuscation, but I personally wouldn't put much faith into that approach.
.NET was built from the ground up as a whole application development framework -- it does this well. While HTML5+JS overlap with .NET in some areas, their scopes are still much smaller in comparison, and are therefore not suitable as complete replacements to .NET.
that would be _your_ fault, not microsoft's.