53 comments

[ 3.0 ms ] story [ 113 ms ] thread
Well then give us an API which isn't painful to use and give us confidence you won't abandon it after a couple of years. Maybe fully committing to dogfooding their APIs for the first time ever might inspire some faith. That's the real, underlying reason mac products have such a good relationship with developers: apple can't resist those meaty chunks. At least by comparison with MS.

Also, what percentage of those windows license sales represent an environment where installing arbitrary software is even permitted by the computers owner?

I wonder, does microsoft have a vision for an app store in the enterprise? I suppose one of the advantages of the sandboxing is it might lead to a relaxation of the rules around installing other software on corporate machines.

I am not much of a Windows guy, but C#, .NET and the accompanying tools seem pretty nice to me and have been supported about as long as Mac OS X. It's also my impression that Microsoft has introduced fewer breaking changes into .NET during that period — though again, that might just be a symptom of me being more tuned into the Apple ecosystem. Was there anything similar to what Apple did to Carbon developers a few years back, abruptly deprecating most of the framework just a few months before an OS release?

And Apple has been accused of having the opposite problem — writing APIs just for the "showcase" applications. Very often the first version of an API will be great for recreating Apple's demos, but when you need to go past that, the framework is either unhelpful or actually gets in your way. (I'd like to offer some good examples, but they're eluding me at the moment. I know I've seen a number of complaints along these lines on the Cocoa-Dev mailing list over the years.)

IMO, the reason for Apple's good relationship with developers look more like this:

• It's UNIX, which developers have always loved for fairly well-known reasons.

• Microsoft entered the last decade pretty much universally despised. Many developers would flat-out refuse to work there, despite it being a hugely successful company with generous compensation, just because association with Microsoft was so very uncool.

• Apple sold boutique computers to consumers and professionals. People who bought Apple computers were signaling "I actively seek out and pay for experiences that I like better." This meant Apple's user base has generally been disproportionately profitable for apps targeted at those markets.

• Related to the second point, Apple was the major alternative at a time when technophiles wanted to get away from Microsoft. They could have gone to Linux, but at the time Macs were just a bit more mature and "safe," particularly on laptops.

C# is the neatest thing that got out of microsoft ( with Active Directory ) , the rest is not so good , i wish the whole .net plateform was opensource and independant from MS ( yeah i know mono ,but mono is mono )
> C#, .NET and the accompanying tools seem pretty nice to me and have been supported about as long as Mac OS X.

On the back end server, that's mostly true.

Microsoft has been playing the "here's a new API, we'll stop improving the old one, and make relying on it foolish" treadmill for more than 15 years: MFC, ATL, ODBC, ADO, DAO, Liquid, SilverLight, WPF, WinForms, VB6 -> VB.Net, DNA -> ASP, ...

The world, up until a few years ago, was very happy to be on that treadmill. I was always baffled by it, but I can understand the fashion and buzzword driven resume IT world.

Except, something changed in the last 3 years: People are no longer as happy with the Microsoft treadmill, and the cool kids started liking the stuff that does not strictly depend on a corporate sponsor for advances and obsoleting: Ruby [on Rails], Node.js, Clojure, and more.

I'm working on a project that's heavily invested in WPF, a decision that seemed reasonable to the decision makers back in 2010, and it's a horrible mess. There are resource leaks that have been reported as "won't fix until next version" 3 years ago, but it was only a year ago that it became clear there never will be a next version. (I have to manually call garbage collection once every second or so, or the GUI freezes with no error or explanation. Figuring that out was a few wasted days of debugging).

And WPF obsoleted WinForms; And silverlight was supposed to be a subset of WPF, except they have a weird common subset that is useful for nothing, and a lot of stuff I need was added to SilverLight, but not WPF, with the intention of adding it to the next WPF that never came.

Oh, and SilverLight was abandoned too.

