HTML5-based Windows 8 enrages .Net devs, alienates Linux and Mono
itworld.com
itworld.com
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 just can't imagine too many Silverlight devs being upset once they see nothing much has really changed.
Joke aside, the first time that I coded in JavaScript I treated it as if it were a dynamically typed Java. Pain and suffering and confusion ensued.
JavaScript: var obj = { propA: 1 , propB: "meh" };
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.
At the same time I think that creating HTML5 UIs (ala Windows Forms/WPF) within Visual Studio is a killer application by itself.
I agree, this is sensationalist, factless and pointless reporting.
What's next? Is CSS4 going to replace the JVM?!?
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.
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.
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.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 :)
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.
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.
The "more than a little angry" part links to: http://forums.silverlight.net/forums/p/230502/562113.aspx where you actually do see some .NET people raving like lunatics. So I guess I was kind of writing about that in my post.
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.
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.
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.
Ever hear of the Innovator's Dilemma? The high end is always disrupted by the low end. The low end always appears absolutely ridiculous.
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"
Javascript on the server: http://nodejs.org/
Javascript as a runtime for many languages (more than .NET even I believe at this point): https://github.com/jashkenas/coffee-script/wiki/List-of-lang...
Countless javascript libraries: in the browser https://github.com/bebraw/jswiki/wiki and on the server: https://github.com/joyent/node/wiki/modules
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.
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.
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.
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.
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.
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.
Or your career. I know of a couple of VB6 developers who stopped coding after .NET displaced it.
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.
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)
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.
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.
Examples: http://www.sencha.com/products/extjs/examples/#sample-2
jquery.sheet
yui grid
not sure if Google's closure library has a grid control
and of course there are GWT, qooxdoo, etc.
Heres a table comparing javascript frameworks, and there's a row for which have a grid control.
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?