Showing posts with label Developers. Show all posts
Showing posts with label Developers. Show all posts

Tuesday, June 14, 2011

Why the devs Peter Bright wrote about are wrong (and why Peter Bright is right about what to do about it)

Earlier this week, Peter Bright wrote a passionate piece about developers seemingly being up in arms about two sentences in the Windows 8 tablet demo from D9. (This follows two similar, albeit less detailed, pieces: one from Mary Jo Foley and the other from Paul Thurrott.) Those sentences, spoken by Microsoft VP Julie Larson-Green, are as follows:

“So this application[, an immersive weather application,] is written with our new developer platform, which is based on HTML 5 and JavaScript. People can write new applications for Windows using the things they are doing already on the Internet.”

Apparently, some developers have taken this to mean that the only way to write immersive apps is through HTML 5 and JavaScript. Peter Bright thinks this interpretation is completely rational. I disagree, and in fact I’m going to come right out and say it – anyone who got that from that statement is making a rather large logical leap.

It’s Called A Non-Sequitur For A Reason

These are the facts presented in the above sentences:

  • The weather app is an immersive application.
  • HTML5/JavaScript is the base for a new development platform from Microsoft.
  • The weather app uses the HTML5/JavaScript-based platform.
  • People can now use their experience from HTML5/JavaScript to write Windows 8 programs.

It doesn’t follow from this at all that HTML5/JavaScript will be the only medium for development, merely that you will be able to write an immersive app in HTML5/JavaScript. It may be the only option, but it’s rather ridiculous to assume such from the above statements.

It appears that the argument is as follows:

  1. All HTML5/JavaScript apps shown at the demo are immersive apps
  2. I want to develop Program X as an immersive app
  3. Therefore I will have to develop Program X in HTML5/JavaScript

This is a logical fallacy known as the ‘fallacy of the undistributed middle’. In this case, the ‘undistributed middle’ is that ‘all immersive apps are HTML5/JavaScript apps’, which is at this point unsubstantiated.

Evidence, Shmevidence

First off, the Weather, Piano and Stocks apps were the only apps explicitly mentioned to be HTML5/JavaScript. None of the other apps demoed were described in this manner.

Secondly, we know Internet Explorer is an immersive app, and we know that it’s written in unmanaged C++. Unless they are suggesting Microsoft will be using private APIs for IE9 (a move that is A) unprecedented in Windows history and b) would surely get antitrust investigators on their tail lickity-split), or that IE9’s immersive mode is an HTML application (also unlikely), then I somewhat doubt that HTML5/JavaScript will be the only way to develop immersive apps.

There’s Nothing Stopping You Anyway

Let’s face it – ‘immersive’ apps are full-screen apps with touch controls. Are developers really suggesting that it will be impossible to write such an application for Windows 8?

Windows 7 added touch APIs. These will still exist in Windows 8. And it’s trivial to create a full-screen application with large text, buttons and whatnot – and since Metro is a design language, not an API, as long as it behaves like Metro, it is, for all intents and purposes, Metro. The fact of the matter, then, is that it’s silly to state that you can’t make an application for Windows 8 that you can do right now using existing APIs.

If it turns out you need to code in HTML5/JavaScript for live tiles, then a stub application will most likely be a cinch to make. I mean, people already do basically the same thing for Gadgets anyway, and Live Tiles are essentially Gadgets that launch programs.

So even if the developer’s fears are justified, they’d still be able to easily make an ‘immersive’ app, even if it’s not using any special API to do so.

But that’s a huge ‘if’, and one that seems incredible, to say the very least.

Nothing Is Being Said Because Nothing Needs To Be Said

At least, that was my initial reaction to the article, and that was probably Microsoft’s thinking as well. I would have argued that any developer who took “here’s an immersive app, and oh, it’s developed in HTML5/JavaScript” and got out of it “HTML5/JavaScript is the only way to develop immersive apps” should probably not be allowed to develop for Windows 8 anyway (or any platform, for that matter, because they’d be continually worried about being abandoned whenever anyone announces a new platform and doesn’t mention the old one.) They probably shouldn’t work in the aviation industry either, least they be worried that when Boeing announces the 797 or whatever and not mention any of its previous planes that Boeing will stop making or supporting them.

Microsoft Should Probably Say It Anyway

