Slashdot Mirror


Windows 8: .NET Versus HTML5 Metro App Development

An anonymous reader writes "Will Microsoft take advantage of .NET's Java-like CIL and allow .NET code to run on Windows 8, or force developers to switch to HTML5 Metro apps instead for porting apps to Windows 8? This article brings up important insights into both paradigms' advantages and disadvantages, and even correlates the options with Microsoft's past NT-era support of MIPS and PPC, as well as Windows CE's way of supporting embedded architectures."

18 of 179 comments (clear)

  1. Intel will not allow MS a free hand... by jkrise · · Score: 4, Interesting

    as the article suggests, to port .Net apps to the ARM architecture. Arm-twisting both ways in the Wintel duopoly, first it was the turn of MS, now it's Intel's turn.

    --
    If you keep throwing chairs, one day you'll break windows....
    1. Re:Intel will not allow MS a free hand... by slack_justyb · · Score: 4, Interesting

      First the Compact Framework is crap and pretty limited in comparison to what WinRT is suppose to offer. So I dare say (and this is me just guessing so don't take it as the honest truth, because what do I know?) that developers are going to want to target the option that has the most options with the most platforms, and thus they are going to really look at WinRT (ARM and Wintel + most options in common compared to everything else) as opposed to CF.

      Don't get me wrong CF will still have a lot of uses. Just not consumer based, CF will become mostly a industry thing, much like Java has become (the platform, not the language).

      Second, legacy applications are going to have a pretty rough transition and the desktop version of Windows 8 is suppose to be there and help this out. This is why I think tablet Win8 is dumb. We all know that it is going to take a lot of time before vendors can really bring their wares to WinRT, most likely some won't make the jump at all. That's always going to put a divide between desktop and tablet. That's going to make their unified concept look mighty dumb. I hate to say it, in fact if you see me you can have a free punch, but Apple is correct. Desktops and Tablets are different and need different platforms. WinRT will make developers fume with anger as they find that they want to target as many people as they can but suddenly they can't find parity with tablet and desktop Windows versions. Developers are going to ask, why even have this unified looking OS to begin with?!

      I know for a fact that native isn't dead. I think the better way to state it is, native isn't consumer anymore. I think any tech company that forgets this has doomed themselves. Business is still going to need (if not in fact demand) native code. I think tablet focuses heavily on consumer, and aiming the OS to be tablet and desktop second is aiming the OS to be consumer. XP was such a great hit because it aimed at business first and brought some consumer added features. It was build on NT which was the "business" OS, it had business features with friendly polish.

      In the end I think that tablet has been blown out of the water. Desktop isn't dead, neither is native code, but with more and more non-tech users moving onto the Internet and using computers, there has been a growing demand for consumer friendly devices. The tablet has the right mix to be this, but let's face it, it was a big uh-oh to think Joe six pack needed a full blown out computer. However consumers and businesses are all going to need stuff for consumers to consume, that's your desktops, that's your native code. That stuff isn't going anywhere, it's just not hot at the moment.

      That' why I say that WinRT is going to be the target for most on Win8 and it's going to fail hardcore for legacy applications. CF is just another niche thing that Microsoft will eventually kill off, just like Silverlight (yeah I know they didn't kill it but have come as close to it as they can.) The fact that most vendors are going to be hitting native and WinRT for most of their products is going to make this whole unified Win8 think look dumb in the end. Also, the fear that Microsoft may very well kill off the Metro thing too at some point if they get bored with it. I wouldn't put it pass them, that if they see Win8 becoming a flop, that this whole Win8 fiasco disappears come Win9.

    2. Re:Intel will not allow MS a free hand... by liamoshan · · Score: 5, Insightful
      This Slashdot submission must hail from bizzarro world:

      The summary is concise and has decent grammar

      The blog post it links to raises interesting questions without shoving a viewpoint down your throat

      It mentions Microsoft, but has no kneejerk M$ bashing

      The blog post it links to has no ads!
      What has happened to the real Slashdot?

    3. Re:Intel will not allow MS a free hand... by oiron · · Score: 3, Insightful

      Tell me, how do you use Javascript to write a fast, efficient signal processing application? How do you write 3D graphics in HTML5?

      Native is still consumer; you still need fast, close-to-hardware work for many things like image processing (iPhoto), audio processing (look at all the people raving about garage band on the iPad), games and the like. If anything, the "enterprise" is the one who doesn't need native. Who needs SSE and OpenCL for a billing application, email or even displaying a presentation? Write that in HTML5 + JS or whatever, your users wouldn't notice.

      Your basic point is correct, but I think you stressed it too much. Native code isn't going anywhere, and if anything, it's going to get even hotter. It'll be for the superstar apps like Photoshop and Blender. Your flashlight apps and Yet Another Calculator are going to run on the interpreter. What's over is the days of 200 lines of COM gibberish to write Hello World. That was an avoidable fiasco which they're trying to correct in all kinds of ways now.

    4. Re:Intel will not allow MS a free hand... by hairyfeet · · Score: 4, Interesting

      Just proving once again old Sinofsky doesn't have a damned clue and Win 8 is gonna suuuuuck, WOA was a good name because WOA is it gonna blow.

      In the end there is a damned good reason, a few actually, while Apple could pull this kinda stuff off and MSFT can't. 1.-When Apple switched from PPC to X86 they were switching to an arch that was powerful enough they could have emulation without a severe penalty. this is the opposite of what MSFT is facing, where the best ARM chips simply can't compete with a modern X86 in terms of performance so emulation would probably be roughly the speed of a Pentium II, not good enough to be useful. 2.-Frankly there wasn't nearly as huge a market for third party programs at Apple, many of the most popular programs being built by Apple itself. Again the opposite of MSFT, where other than office frankly all of the software, we are talking millions of programs, are made by third parties that will most likely completely ignore WOA for the much much larger X86 base. 3.-Finally with iOS Apple made it clear it was NOT OSX, and made sure to keep the branding separate between their desktop and mobile OSes. Again the exact opposite of the fucking retarded move by Sinofsky and Ballmer of using the Windows name on WinRT, which will mimic Win 8 X86 right down to the dumbass metro UI. this will of course in all likelihood cause a MASSIVE amount of consumer backlash, as the average consumer don't know ARM from arm&hammer so will simply look and go "hey a tablet with Windows! I can run my stuff!" and when they get it home and find out they can't they WILL return it. I saw this first hand over the holiday with a local retailer selling "Windows tablets" that had WinCE clearly listed on the box but the consumer saw a WinXP desktop and believed it actually run windows.

      All in all the more info we receive about Win 8 the bigger the stench of failure that comes wafting up from it. The ARM version won't run X86, the X86 won't run ARM, so right there every damned dev will have to build two of everything, its UI is NOT intuitive or discoverable, as you can see from this video which I can tell you from the Win 8 CP running in the shop is a pretty typical user session with Win 8, and by both reusing the Windows name AND the metro UI they expect consumers to know the difference between arches and to know they can no longer trust their eyes but instead like WinCE look for a label they most likely won't understand if they were staring right at it.

      I'm so glad that other than the test bed in the shop me and my family will be sticking to Win 7, because i have the feeling for a year and a half i'm gonna be wiping this damned thing for 7 like I wiped Vista for XP. I have to wonder if the reason Sinofsky, who was never really in the spotlight that much before, is being shoved out there now is to be the fall guy for Ballmer when this thing bombs? Let us just hope that sooner or later the board gets tired of the monkey wiping his ass with billions and they fire his ass, because frankly this is gone past funny and into sad, hell even the pepsi guy at Apple wasn't this pathetic as CEO.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    5. Re:Intel will not allow MS a free hand... by hairyfeet · · Score: 4, Insightful

      I agree with MOST of what you posted except the bit about Joe sixpack. As a guy who actually builds and sells to Joe I can tell that the ones buying tablets? Yeah they usually have a desktop AND a laptop which is where all these "the death of the desktop!" pundits are royally fucking up. they see the X86 numbers but don't understand what they mean, when in reality the tablet has taken a different niche, its used to poke at a screen during the commercial to look something up, or as a portable PMP.

      The thing all these pundits and apparently MSFT doesn't seem to understand is thus: For Joe the PC went past "good enough" and into "insanely overpowered" several years ago and with solid caps and a little TLC frankly the things just don't die so they just aren't getting replaced constantly like cell phones are. Hell I have customers i support that are using 5+ year old laptops and first gen dual core desktops, are they poor? Nope they just don't see a point in replacing a machine that frankly they aren't even stressing. I just recently talked my doc into letting me find him a nice netbook because he didn't like the weight of his laptop, it was going on 7 years and had had 2 batteries since he bought it, now the old one is a kitchen nettop for his wife.

      The problem is MSFT and the OEMs got spoiled during the MHz wars and thought the 3 year cycle would last forever, but as i see everyday there are a TON of people still using Pentium Ds and Athlon X2s that are fricking 7 years old simply because they can't even stress these old chips out and the machines they are in simply aren't dying. the giant fuckup MSFT is making is by coming in too late into the ARM game and trying to use the Windows UI and name to shove their way in. this is the same dumbshit move they made for damned near a decade with WinCE which was a big fail and it'll be a big fail again.

      You are right that businesses (no AD support, WTF?) and legacy apps are seriously gonna hurt them but I'd argue what is gonna hurt them worse is the very market they are badly attempting to target, the consumers, as they simply aren't giving them any reasons to choose WinRT over iPad and Android. What they SHOULD have done is left the desktop alone, maybe added a few bells and whistles but that's it, and instead focused the Metro UI on ONLY tablets and phones and moreover give the consumer a reason to buy them. For example made it incredibly simple for someone like my dad to remote in to his desktop at work on a WinRT pad at home if he needed to check some figures, and tried to make Windows 8 + WinRT + Xbox 360/720 as seamless and "push one button and it works" as much as possible. Instead using Win 8 CP at the shop frankly the ONLY nice thing I can say is "maybe it'll be nice on a cell phone" which is NOT what you want your customers thinking when they use your flagship desktop OS, and now that I know the ARM apps won't work on x86 anymore than the x86 will work on ARM I have even less of a reason to buy a WinRT anything..

      --
      ACs don't waste your time replying, your posts are never seen by me.
  2. Re:No brainer by Riceballsan · · Score: 3, Interesting

    While it is true, Microsoft may just be hoping for a foot in at this point. HTML5 is touted as the one stop shop to port an app to Android, IOS and windows. Microsoft is entering the mobile phone war late in the game and way behind, interchangeability at this stage of the game is a plus for them. They just need plans to mess that up late in the game if they take the lead.

  3. A question? by Anonymous Coward · · Score: 3, Insightful

    Will Microsoft allow .Net to run on Windows 8?!??! Are you seriously asking this? The answer is a resounding YES for so many obvious reasons that it seems ridiculous to even respond to this.

    1. Re:A question? by man_of_mr_e · · Score: 4, Informative

      WinRT includes a .NET runtime. Yes, on ARM. It's a subset of .NET 4.5 (same subset metro on x86 has). There is no "if they port it". It's ported.

      And no, porting the .net runtime does not mean x86 apps will compile and run on ARM, although almost any app written entirely in a high level language should, unless it depends on byte ordering or some other factor that is x86 specific.

    2. Re:A question? by cbhacking · · Score: 3, Informative

      If the .Net runtime is ported to ARM, then X86 apps will compile and run on ARM as well

      This statement makes nothing even slightly resembling sense. .NET and x86 have absolutley nothing to do with eachother. Programs writtten for the .NET framework compile to Common Intermediate Language, which is architecture-independent (similar to Java bytecode). Programs written for x86 are, obviously, x86-specific, and will not run on a CPu with a different instruction set architecture, such as ARM.

      The .NET runtime has already boon ported to ARM anyhow. First of all, both Windows Mobile and Windows Phone have .NET components, and both run on ARM (for that matter, so does the Zune HD, which is also programmable using C# and a subset of .NET). Parts of "big Windows" (Win8, in this case) use .NET, so even if it's not available to third-party developers, you can bet that WinRT includes .NET, and Windows RT runs on ARM.

      Finally, and stupidest of all, Microsoft has already published the build tools for Win8 Metro-style apps, which will run on all Win8 systems including ARM (Windows RT) ones. These apps are written against the "WinRT" API (not the same as "Windows RT", which refers specifically to "Win8 on ARM"). WinRT is natively a C++ API, but it *already* has .NET bindings and it's perfectly possible, even today, to write Metro-style apps using .NET languages. In fact, this has been possible for months...

      --
      There's no place I could be, since I've found Serenity...
  4. Then you can be the smartest guru on the cinder. by Impy+the+Impiuos+Imp · · Score: 5, Insightful

    I've been through a number of cycles of The One True Greatest Solution For All Time a whole bunch of times now.

    As The Comedian says, "It's a joke. It's all a joke."

    Great, massive, scalable frameworks that we are to write once in, and that's it, it's nothing but code reuse and minor tweaks for as far as the eye can see...until three or four (or two) years goes by and it's all changed and you have to re-write everything all over again...once and for all.

    Until the next few years goes by.

    Entire graphical e-z layouts with auto code generation. General purpose driver systems. Document data sharing models. Database storage systems with query languages.

    It's a joke. It's all a joke. Mother, don't you dare fuckin' forgive them.

    --
    (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
  5. Re:Idiot by Anonymous Coward · · Score: 3, Funny

    Now who's the idiot? CLR is a calcium, lime, and rust cleaner. It doesn't compile anything!

  6. Re:No brainer by slack_justyb · · Score: 5, Insightful

    Um, no. I don't know of any other JS engine that implements the WinRT namespace. The Chakra JS engine is what will separate any browser from being able to run Metro apps. A metro app isn't a web app, it is important that people understand this. Even though the two are written in the same language, they are not the same thing. Just like Java applets and Android apps are two very different things, they are both written in the same language, Java.

    So yeah, Microsoft can still use HTML5 to lock in people into their product, so long as the HTML targets Metro and not the web. Granted it *might* make it easier for one to port from Metro to Web and that's exactly what Microsoft is trying to sell. I don't know how exactly true that is however. But HTML+JS for Metro and HTML+JS for Web are two different things with the same language. Pass it on.

  7. Re:Then you can be the smartest guru on the cinder by Rogerborg · · Score: 3, Funny

    Yup, just more Microsoft word-spooge onto the faces of the developmentally naive.

    Joke going around the office: Microsoft buys Yammer, renames it SharePoint Cloud Server 2012 Mobile Enterprise Social Networking Edition. - Gene Smith, Twitter

    Someone left an MSDN magazine lying around in work. It had an article titled something like "Leveraging code re-use via multiparadigmatic metaprogramming lambda expressions". After some head scratching, I eventually figured out that they were talking about implementing macros in C#.

    --
    If you were blocking sigs, you wouldn't have to read this.
  8. Re:Idiot by Xest · · Score: 4, Informative

    "This guy is a complete moron. First, it's called the CLI, not the CIL."

    No it's not. CIL is the Common Intermediate Language, it is .NET's bytecode format, that is part of the CLI (Common Language Infrastructure) and runs on top of the CLR (Common Language Runtime). The CIL is important for portability as it is effectively the abstraction layer that separates the actual code, from the underlying architecture. The CLR then acts as an architecture specific implementation to execute that bytecode on the architecture in question.

    "Second, it's called the Windows Runtime or WinRT and it runs .NET apps and HTML5/js apps."

    Just to clarify, as someone responding to you didn't seem to quite get it, it doesn't run existing .NET apps, that's done elsewhere. It does allow you to write new apps utilising parts of the .NET toolset however.

    Despite this, I agree, the guy is indeed a complete moron writing an article about something he generally doesn't really seem to get.

  9. Re:Idiot by Anthony_Cargile · · Score: 5, Interesting

    This guy is a complete moron. First, it's called the CLI, not the CIL. Second, it's called the Windows Runtime or WinRT and it runs .NET apps and HTML5/js apps. This is all quite plain to anyone that has even a tiny understanding of the system. This architecture diagram has been posted for quite some time, and clearly shows C# and VB as well as C/C++ apps running under WinRT/Metro.

    Hi, I'm the "complete moron" who wrote the article. I most definitely meant CIL and not CLI, as I was referring to the Common Intermediate Language, and not the Command Line Interface. One is used to interact with an operating system through mostly text (curses and cursor-based terminal graphics being a stark exception), and the other allows multiple human-written programming languages to be compiled to a common bytecode form for interpretation by a .NET virtual machine runtime, and the basis of this article was that the same VM can be ported to Windows 8 on ARM in place of Metro apps. And your diagram does not clearly note anywhere that it is valid for Windows 8 on ARM as it is for x86/x86-64. Next time, don't be so quick to jump to conclusions and throw the words "moron" and "idiot" around. Thank you in advance.

  10. Re:Idiot by Anonymous Coward · · Score: 5, Funny

    He didn't mean Command Line Interface.

    Common Language Infrastructure

    The Common Language Infrastructure (CLI) is an open specification developed by Microsoft and standardized by ISO[1] and ECMA[2] that describes the executable code and runtime environment that form the core of the Microsoft .NET Framework and the free and open source implementations Mono and Portable.NET. The specification defines an environment that allows multiple high-level languages to be used on different computer platforms without being rewritten for specific architectures.

    Complete moron still applies, I think.

  11. Re:Metro eh..? by Xest · · Score: 3, Interesting

    The fundamental problem is that it's all entirely backwards.

    The web is moving more towards apps so rather than continuing to butcher HTTP and HTML into supporting apps, we'd be better off creating a new protocol handler (is app:// taken?) and creating a set of technologies better meant to facilitate that.

    XAML may not be the best option, but it illustrates the concept - it would make much more sense to have something like this built for the web/desktop than it would badly butchering HTTP/HTML.

    I agree with you on where HTML5 is going but it frankly scares me, it's a throwback to the bad development practices that came around in the 90s, culminating in Visual Basic 6 being used for actual commercial apps.

    I get the feeling it's a new generation of developers pushing all these things, one that hasn't learnt from the mistakes of the previous generation. All the problems with HTML5 have long be solved, but for some reason the solutions have been ignored, and so the problems are merely being repeated. I get the feeling we've got a decade of really bad software ahead of us. Time will tell I guess.