I made the following angry rant on reddit. I think that it also fits here.
The idea that .NET is going to be replaced by HTML5 and JavaScript is absolutely ridiculous. The only people who can make that claim are those who don't really know what .NET is. It is a desktop stack, a server stack, a runtime for many languages, those many languages themselves, and countless libraries that are being actively developed. HTML5 and JS is a minimalistic client side technology. One cannot replace the other. They are not analogous technologies.
The biggest changes that could happen are:
1. HTML5 and JS become another presentation layer for .NET apps.
2. HTML5 and JS get hooks to allow it to be used to write basic App Store style apps and gadgets. (Gadgets are currently written in html and js so there would be no change there.)
3. HTML5 and JS become another dev platform for the Windows Phone.
4. Silverlight gets slowly phased out.
That is, unless you believe that Microsoft secretly worked for 5 years to create a dev platform that is based on a technology that became popular just last year that can be used to replace every development technology like C++, .NET, etc., and that can be used to write anything from server side apps to games to database servers to operating system components. Do you really think that Microsoft is that good of a software company?
But of course, this is all speculation, just like all of these sensationalist articles and threads. And nothing of value can come out of this. I can't wait for the formal announcement to be made. The amount of retarded discourse that the Win 8 announcement made is absolutely depressing.
I think I'm on record pretty well for not being anti-MS, but let me play devil's advocate and tell you what really is happening ;-)
I'm going to phrase everything as fact, although purely speculation (an old parlor game, if you will). I have no insider knowledge.
* On the server it will stay .NET. I'll grant you that.
* On the client MS only supports HTML for the tile UI. Launching any other apps opens it in the explorer shell.
* Why? Windows doesn't believe in .NET.
* Why did MS push .NET on the client as recently as a couple of week ago? Because MS is not a monolith. Windows wants IE to be the rendering engine for Windows, while the dev tools group is pushing SL.
* Sinofsky is winning the internal battle. He owns Windows and what Windows ships. VS/CLR can ship new versions of the CLR, but they can't control what Sinofsky/Windows does.
* Ballmer doesn't have the internal power to face off against Sinofsky, but he can throttle STB.
* Everyone thought Muglia got ousted because of Cloud. That was just a part of it. It was because he didn't get inline with the HTML message. He tried to cause a ruckus by getting the message out there, but was shutdown. Everyone in STB now knows to keep their mouth shut.
* Guthrie was told that he's a shining star, but stars won't shine coming from SL. Get over to Azure, and you're still on track for President.
* WP7 uses SL because IE wasn't ready. The SL team took this as their chance to make a big impact and show that SL was indispensible and desired. Good effort, but at the end didn't matter. It will still be replaced.
* MS has no problem killing presentation layers. They killed probably the most popular desktop layer of all time, VB6. They killed WinForms. They let MFC rot slowly with no replacement. WPF was never given much chance to live.
* MS is thinking that iOS took off with Objective-C. A more difficult langauge to learn and with no real dev base prior to 2008. Windows feels that HTML is easier to learn and already has millions of devs. If MS builds a great platform with lots of eyeballs, the devs will show up.
Microsoft should kill unsuccessful tools; internal competition is not bad, but actually good.
WPF is an abomination that was bred to torture developers - basically the Java EE of the UI world.
Also, if you ask iOS devs, they'll tell you that it's the best platform for developers, ever - the UI layer has stylish widgets that work out-of-the-box, they can share code with OS X projects in C/C++, they get to use Cocoa, XCode and the development environment is a real Unix.
And I'm also going to mention Android - while not as stylish as iOS, the development model is so close to web apps it's actually beautiful. Also the dev tools, since they leverage Java, work on ANY OS.
Also, lots of devs create Javascript/HTML UIs (served from WebViews) on both platforms, while there's special glue that accesses low-level functionality.
Microsoft would be mad to ignore this trend. They are already on a serious decline in regards to developer mind-share and the environment they provide is really closed to the outside world.
Did you know that you can share code between Android and iOS through C++? Both can run C++, both have OpenGL ES. But there's no such thing on WinMo 7, it forces you to use dotNET with Silverlight and Direct3D. That's only one mistake in a whole series of mistakes they've done and I'm wondering how much are their heads stuck up their buts.
And I'm also going to mention Android - while not as
stylish as iOS, the development model is so close to web
apps it's actually beautiful.
Really? To be quite honest, I found Android's development model to be closer to Silverlight/WPF than true web development. The relation between the XML-based layout language and the Java code behind reminded me much more of the relation between XAML and C# than HTML and Javascript.
I'm not referring to the way UI is described with XML, although as I've mentioned there are people doing UI with HTML/Javascript (see http://www.phonegap.com/ for starters).
Android apps can have multiple entry points, just like web apps by means of URLs. From one app you can jump into another app while opening a specific screen. Android apps have a functional back-button that works by default (as in, the developer doesn't have to do anything to benefit from it). Android apps are very composable as normally they expose APIs that can be used by other apps (the environment encourages it by means of intents, services, broadcast receivers and the multiple entry points I mentioned above). Android apps give the impression of being always on, since you can't rely on an app to stay alive you have to implement life-cycle management (e.g. save the user's data and the app's state as soon as you can).
What I describe above is by no means unique to Android apps (iOS apps are usually as well behaved, or even more so), but Android makes it natural. On the other hand, Android apps in Google's market look like shit but the stock widgets are getting better so hopefully people will stop feeling compelled to color their buttons blue :)
MS has no problem killing presentation layers. They killed probably the most popular desktop layer of all time, VB6. They killed WinForms. They let MFC rot slowly with no replacement. WPF was never given much chance to live.
I wish I could upvote you more. They also killed foxpro, left Access to languish on the client side. Each of these have plenty of traction and should have continued to exist if not for the fact that MS chases big markets.
Mostly analysis of 3rd party sources. I do live in Seattle (most of the time) and literally about half of my friends work at MS. But they're really tight lipped about product plans, and I'm not the type to pry. But some of it is based on past stories I'd heard about the conflict between Windows and the developer division -- and then extrapolating.
So take what I say with a grain of salt, and more just fun conjecture. I'm probably more wrong the right. But until MS gives devs more info, I think it's not an unreasonable set of conjecture.
"The only people who can make that claim are those who don't really know what .NET is."
Since this is about .NET developers supposedly being enraged, I'd guess it's more likely they don't know what HTML5 or JavaScript is -- and perhaps this leads them to assume it's somehow possible to use them as a "complete" application development platform. I don't know, either way I can't believe people are so lacking of reasoning to actually be concerned about this.
I mean even if their worst nightmares came true and this was a sign that .NET is going to get phased out, Jesus Christ, just learn another platform. Carry the .NET experience over to something else, stop cornering your career into a single technology with some delusional idea that it will never become obsolete, and for god's sake stop crying like babies.
Well, this part:
"If you are a Windows developer, I'll bet you did: there was little to no mention of .NET technology in the Windows 8 hoopla, and quite a few Windows developers are more than a little angry about the whole thing."
Just wanted to say that your comments don't really come across as an angry rant, but as a voice of reason. I agree with you completely, and this sort of approach from Microsoft would be quite in line with everything they've done in the past.
I like .NET/Mono stuff, and I totally understand the frustration of .NET developers.
I would want to point out though that Javascript does have all the features you listed that .NET has, except the desktop stack - but of course that is precisely what Microsoft (and others, like GTK developers) may be developing.
"what .NET is. It is a desktop stack, a server stack, a runtime for many languages, those many languages themselves, and countless libraries that are being actively developed"
Even .NET code can be ported to javascript via tools like: https://github.com/kevingadd/JSIL (as can java via GWT and so forth) Although of course System.Windows.Forms hasn't been ported (wouldn't surprise me if someone does though).
By the way, I do educational software - we like applets and so forth. That was the main drawback to the .NET/Mono platform, from my point of view. When Silverlight was released to run .NET in the browser, that was great, but it only works in Windows, and Monolight doesn't seem to work too well as a replacement on other platforms. Now with HTML5 and canvas, it's even nicer than applets, although a bit slower (can't run a complex circuit simulation as easily, for example), plus it runs on mobile/tablet platforms of course.
I think JavaScript is going to be the number one choice for server-side programming... for web developers who are dipping their toes into back-end code. .NET covers a lot more ground than that. Anyway, even if you decide to use JavaScript on the server side, you need more than a language. You need a platform with libraries and so forth. Solution? JavaScript.NET. If JavaScript becomes a big server-side language on Windows, that's how it will happen.
I'm not going to say I disagree with you, I'm just quite stumped as to why such a large portion of web developers don't like static typing. These days a static language with good type inference honestly gets rid of most of the burden and the ugly verbosity while still giving you compile time checking.
1. HTML5 and JS become another presentation layer for .NET apps.
Anyone else fails to see the benefit of this in terms of architecture quality? The claim is that anyone who knows HTML and JS will be able to develop UI. But the reality is that it will probably be very different from developing web UIs, with it's own APIs, gotchas and hacks you need to know.
Nevertheless it's an enormous step toward unifying desktop apps and web apps. I'm actually shocked that MS would do this. It seems like the first bold, intelligent move they've made in years, assuming they actually have it in them (I'm still skeptical, but perhaps Sinofsky has squared the circle). At a minimum it should commit MS to making HTML5+JS run super fast in IE, which is a huge deal in itself.
Nevertheless it's an enormous step toward unifying desktop apps and web apps.
Is this a good goal, though?
Web used to follow a certain model that worked well and allowed people to develop websites easily. It grew. Then people wanted a more desktop-like experience. This resulted in development of new APIs and extensive use of JavaScript. We're moving farther and farther away from the original model. And now MS is going to reverse the gears, and use web-based tools for desktop development.
Problem is, developing a web application right now it not much simpler than developing a desktop app. Sure, you get the benefits of no deployment, and instant updates, but this will not apply to "desktop" application in HTML anyway.
There are already client-side MVC frameworks in place---sproutcore, backbone, ... Of course Microsoft will try to put "architecture quality" into their framework. Let's just hope we dont see Javascript Desktop Pages like WebForms.
I applaud MS for looking towards the future instead of the tired technologies of today's desktop. I won't knock it until the they have some code samples up.
I think you're right. Also, since C# 4 there's a lot of similarity between C# and JS. That, plus an MVVM framework like KnockoutJS, make it trivial for a Silverlight developer to get started writing solid HTML/JS apps.
I just can't imagine too many Silverlight devs being upset once they see nothing much has really changed.
I admit that's about as close as they get syntactically, but with type inference, higher order functions, and anonymous types they really kind of "feel" similar in some cases. Oh, and C# has optional dynamic typing, so it can ~really~ feel similar if you want.
If .NET has a place in first-class Windows 8 development, why is Microsoft remaining silent about it? Journalists who follow Microsoft, like Mary Jo Foley, have covered the internal strife over .NET. Reportedly, the Windows division just doesn't believe in it for desktop development.
The idea that .NET is going to be replaced by HTML5 and JavaScript is absolutely ridiculous.
VB6 developers probably wouldn't have believed that Microsoft would kill it off either, but they did.
As I said here, http://news.ycombinator.com/item?id=2615797, I strongly believe that the windows 8 UI we have seen so far is more or less just an improved widget/gadget shell, like a fullscreen Mac Dashboard.
I really think that real, full-fledged applications will still be written in whatever languages are available today. All of this fear is IMHO just plain FUD
I think the HTML5 and JS technology in Windows 8 is simply another software development framework and not meant to replace .net and friends. Perhaps Microsoft is looking to encourage the development of apps (in such a way that Apple has demonstrated with the App Store). .net will still be available for the larger and/or more involving programs. Remember, Windows is popular because of Microsoft's firm dedication to backwards compatibility (for better or worse).
And isn't the FUD just directed at Silverlight development? I could see Silverlight losing ground as more browsers support HTML5, but as others have pointed out, UI is only small part of the .NET ecosystem.
I really think that real, full-fledged applications will still be written in whatever languages are available today. All of this fear is IMHO just plain FUD
The issue is that those apps will be relegated to the crufty, legacy desktop tile while the first-class apps get to appear on the new shell.
As others have noted, this article does some fear mongering. But it does raise some issues:
1) WPF might potentially go away. I'm glad I didn't waste any time learning this so I can care less. People who bought into "WPF is the future" might be unhappy but learned a valuable lesson. I myself learned this lesson with the "Compact Framework is the future" hype. I learned to be skeptical of proprietary stacks from then on.
2) As other posters have mentioned, a lot of apps have front and backends. For shops that use MSFT tech, .net isn't going away from the backend by any means.
3) HTML 5 + JS do let you build apps that are a lot closer to the Desktop experience than previously. If you haven't already, check out these slides (link:http://slides.html5rocks.com/#landing-slide) and be prepared to be blown away. In fact, Google's Chrome initiative is betting that you can write most application front-ends in the browser now. If MSFT starts supporting these apps in a nice way, this might certainly make HTML5+JS the preferred way of building application front ends (I guess WinForm developers would be ticked off at this).
4) The Windows 8 HTML apps reminded me of the Vista sidebar widget in some ways. Wasn't there going to be a whole market place of apps? There was a lot of hype but it never happened. Thankfully, I had learned my lesson by the time I encountered the "sidebar gadget apps are the future" hype.
I still remember the uproar when .NET was first announced, and how it was widely predicted it would utterly fail, and people who couldn't understand why anyone would use it.
IT evolves constantly, and you have to stay with it. Getting upset about it changing is pointless and being stuck on 1 technology will quickly see your business left behind.
Couldn't agree more. I was also in the thick of things when .NET came out. We had a large established base of apps on the pre-existing versions of Visual Studio. The whole migration nightmare/uproar to .NET is still fresh in my mind and I clearly remember how the .NET supporters fundamentally said "Time to move on". Small bit of irony that now (in some cases) time to move on applies to .NET itself. (though I wholeheartedly agree that most of this uproar is silly, .NET is much more robust and flexible than HTML5 and not in any danger of being "replaced")
Still brings a small smile to my face though when I see .NET developers upset about no viable migration path forward. This cycle will repeat again in X years, it's the nature of the biz. Most of our careers are going to span several major shifts in technology and you just roll with it.
I've used .net nearly exclusively for the past 8 years in my career and still believe this is all some stunt to generate negative hype.
If this so-called uproar is caused by developers who are not willing to upgrade their skills, they shouldn't be in this business. The same event occured with VB6, which was replaced by .net, which will be replaced by something better, and everyone started reading their books again. Even if MS ends support for .net tomorrow (which it won't, i.e. WinXP tenure) too many companies are locked into .net technology and they'll still have work to come for years while they finally evolve to a new technology.
If you really dislike change and still want to call yourself a programmer, transition to embedded devices and stick to low level ASM or C which should be around for a while.
We continue to support a complex VB6 app (started development in 94). It is too expensive to port the entire app over, and now VB6 is left to languish. There are some problems with building some controls in 64 bit environment and we can't get support for it. Remember going from VB6 to .NET is a massive and risky investment. Why move if you think you are going to be abandoned again?
As an ASP.Net/C# developer, I saw these new HTML5/JS tiles as an opportunity for my skills to be applied in a new context. I'm actually pretty excited about that.
Well I thought it was a decent article with a sensational headline. I don't know any real .NET developers who are "enraged" nor does the article say this.
.Net developer here, and im not enraged but feel satisfied with these events . i allready use javascript/JSON extensively because it has better integration with windows/.net/browser than Silverlight. There is advantage for silverlight in performance I believe but that is slowly changing now. because of browser competition.
Silverlight could have bought me if it was integrated in browser by default like Javascript/HTML. That seemed like logical step but they didn't do it for some reason (if im not mistakeing)
Does HTML5 have an element that is similar to an scrollable editable grid, with column headers that don't scroll? I know a lot of people hate that UI idiom, but it's very common and as long as people like to use Excel, this idiom isn't going anywhere.
Doing grids are a breeze w/ .NET. I don't think "use jqgrid" is an acceptable solution here... I'm asking about native HTML, the stuff that everyone is bragging about.
ExtJS's set of grid panels was just about the most impressive one I've seen thus far (tree grids, group grids, paging grids, features for filtering/searching, sorting, hide/show columns, binding to xml/json/direct, etc). Though it would probably huge overkill to tie yourself into the whole framework just for one widget.
Wasn't Silverlight $future_version going to be HTML5/JS/CSS based? It seems to me that means Windows 8 apps would be Silverlight $future_version-based.
I'm lucky enough to be within earshot of a number of world-notable .NET/Silverlight developers and they're far from enraged, in fact quite the opposite, they're cautiously optimistic.
This is probably a good thing, really. Let's not scathe Microsoft for moving towards openness.
Interestingly enough, it wasn't $future_version, but version 1.0, that didn't even support .NET and was scriptable only through JS. Silverlight is still scriptable through JS to this day. Given that Silverlight already supports a hybrid model I can image we could expect that to continue, with HTML as a possible alternative UI langauge to XAML.
Meanwhile, de Icaza has formed his own startup,
Xamarin, which will keep working on Mono and
commercial .NET stacks. But here's something
interesting:the Xamarin home page highlights .NET
development for iOS and Android, not Linux
Can yellow journalism get any worse than already is?
HMMM Just thinking... what if Linux distros used HTML5/Javascript for a GUI Desktop Shell (Like Windows 8)? What if it became a true cross-platform development environment?
That's fair enough considering Internet Explorer, but there are some counterpoints to consider:
(1) If you watch the MS promotional video, attracting a wide range of developers is a stated goal of using HTML5; it would be counterproductive to that goal to add lots of proprietary code.
(2) It would be easier to stick with the status quo than to recreate HTML5.
Their goal is to protect Windows from the competition. Providing proprietary hooks that cannot be easily duplicated elsewhere is their most likely strategy.
'Not sure why I mentioned Linux and not OSX, possibly because I was jumping ahead to wonder if this could solve the Gnome/KDE/Unity debate (but who am I kidding?)
I asked myself the same, lol, OSX is lagging behind when it comes to accepting HTML/CSS/JS as a first class app environment... Except for Dashboard Widgets, of course.
The idea that .NET is going to be replaced by HTML5 and JavaScript is absolutely ridiculous. The only people who can make that claim are those who don't really know what .NET is. It is a desktop stack, a server stack, a runtime for many languages, those many languages themselves, and countless libraries that are being actively developed. HTML5 and JS is a minimalistic client side technology. One cannot replace the other. They are not analogous technologies.
The biggest changes that could happen are:
1. HTML5 and JS become another presentation layer for .NET apps.
2. HTML5 and JS get hooks to allow it to be used to write basic App Store style apps and gadgets. (Gadgets are currently written in html and js so there would be no change there.)
3. HTML5 and JS become another dev platform for the Windows Phone.
4. Silverlight gets slowly phased out.
That is, unless you believe that Microsoft secretly worked for 5 years to create a dev platform that is based on a technology that became popular just last year that can be used to replace every development technology like C++, .NET, etc., and that can be used to write anything from server side apps to games to database servers to operating system components. Do you really think that Microsoft is that good of a software company?
But of course, this is all speculation, just like all of these sensationalist articles and threads. And nothing of value can come out of this. I can't wait for the formal announcement to be made. The amount of retarded discourse that the Win 8 announcement made is absolutely depressing.