But the problem is, it’s not just irrational developers on the Silverlight support board. Ina Fried, writing the official analysis for the demo, also interpreted the statement in the same way as the developers Peter Bright and others mention, which was also carried over in Joanna Stern’s write-up for this is my next, and Oliver Haslam’s write-up for Redmond Pie. And completely rational and logical-thinking developers are going to read these sources and think that immersive apps will be HTML5/JavaScript only, having not the time, patience, ability or knowledge to view the original demo.

So, in the end, I do agree with Peter Bright (and thus Thurrott and Foley) on this point: for the sake of all this sillyness, Microsoft should make an official statement that HTML5/JavaScript won’t be the only way to develop immersive apps, and that you will be able to develop them in .NET and Win32 as well.

My real issue is that this shouldn’t need to be said at all. Peter Bright claims the problem is with how Microsoft worded the statement, and again, I disagree – I think it will be a sad day when tech demos need to devote time to point out the blindingly obvious.

But obviously, we can’t force tech publications and developers to take a course in logical thinking, so an official statement is really the only way to solve this. Sitting in silence until BUILD will only create confusion and possibly even get developers to not develop for Windows 8. And, if anything, loosing developers at this critical time is not something Microsoft can afford.

Conclusion

So, in summary, I do not believe that the fears developers have about having to develop immersive apps in HTML5/JavaScript are rational, nor do I believe Microsoft should have to make an official statement. However, to prevent conclusion, I do believe that they should, if only to dissuade these irrational fears from getting into the minds of the mainstream of developers.

Edit: I should note that both Paul Thurrott and Mary Jo Foley also wrote articles about the same developers Peter Bright did. I blame the previous few weeks without Internet (I’m still catching up on some things) and I’ve edited the article to more generalise it.

Monday, September 28, 2009

OpenCity vs. “Microzoft”: Why Are Linux Developers Jerks?

OpenCity is an awesoem free city simulation that I came across back in 2007, but since I moved to Windows Vista, I haven’t been able to run it.

OK, let me backtrack a little. I have been an avid Linux fan since 2001, when I ran a Red Hat 7 box. But one of the things that’s always bugged me is the attitudes of some people. Don’t get me wrong, it’s not everyone, but even one sour response can spoil the broth, so to speak.

There’s a long story behind my usage of OpenCity on Windows Vista, however I’m not going to tell it right now, seeing as it’s, well, long.

Anyway, I decided to try to run OpenCity again recently. No problem: go to the website, download the install binaries.

And then I saw this:

Please note that Windows platform is a secondary target. It's mainly because Microzoft[sic] doesn't support OpenGL correctly. Blame Microzoft not us !

Sigh.

There are two things wrong with this statement:

  • It’s fine if Windows is a secondary platform and you don’t/can’t devote resources to it. What’s not fine is blaming Microsoft for the fact. Microsoft didn’t make you not care.
  • OpenGL is supported just fine on Windows. Microsoft provides a bare minimum base ICD (like most of its’ drivers), and expects the manufacturer to provide its’ own ICD, as it knows how to properly support OpenGL best.
  • Oh, and there seems to be something wrong with your “s” key; it keeps randomly generating “z”s. :D

Now, I could put this down as simply being misinformed. The OpenCity development team may be repeating common “knowledge” that has been parroted without checking. But then there’s this:

In case where OpenCity doesn't start under Vista, blame Microzoft again, not us ! We've worked hard to make OpenCity as portable as possible but Microzoft always tries to make open source developer's life harder and harder.

I’m sure Microsoft employees have nothing better to do than dream up ways to make your porting attempts fail. I can just hear them now: “Hmm, how can we annoy those OpenCity guys today?” “I know, lets break their build again!”

Seriously, you need to step back and examine what you just said. You said Microsoft is always looking for ways to stop you from making Windows apps (albeit free/open source and/or ported from Linux.) In other words, they are trying to stop people from using Windows.

It doesn’t matter whether the software is FOSS or not – its’ still Windows software, and while because a program is on Linux and Windows may not make someone buy Windows (though it probably will influence them in that direction), not having a favourite program on the platform may mean loss of a customer.

Microsoft simply doesn’t care what philosophy your app has, as long as you use Windows to run it. That’s the simple truth.

It’s important as a developer that you be as unbiased in your code as you can, because, in the end, the customer does not care what the specifics are. They will, however, care that your application doesn’t work, and, rightfully so, they will complain to you. If you must work around some OS bug, so be it, but remember, you chose to build for that platform.

(And no, OpenCity still doesn’t work. :( )