... The thing I distinctly miss from working on Windows OS that Microsoft, unlike any of their competitors, always did "dogfood" their APIs. I'm willing to believe that things have recently changed as Microsoft has started copying Apple, but if you pull apart your average Apple app, it is full of Apple-private APIs, from entire replacements for UI primitives to entire underlying libraries (WebKit on iOS being a great example) to better hardware access to simple things like "synchronous HTTP connection timeouts". On Windows, it was a "big deal" when Microsoft used a single API in Office that they didn't expose to developers (and I believe that was even one you wouldn't want to use anyway, that they added because their code was so legacy).
It's worth watching the then head of OS X talk about private API's at WWDC a few years ago: http://www.youtube.com/watch?v=jd97us27eSg

It's definitely a different philosophy from Microsoft's, but it's not like they don't take their API's very seriously.

> always did "dogfood"

That's not been the case at least since .net came out.

They were trying to get developers to use .net GUIs and other APIs without dogfooding (WPF, WCF, WinForms, SilverLight, and a lot more). Most of them are horrible, buggy and unsupported a few short years later.

I'm not sure there is a lot left of the "Raymond Chen" camp of fanatic bug fixing and backward compatibility that was there in the Win32 days.

So, if it makes you feel any better, Visual Studio 2010 was developed, at least in some major part, using WPF (I remembered that one, and managed to find a reference for it on an official website). I can't say much about the other technologies, though. You certainly can't blame your WPF issues on them not eating that particular dogfood.

"Get an insider’s look at how Microsoft created the next-generation, large-scale integrated development environment experience using Windows Presentation Foundation (WPF) 4." -- http://www.microsoftpdc.com/2009/CL09

Apple, in contrast, consistently uses things that they deny access to for normal developers; not just high-level libraries and platforms that you could technically re-implement (although they certainly do this, and they do it ludicrously often), but fundamental capabilities on their platforms that they have reserved "only for Apple" (whether just by radical un-documentation, or now by controlling software distribution and manually checking for usage).

The difference is dramatic: when you see Microsoft release a application for their operating system, you can feel pretty confident that if you spend enough time reading their developer documentation, you could build that exact same thing yourself. This is not the case with Apple. (This also has nothing to do with whether or not they will deprecate your code a couple years later.)

I'll happily believe that Microsoft has gone horrendously downhill on this axis, though, since I stopped paying attention to them in 2008 (that's when I started doing Cydia fulltime, which led me down a path that forced me to eventually switch to using a Mac as my primary development machine). If nothing else, I am under the impression that Microsoft gave up this feature with Windows 8 Metro :(.

Hence why I used the past perfect "always did" (as opposed to the present imperfect "always does"): the contention from JonnieCache was that MS does not nor nor that they ever did (as if they actually were to do so it would be "for the first time"), when radical dogfood eating that was always what made MS great and set them apart from everyone else.

> So, if it makes you feel any better, Visual Studio 2010 was developed, at least in some major part, using WPF

It doesn't make me feel better, especially since I have to support a product that uses WPF, suffers from a massive leak that (unless gc is _manually_ called every rendered frame) just stops the program from working without reporting any error - a bug microsoft does not intended to issue a fix for for WPF4 (so .. never going to fix): https://connect.microsoft.com/VisualStudio/feedback/details/... - reported to Microsoft more than 2 years ago.

When this product gets rewritten, it's going to be either web or an Android app. It sure as hell not going to be using any Microsoft tool.

I feel like I shouldn't have to say this, but: none of these complaints have anything to do with the concept of "dogfooding".
Well, not directly - but it's the kind of stuff that would get fixed if they were actually using it. I haven't really researched this, but AFAIK very few Microsoft products actually use WPF (or SilverLight for that matter). That's not really surprising, because most of them have a long legacy, and a rewrite of e.g. Word or Explorer to use WPF doesn't make sense.

It's been my experience that when a developer actually uses the APIs they publish, they work well, are better documented (or at the very least, when you have an inquiry you can get a knowledgeable, reasonable answer from someone on the inside, as you still can from Raymond Chen about WIN32 stuff). The horrible level of support and bug fixing is an indirect observation of very little dogfooding.

I have a slight issue with Microsoft saying 'look how many licenses we sold!' As there's no direct way to know if they're talking about licenses in the hands of consumers, or licenses sold by the yard to OEMS currently sat in a box.
they always have and always will use that metric - it impresses the users. It probably won't impress developers though.
Probably not, at least when Apple says "Hey, we sold Xmillion copies of Mountain Lion" you know that they're pretty much talking about how many people have installed it. Same with Android and iOS when they talk about how many activations they've seen, as a developer you instantly get the number of users you're going to potentially have as an audience. Juicing the numbers is not going to woo developers who can see right through it.
I wonder how inflated the license count is from the armies of corporate machines where users can't actually install any app that a potential windows developer writes.
That's a good point. If you come up with the Next Big Thing it will never get installed on my Windows box at work unless the company wants to use it (which isn't very likely).
They don't give stats on corporate installs though, and I would bet that most Windows licences are to corporates. I'd be willing to bet that the majority of users aren't able to purchase their own software.
And desktop developers have always targeted Windows. What's the big deal?
I realise that it may not seem very important in this context, but for being a site aimed towards developers, and after all the HTML5-touting that the IE-team has been doing, I was pretty disappointed to find that the site in question (http://www.generationapp.com) uses the XHTML 1.0 Transitional-doctype.

When even http://www.microsoft.com uses <!DOCTYPE html>, I fail to see why a developer-focused site (with visitors who actually check the source code) would not.

Because in the real world, doctypes don't make any difference?

Don't get me wrong, I do understand where you are coming from- but when there is literally no actual change aside from what the first line of the document source looks like... I have a hard time getting too agitated about it.

(comment deleted)
"The problem is that it clearly wasn’t created by developers"

I would shudder to think what an ad developed by developers would look like..

I'm guessing that one for Microsoft would include footage of Ballmer screaming "Developers! Developers! Developers!" just for the lulz.
Can anyone comment on how good cross version development is on Windows? If tools are available to minimize the overhead of cross-platform development in this regard, then I don't see why the ad should be viewed in such a negative light.
Cross version or cross platform?

I can potentially write a Win32 desktop app that runs on XP, 7 and 8.

Metro apps can be used on 8 and RT, with a potential port to Windows Phone 8.

"Over the last 2 years, more Windows licenses have been sold than Android, iOS, and Macs combined."

So they're using total sales of all their desktop and mobile OS licenses combined for the past two years as a basis of comparison? And they're including the corporate licenses and OEM bundles?

I wonder how many of these total sales were to individuals who actually had a choice of OS?

The data might be true, but is deeply misleading as far as portraying the actual market trend.

I wonder how many of these total sales were to individuals who actually had a choice of OS?

I'm not sure it matters, for their purposes. They are people running Windows for developers to target, how they came to do so is largely irrelevant.

It could be pretty significant. If a strong majority of Windows users are in corporate environments where they're not permitted to install software, every developer who doesn't produce the sort of software purchased by corporate IT departments will have no access to that user base.
Yes, that, and also another factor (although still a relatively small slice of the market) is the people who buy machines with OEM bundled Windows and then just install some form of Linux on it to use instead. Those people aren't going to be consuming any Windows "apps" either, but they would be counted in Microsoft's total.

Basically, it's an empty boast intended to obscure the fact that Windows is losing market share incredibly fast.

It does matter. In many corporate environments you don't have free reign to install/buy any software you'd like (and that's suppose to be the draw to the developer, lots of potential customers). App Store type developers are most likely drawn to home/independent users as a whole.
The thing I don't get is, isn't the Windows App Store only available to Windows 8? Microsoft definitely haven't sold a billion licenses to Windows 8, so where does that claim come from?
"A worldwide app store with over 1 billion potential users!"

That would be a "potential" amount of Windows 8 users. Not now, but in the future.

I can't say that them having to resort to using imaginary amounts of future users would make me feel any safer about developing for their app store.

This is just a PR gamble with the numbers. They are saying for the past 2 years.

And that probably means that Android outsold Windows this year, or else they wouldn't have used "last 2 years". Going by Android's growth rate and Windows' saturation, i would say this is a good guess.

It's even worse. Look at slide 24 in

http://www.avc.com/a_vc/2012/12/mary-meekers-2012-internet-t...

for the overall trend. Counting all computing devices - PCs, smartphones, tablets (and that's what matters in the app market) - Windows used to have 95% of that market, but iOS and Android are quickly reducing that and the Windows figure is now 35%.

The last time Windows had such low market share was around 1984. But then Windows was rapidly rising, today it is rapidly declining.

That is an amazing slide show!

Stuff I kind of sort of already knew, but numbers and charts really bringing home the magnitude of some of the changes, challenges, and opportunities in front of us.

It is a rather brash statement when you look at all those platforms and realise they can all run HTML5 and java. So if I was a devloper and given the processing power now afforded even the average lowest sample in the combined. Well I'd look at the advantage of portability along with removing so much of the platform specifics. So in this situation It would totaly make that the original argument leveriged by Microsoft in this article void.

You could say that most platforms are more powerful than most users actualy needs and use and again end up thinking HTML5/java. Now backend/server wise type applications, now that is another question all together.

Or, you could take a look and notice that Javascript is now supported by Visual Studio, write an app for the Windows 8 Store, turn around and use Phone Gap to port it to Android (rather easy) and iOS (somewhat more difficult), and then see which platform actually drives the most sales for you.

Then again, it could just be me being greedy :-)

Microsoft do make some very valid and to an extent accurate arguments in the advertisement. While the true number of consumer licences will probably never be revealed, you can't argue that it's still probably a very high number once you subtract OEM vendor licence purchases and enterprise licences. I don't doubt a lot of those licences are sitting on the shelves of computer stores, but I also don't doubt that the uptake of Windows 8 is pretty high and given that it has only been one month, those metrics are pretty impressive regardless of the truthfulness behind them which works in Microsoft's favour because people are suckers for numbers.

Windows 8 is Microsoft's best shot at infiltrating the lucrative app store market. Having used the preview version of Windows 8 for sometime, I've grown to like the OS and think the app store model within the operating system has potential. The issue with Microsoft is that they don't stick to their laurels, they build something and support it for a couple of years and then phase it out leaving developers in the cold. Give us easier tools, give us a decent API, provide better support and give us some assurance and then Windows 8 will truly be a success. They're on the right track streamlining the experience between XBOX, mobile device, tablet and desktop at least.

(comment deleted)
The fact that Windows 7 has sold well is completely irrelevant for the Microsoft store developers, right now, especially if Windows 8 continues selling very poorly.

Also right now Android is selling faster than Windows has ever sold, and growing. The reason it hasn't sold as many as Windows "in the past 2 years" is because its growth rate was much slower back then, and so it was for iOS. But both iOS and Android EASILY beat Windows 8 in sales right now. It's not even a contest.

Except the numbers Microsoft have been throwing about say Windows 8 is outselling Windows 7. The key is if it continues to sell well, chances are it will thanks to OEM deals.

Anecdotally a large percentage of people I know have upgraded, I'm well of aware of this due to discussions about (both negatie and positive) but using it. Mostly negative TBH LOL.

Microsoft has only given the numbers of what they sold to OEM's - not to consumers. It's like with chip deals. You can order $1 billion worth of chips. But if you can't sell them all to customers that's your problem. The manufacturers ordered a lot of licenses. But so far, I haven't seen market research companies say they did that well in the market with them. Guess we'll see in the next quarter results, if they even give those numbers, and also whenever Microsoft mentions when they sold new licenses, because I guess that would mean the manufacturers ran out of the first 40 million.
Having an enterprise market of license slaves does not matter. If we took away the enterprise licenses these numbers would be very different. Once again MS confuses pervasiveness for giveashitiveness. Perhaps they dont realize that we are running to other platforms BECAUSE Windows is so pervasive and essentially soul destroying. Telling me how "big" they are is like reminding me that restaurants have toilets, I know where to go to shit already.
(comment deleted)