Microsoft to devs: Don't ruin Win 8....
....too late for that, you've already ruined it yourselves.
Microsoft has urged developers to only use approved Windows 8 software interfaces to avoid spoiling the launch of its new operating system with dodgy code. In a stark warning this week, the company said third-party programmers should “resist the temptation” of invoking APIs that aren’t included in the official Software …
On Android, all devices have "what has been using the battery" function. If your app (not game) makes to that list or a technical user (or rival) bust your app using excessive cpu at background, you are doomed. 1 star reviews, people asking their money back and blog posts will sure erase you from market.
That is "open market". Customers decide.
Ms just tries to photocopy Apple without being Apple or having their customer profile.
Every modern operating system, especially object oriented one like os x does have private frameworks and I don't know a single developer who loves to use them or trust them.
The issue here is, the win rt API is pathetically basic and you can't code anything real with it unless you use private frameworks which Microsoft happily use with internet explorer/ office etc.
Btw, when apple said something is private, they really meant it. In fact, interestingly, they "beta" tested future frameworks shipping them/ using them as private and making them public once they are mature.
Microsoft can't abuse Apple's operating system as an excuse.
This is just reiterating an old truth. If you use undocumented APIs they can and probably will change without notice. If you're the office or internet explorer team you will probably get told this is going to happen(with at least 5 minutes notice).
It's not about the APIs being bad as such, or about Microsoft knowing what they're doing, it's about change management. Published APIs require massive amounts of hoopla to change, and they generally have to keep the old APIs around in a deprecated state for the next 10 years so that legacy code works. Unpublished APIs on the other hand can essentially be changed at will, won't remain in a deprecated state and the first notification you as an outside developer will receive that these APIs have been changed is when your program fails.
This isn't new, nor is it distinctly Microsoft. The interesting part of this article is that Microsoft realizes that crappy third party software impacts their reputation.
So many comments in here full of logical insight. Which is a nice change from the rest of the internet where people say stuff that is clearly driven entirely from emotion.
I was half expecting some crap about how WinRT removed almost all synchronous IO operations to make it harder for developers to create crappy apps that spin up a bunch of unneeded threads.
Well done reg readers... well done.
People as whole are often conservative and repetitive in their thinking aren't they. Who needs unwanted threads in software when we find so many same old conversational threads here. Too easy to spot the commentators who've never written any serious software but don't let that stop them commenting on APIs and stuff.
Their first release is such a bad joke that you can't release a third party browser (which became like command.com important) for mobile devices coming with it.
Got it? No Firefox, no opera mobile.
Stuff you mention sound cosmetic. I guess it is very important but come on, this sounds like playbook type of mistake.
What do you do we code you want depreciate and then remove? If you document it and people use it now you will break existing apps so you end up leaving it in there for a very long time?
What if can lead to bad app design? Such as all of the synchronous APIs in the Win32 API?
I don't think your comment has taken into account the long term ramifications of documenting everything?
I don't think your comment has taken into account the fact that the above comment was a joke.
More seriously, if the public APIs are so great for writing a Metro application, why would anyone turn to the "unofficial" APIs? Could it be that Microsoft also thinks that *gasp* the SDK in its present form leaves something to be desired, and that many programmers might take a look into the "dark side"?
It's a bit like including a desktop version of Office into Windows RT. It's a confession which states "Err yeah, Metro is cool, but we can't really make Office work on it yet." If these unofficial APIs are among the "secret stuff" used by Metro IE, that's another confession: "Windows RT is fun, but there are things which we can't build with it ourselves either."
Instead of whining about "customer confidence" and making thinly veiled threats about store policy, Microsoft should create an API which is, first of all, completely public and stable enough that the deprecations you mention won't be a problem for some time, and second, allows for at least the amount of freedom they want for THEMSELVES when creating an application like Metro IE.
Who knows, maybe they'll do just that for Windows 9...
Oh I can see it now...
Mr. Steve: "Dear investors, you may wonder why Windows 8 managed to sell even less copies than Windows Vista. I can say this; its not us. No: Developers, developers, developers, developers, ..."
"....and so: Developers! And as you can see we foresaw this coming and issued several warnings. But did they listen? No!".
"So now I hope you'll approve /more/ investment into Windows 8 so that we can set things right!". Mr. Steve thinks: "I only hope I didn't accidentally fire the only guys who still know how to program a start menu..."
Basically they haven't been able to clean up yet the carcasses of abandoned APIs in their desperation to rush Win8 before it's obvious even to the dumbest of the dumbest that it's already too late. So you can bet that Win8 in terms of security is like a drug-addict whore telling anybody "come and get me..."
Wouldn't calling undocumented APIs that don't work fall under devs ruining windows 8 with Microsoft's own bad code?
If they'd just document all their APIs, this wouldn't be a problem! But of course, they won't do this, because then they wouldn't get an unfair advantage over third party developers....
The only difference between some random DLL and an API is the documentation. And official API may be designed to be easily consumed but that is subjective. So are you suggesting that they document how to use every piece of code in Windows?
"So are you suggesting that they document how to use every piece of code in Windows?"
In a word - yes.
Or remove them completely so their own developer's don't have something special to play with.
Remember its not just IE that gets special treatment on WOA/WinRT, but they also have a special rule to allow Office to run without the dreaded metro interface. Why not allow LibreOffice this access?
Yes, I know, that was a rhetorical question...
This post has been deleted by its author
I imagine their thoughts are along these lines: The money we'll get from Windows 8 in the enterprise wouldn't be enough to feed an anorexic Ethiopian on hunger strike (for that matter it probably wouldn't be enough to feed an anorexic Ethiopian mouse on hunger strike), owing to the fact there is no productivity and little security gains.
So, we've got to make money from consumers. But wait. there's very few apps available, and those that are are hastily cobbled together ports from Windows 7 that don't really work. Quick lets make a shiny front end, force it on everyone and hope consumers suddenly go ooh, shiny stuff.
Good luck ms, you'll need it.
It's been about the volume market PC builders being obliged to pay for a Windows licence on every PC they sell in order to get the best deals from MS.
That tactic won't work with ARM, so they have to motivate the manufacturers (and end users) in other ways. After all, the last thing the Wintel crew want is a range of competitively priced ARM hardware coming on to the market and running a Linux of the end users choice "out of the box". That's not been an option in the past because of the variations in the various ARM platforms. But the MS-specified platform for Windows 8 delivers immediate compatibility across a wide range of compatible hardware systems (same way as PocketPC did for, er Pocket PCs, eg iPAQ etc). This time round, anything that would run on the specified platform for Windows 8 would also run an appropriate out of the box Linux.
Talk about shooting themselves in the foot. So they've got to find a way to prevent that. Hence the attempted total lockdown in hardware and software on the ARM side of Windows 8.
This post has been deleted by its author
"It comes back to what we've said before on Windows 8: just like the first Windows Phone, Microsoft is keeping the ARM platform closed to third parties, whose apps could cause application crashes and ruin the consumer launch."
Microsoft is keeping the ARM platform closed to third parties to avoid unwanted competition on their own platform. They will hand wave about APIs and robustness to avoid people considering their actions as their old monopolistic tendencies.
Mozilla are not cowboys, they have made a solid product for years. Most of those years their product was a lot less cowboy than the Microsoft one.
"Mozilla are not cowboys, they have made a solid product for years"
Ignoring that I've had Firefox crash on my numerous times., if you say one third party software writer can bypass all the restrictions, how do you say whether any other can or can't? Are you just going to say anyone with a big enough brandname like Firefox gets a free pass? I don't think that's good.
The point is the OS should provide the appropriate restrictions for ALL applications, and regulated by only a few permission levels depending on what an app needs to do.
The beef here is MS want to play with APIs for IE and Office that others are not allowed to, a bit like the old Word vs. WordPerfect anti-trust case where MS, due to its inner knowledge of its own OS, could out-perform other software by using undocumented features (OK WordPerfect had other issues, but the API tricks are known).
Or the same tactic, used more sneakily, to break DR-DOS + Win3.0 etc.
Knowing M$'s history, I think I will be skipping this version of Windows anyway. A bad version always follows a good version of Windows. 3.11: Good, Windows 95: Bad, Windows 98: Good, Windows ME: Terrible!, Windows XP: Good, Windows Vista: Blows chunks!, Window 7: Good. With a pattern like that over the years, could you blame a person for being skeptical?
"you obviously haven't learned anything since the last time they tanned your hide!"
Record-breaking fines were announced, but was any money ever actually paid, or was it all suspended pending yet another round of inter-lawyer duelling and delaying?
Why bother with Win 8 with its dubious interface and benefits, to say nothing of the draconian measures stifling developers.
Course I s'pose it may be slightly harder to run viruses on it, but still I expect it to end up so irrelevant that it makes people that are still clinging to XP look radically progressive...
This whole Windows 8 thing has stank to high heaven since day one.
I applaud Microsoft for coming out with a version of Windows for ARM devices, but I quickly retracted that applause when they tool the Apple style walled garden approach. If I wanted to get reamed by the walled garden I would see the professionals in this field, Apple, I don't want the same restrictions from Microsoft (who should know better)
I was shocked at the introduction of Metro in the desktop space, it looks like a steaming pile and is utterly useless, the mixed Desktop/Metro UI is (as our UK friends would say) a load of bollocks.
I have done dev work with touch interface apps on the PC, I have even been overseas to a conference because of this work. Touch on a desktop PC makes no sense at all, the keyboard and mouse are much more useful and you don't need to reach across your desk to get to the screen then back to your keyboard and mouse. In the Tablet/Phone space touch completely makes sense and the desktop/keyboard/mouse paradigm doesn't work, here Metro and Touch work and work well. Pick the scheme that works best for the device and use it and it alone, you can't mix UI types.
The fundamental idea behind WinRT is great, Win32 is so old and broken that a line in the sand needs to be drawn and a whole new API developed at the bottom layer with modern systems in mind; Many cores, large ram, large and varied storage, etc. Unfortunately in keeping with current trends, it's another layer of crap piled on top of Win32, adding yet another round of abstraction, processor and ram use, os bloat, and latency only to have the whole thing forgotten about when Microsoft dump it along with Metro when they finally realise how bad they screwed up.
Microsoft in its grand unification of the platforms scheme just refuse to see that Windows 8 is going to suck, even though their customers and developers are screaming at them it will.
I am sitting in the camp of sticking with Windows 7, I will run Windows 8 in a VM but only to ensure my apps work for the poor suckers who buy a new PC with the steaming pile pre installed.
Mac is currently moving in this direction as well, so there will be only one solution. Linux. With valve already porting steam and Left 4 Dead to Ubuntu, I see that making Linux and its many variants quite appealing.
Windows was "great" because it always stayed roughly the same. But if M$ go and release this then all those years of providing a solid backbone in the OS market will have been for nothing.
I know Ubuntu is doing the whole "tabletification" thing to, but it's only 1 or 2 terminal commands away from being exactly what windows should be. And the Ubuntu software centre is great, it doesn't get any special access, AFAIC it's just a pretty front end to apt-get.
As for mac, it's pretty and easy to use, but if keeps heading in this direction, it'll be Ubuntu all the way, with a fedora on top.
"sudo apt-get remove unity-3d"
Installed Ubuntu on a friend's box a couple of days ago, and added KDE, Xfce and Gnome. I am only really familiar with Xubuntu right now, and Lubuntu. First time I saw current Unity, Gnome and KDE while I was trying to understand how they work before showing him. Hoping he could settle for at least one of those. I didn't hate any of them to be honest.
He liked them all, but he adored and is now using Unity. Guess Canonical got it right?
Anybody else had a similar experience with a non techie? Or completely different?
`Guess Canonical got it right?`
NOT by me.
AFAIAC, Unity is a complete FAIL - for a desktop. Unity plain sucks!
NOT being a tablet/smartphone user, I offer NO opinion, but I do see its potential.
I will concede that Unity is easier for n00bs; but, as an accomplished desktop user, I can not stand it. There are times when I need 5 or 6 windows open as I go about the daily grins, and that is a royal pain with Unity.
Now, I will concede one thing the Unity people `got right`, and that is the screen switcher, and the way you can get the multiple desktops open in a screen. WROK PLACE is trying that (enhanced screen switcher) out on some RDP sessions for server control.
These scholors can explain it far metter the I can. I like the second one better although the title of the first talk is better, but your milage may vary.
"I'm just curious, why is it that I can have my pick of half a dozen desktop environments on Linux, selecting one at log-on, but each Windows version only offers one desktop? It would seem an obvious advantage for Microsoft to offer choices as well, so why don't they?"
Because Windows users are already rolling on the floor in confusion over Profesional, Ultimate, Starter or Home Premium. I've used all 4 and the only difference I noticed was between starter and every thing else over wifi issues and desktop background. Which I think is disgusting, even the shitiest of OS's don't force you to look at there logo the whole time.
But windows 8 will let you choose between the Metro interface and the normal desktop, once you've logged in.
Who the fuck are Microsoft to say I can only install apps I get through their Windows Poundshop Market Place or whatever the heck its called! If I have brought a bit of software than as far as I am concerned I can do what the frig I want to it mate! The effing cheek! I'm guna have to start drinking real ale and using Linux at this rate!
You can only install *metro* apps through the marketplace, much like you can only install iPad apps through their marketplace. Any of your other apps you can install on an x86 PC just like you always did. Seriously, people like you really need to get informed before ranting your ignorance about the place.
Those undocumented APIs, which we are telling you not to use, allow applications to run faster by cutting some corners and therefore are only for use by Microsoft apps so our code looks good and yours looks like a turd..
We're back to the 1990s folks.. all we need now is someone to analyse all the undocumented API calls Microsoft used and document them, and then we can have a nice court case.
... to cling onto life of as long as Windows XP, but only for developers, office use and diehard PC gamers.
For all other usage - Consumer, entertainment, gaming - mobile, console, set-top - the old PC or lappie banished to the home office for accounts, homework etc. ...
And it will be iOS and Android that rule the digital roost.
The only way Microsoft has any chance of catching up is:
a. An incredible take on a mobile OS
b. Massive amounts of marketing
We know they can do b. - unfortunately, so far, they've failed at a.
It's not the usual "undocumented APIs are subject to change" story. The final reason given by MS for why we shouldn't use the APIs is:
"Finally these APIs may undermine customer confidence by accessing resources or data that Metro style apps would not normally interact with."
In other words, the current (Win8) implementation of Metro is full of security holes and we'd prefer if all the malware vendors didn't use them, thanks. Otherwise the early adopters of Metro-based devices will get shafted and our marketing department will be sad.
"Microsoft is not innovative with anything at all and simply copies by buying and destroying other innovators."
MS had tablets out many, many years before the iPad and Android tablets.
MS had smartphones out many, many years before iPhone and Android handsets.
HTC made their name with Windows smartphone hardware.
> MS had tablets out many, many years before the iPad and Android tablets
Yes, but they were crap.
> MS had smartphones out many, many years before iPhone and Android handsets.
Yes, but they were also crap.
> HTC made their name with Windows smartphone hardware.
Yes, but they've wised up since then.
You must be wondering why all EULAs contain "you may not dissemble" term. That is in case someone checks their own exes and reports thousands of undocumented system calls.
You can't code a modern html5 browser like Mozilla, webkit and opera and ship it on windows rt.
I really hope this will be their "company crashing" type of mistake. They asking for it for decade now.
Back in the day (ol' MS-DOS times) undocumented APIs were the bread and butter for the viruses. I have no doubts some of the 'undocumented APIs' will feature security vulnerabilities to explore. So developers, developers, developers... please play nice and don't use 'em. They are reserved for M$
Has MS not learned anything? It's history repeating it's self again in that vista came out, got hated windows 7 came out and was good enough so got accepted... is MS pushing out something massively crap to make IT admins hiss like (true) vampires infront of a cross only to release a version that works within 2 years? Also if this comes true, I reserve the right to post the comment of 'Called it!' without mocking..
Reading through these comments, there's a *lot* of misinformed and plain wrong people about aspects of Metro/WinRT/Win32/x86/ARM etc.. There's just too many for me to answer them all but seriously, a lot of you really need to clue up on what you're talking about before you spout so much idiotic anti-MS rubbish.
Sorry, but if you are going to call a whole thread load of people "wrong" and "anti-MS", you better have some evidence to prove your position.
You said there is too much misinformation here that you can't respond to it all. Well how about posting some links to explain the largest stuff and letting us make up our own minds.
I for one am not "anti-MS", I love Microsoft products and use them daily. I am more an anti-apple person. You just can't help but be frustrated when the company you love won't listen to its customers on something as important as their computing experience.
"Sorry, but if you are going to call a whole thread load of people "wrong" and "anti-MS", you better have some evidence to prove your position"
I've been replying to some of the posts, but as AC, so it's tricky to tell when it's me.
"You said there is too much misinformation here that you can't respond to it all. Well how about posting some links to explain the largest stuff and letting us make up our own minds."
Yeah its a reactionary fud-fest here.
There is nothing in the MS blog post to suggest Metro Apps and the WIndows Store have one rule for Microsoft and one for external developers. Nothing.
It is one thing to express a concern that this may be so (although sounds very unlikely in my experience having worked with Microsoft development directly on occasion, not just read a wiki page or two). It is quite another to state such conjecture as fact then build a castle of angst in the air based on that conjecture. Sowing FUD, as its known in the trade.
I understand where you are coming from, I been all over MSDN myself, I need to maintain apps in Win 8 so I need to know what I am facing.
All I can see is WinRT/Metro may make it into Windows 9 but only to support those who bought into the rhetoric, it will be depreciated in Windows 10. Microsoft have a bad habit of coming out with some new you-beaut API and then drop it when it doesn't become overly popular. WPF is an example here, there has been no serious work done on WPF because the team was broken up to work on the WinRT/Metro package.
I want a new native API that will be maintained in place of Win32, and not as another layer piled on top of it. I would like to see this new API completely supplant Win32 which will be reduced to a wrapper layer on top of the new API. Saying that, I know there is no chance of that happening, Microsoft can't stand behind any new product anymore.
@Robert. My own guess is that WinRT 2.0 will expand scope beyond Metro, adding desktop app capability with always-on multitasking. The intention to fleshing out its role as the new native Windows API. In this scenario WinRT gradually replaces Win32 on x86/x64 and expands capability on ARM. WPF is not a direct analogy as WinRT belongs to the OS group which is less likely to flip than the dev tools group. However your guess as to the future is as good as mine and you may well prove right about Win9/10.
What a lot of people seem to miss about the whole Metro app deal is even if Windows 8 is a great success, Windows 7 will dominate the installed base for several years especially in corporate, education and other major markets. So it is mostly not an option to replace a software product with a Metro app, even if Metro style works for the app. The best we can consider is adding a Metro style option if we can afford do do the extra work. Considering options, developers will also be looking at OS X, iOS, Android, HTML5 and weighing cost benefits.
The only thing that would change the Win7 dominance would be a dramatic change to the way Microsoft deal with updates. Not impossible but there is zero evidence this will happen before Windows 9.
I agree with you on the lack of consistent support for WPF etc. Microsoft has a poor track record for commitment and the situation for desktop Windows apps is a mess, made worse by poor comminication over recent couple fo years. I'm no fan of Objective C but at least Apple has been consistent.
MS shot their own foot by this forced disconnect to 'support' mobile devices, so I certainly won't even consider migration until they get rid of this joke of a UI 'upgrade'.
If they continue with this nonsense I'll eventually be forced to Linux or FreeBSD, with W7 in a VM or Wine, if W8 can't be rooted by users.
Have a winphone (and i AM getting one soon) which runs the risk of crashing, but has a plethora of app, then a closed down platform. It's almost like choosing between Apple and Android.
C'mon Microsoft, you can do better then this. People are actually starting to believe you're not the bad guy anymore, don't diminish that by this move.
Biting the hand that feeds IT © 1998–2022