Windows Phone vs. the world, part 1: Developers

One of the themes I’ve seen developing in stories about Windows Phone 7 is a rhetorical question about whether Microsoft’s next smart phone platform will be "successful." This is something I’ve pondered, and written a bit about, and I’ve gotten  a lot of email from people who are wondering whether they should wait for Windows Phone 7. This is a more complex question than is immediately obvious, because the answer hinges on your definition of success. Also it’s worth pointing out that the future is cloudy, and that my record on prognostication is something like 127 to 3, with me being on the raw end of that score. I’m just not good at predictions.

But I think I can have at least a semi-intelligent discussion about success. The success of Windows Phone is, of course, of personal/professional importance to me, and not just because I’m writing this book. In fact, in the grand scheme of things, the success of Windows Phone Secrets is of little importance to me because it will represent only a tiny portion of my income this year. More important, to me, is that Microsoft be able to establish Windows Phone as a credible challenger to the budding Android/iPhone hegemony, one that developers, users, and content providers will flock to. I’ve said many times that the future of computing is both mobile and connected, and if Microsoft is going to continue to have any importance and influence going forward, Windows Phone will be a big part of that. In fact, one might argue that, for Microsoft to be successful in this space, Windows Phone will need to eventually surpass desktop versions of Windows from a units sold and revenue perspective.

But let’s not get ahead of ourselves. Looking specifically at the smart phone market of today and the next few years, Windows Phone needs to achieve success in a number of areas. And while more cold-hearted financial concerns like market share (unit sales in a given time period, usually quarterly or yearly), and profits and revenues need to follow, and are inarguably how any product is ultimately judged when it comes to "success," these other areas are, I think, more important. Not just now, as Windows Phone seeks to establish itself, but going forward too, as the product evolves and matures.

These areas are, in order, developers, users, and content. In this post, I will focus on the first area, developers.


What if a software maker created a platform and developers ignored it? Would anyone even notice if it died? You laugh, perhaps, but Microsoft is, above all else, a platforms maker. And there are some startling examples of recent Microsoft platforms that have gone absolutely nowhere. In fact, when one looks at the software giant’s big-bet platform enhancements on the core Windows product line, there are some absolutely stunning defeats, technologies that took years to build and nurture, but went nowhere with developers and thus withered on the vine. Avalon/WPF. Windows Gadgets/Sidebar. Windows SideShow. XPS. The list goes on and on.

These defeats don’t mean that Windows Phone can’t be successful, of course. And that each of the examples I cited above is tied to the old-guard Windows world is, perhaps, telling in this era of web applications and mobile apps. But the point is made: Before anyone gets too excited about the relevance of providing developers with familiar tools (Visual Studio, Expression), familiar languages (C# now, hopefully Visual Basic later) and APIs, and a built-in audience of over one billion strong, I’d just remind them that these strengths haven’t always translated into success in the past. I’d also remind them that Apple’s horrible developer tools (which are about to be improved dramatically in Xcode 4), a bizarre and unfamiliar programming language (Objective-C), unfamiliar APIs, a reliance on Macs as development tools, and starting over from scratch did absolutely nothing to slow down the iPhone and its underlying iOS platform. There are no guarantees.

(And don’t get me started on Android. Didn’t we write off Java years ago?)

For Microsoft to be successful with developers, it’s not enough for the company to provide familiar tools, as it’s done. It’s not enough to let them develop in familiar languages and APIs, which they’ve only sort of done: I honestly think that the Silverlight/XNA stuff, while excellent, is still a bit unfamiliar to many Windows-based developers. And it’s definitely not enough to ride the Windows brand, given how unsuccessful Windows CE, Windows Mobile, and various other Windows-branded products have done in the past. (Counter-point: KIN hasn’t exactly resonated with consumers either. Making a good brand is hard.)

Does Microsoft need to out-Apple Apple to be successful with developers? We better hope not, as that would be a tough road to plow (or "row to hoe" as one reader pointed out). How tough requires understanding what it is that Apple actually offers to developers. And this starts, as it should, with documentation.

I’m a member of Apple’s iPhone developer program, which, at a cost of $99 per year, provides an astonishing wealth of resources for the budding or established iOS developer. But you don’t even have to pay to benefit from the astonishing amount of iOS-related information out there. The iPhone and iPod touch (and, eventually, the iPad, I guess) are so successful that people are tripping over themselves to get educated. This is an astonishing accomplishment.

Looking just at what Apple makes available online, we find the following:

iTunes U content (free). Apple’s iTunes U service is an under-appreciated resource, providing free classes, courses, and more from educational institutions, museums, and other places from around the world. And there is some amazing free content there if you’re interested in learning how to develop for iOS, not the least of which is the excellent Stanford University iPhone Application Development (Winter 2010) course, which includes downloadable videos and PDF handouts from 45 (!) classes, classes which are taught by ex-Apple employees. However, Stanford isn’t the only source for this information: Several other institutions, including the University of Utah, UC Davis, and many others offering similar classes. They’re all free.

iPhone OS Reference Library (free). Apple provides an exhaustive iPhone OS Reference Library for free, to anyone, which covers the currently-shipping iPhone OS 3.x release. Those that want access to the iOS 4 stuff, for now, need to be part of the $99 iPhone developer program, but of course that will change over time. The sheer amount of information available here is staggering, and those who do pay for the developer program also get access to…

WWDC session videos and handouts. Each year, Apple holds its annual Worldwide Developers Conference (WWDC), and the 2010 show was quite iOS 4-heavy. This week, developers who didn’t attend the show physically gained virtual access to all of the sessions via HD and SD session videos and PDF versions of the presentation slides. I’m talking 160 separate tracks. It’s breathtaking.

iPhone developer resources. Separately from the WWDC content, Apple also offers iPhone (and Mac and Safari/HTML 5) developers with exclusive iTunes-based video content. The iPhone Development Resources content, also on iTunes U, boasts 166 tracks, split into Essential Videos, Advanced Videos, Foundation Videos, and In-House App Development Essential Videos.

There’s probably more, but this is just what I’ve noticed without doing any actual research. It’s pretty impressive. Apple provides developers with a fire hose of documentation, and there is precious little excuse for not finding the information you need. And this doesn’t even touch on the content provided by third parties via books, web sites, podcasts, and even on-site developer boot camps. If you want to get started in the iOS world, you’re covered.

So how about Windows Phone?

I’ve pointed out some developer resources in this blog over time, but I was interested this week to see that Microsoft’s Kenny Spade has started an unofficial list of Windows Phone 7 resources. (Note that this list includes Microsoft and third party resources.) As of today, this list includes:

Windows Phone for Developers. The primary developer portal for Windows Phone 7.

Programming Windows Phone 7 Series. Charles Petzold’s site for his Programming Windows Phone book.

Learning Windows Phone Programming. The site for another book, with some sample chapters available.

Application Certification Requirements. A PDF document describing the technical requirements for app developers that wish to publish their wares in the Windows Marketplace for Mobile.

Application Platform Overview for Windows Phone. Pre-release documentation for the the Windows Phone apps platform.

Windows Phone UI Design and Interaction Guide. Another PDF document, this one describing app UI design.

Designing Web Sites for Phone Browsers. Best practices for the mobile web, in PDF form.

Documentation for Windows Phone 7 at MSDN. Online documentation the the Community Technology Preview (CTP) of Windows Phone Developer Tools.

Of course, this list is pretty incomplete, and there is in fact some documentation out there that offers an Apple-like experience. Microsoft showed off Windows Phone to developers at both MIX’10 in March and Tech-Ed 2010 in June. And the session content from those two shows are available, for free, online. Here’s where to look:

MIX’10 Windows Phone sessions. 15 sessions, available in various video formats and with PPT presentation downloads.

Tech-Ed 2010 Windows Phone sessions. 14 developer-oriented sessions, available in various video formats and with PPT presentation downloads.

Not bad, but compared to what Apple offers, it’s not even close. (And let’s be fair, this list is probably pretty incomplete too. But then so is the list of Apple resources noted above.)

To those who would argue that this is early days and that Microsoft’s documentation can only catch up, I’d say, wake up. When the iPhone debuted three years ago, it was a bolt of lightning in what was then a very immature smart phone world. Three years later, everything has changed, and the market in which Windows Phone will compete is vastly different. In 2010, it is not enough for Microsoft to provide what Apple had in 2007, and this is as true with developer tools and documentation as it with anything else. Microsoft isn’t competing with the Apple of three years ago.

What we need, then, is not a trickle, but a fire hose. We need what Apple offers iOS developers. That’s the bar.

So. Does this mean that Windows Phone is not or will not be successful with developers? No. As I will argue for both the user experience and content as well, Microsoft doesn’t need to match or beat Apple to be successful. But it does need to at least be in the game. I think that what Microsoft has done so far is a nice start, but a nice start only. The key here, is to excite developers enough that they want to create unique Windows Phone solutions and, perhaps even more important, port the key top x percent of iPhone applications to the Microsoft platform.

There are a number of hindrances to this strategy. The Windows Phone development environment (Visual Studio/Expression) is quite different to that of the iOS development environment (Xcode), though the differences are shrinking as Apple moves to more of a Visual Studio-like experience in Xcode 4. The differences between the programming languages (C# in Windows Phone, Objective-C in iOS) are seemingly small (they’re both C-based OOP languages) but, I think, important. Not insurmountable, but the key issue here isn’t so much language syntax as it is the APIs, the libraries that developers use to access specific phone features. These are quite different between each environment, as you might expect. Mac developers will find some comfort in iOS, just as Windows developers should "get" Windows Phone. But moving from phone to phone will be difficult, as difficult as porting a Mac app to Windows.

Documentation-wise, Microsoft has thus far provided the minimum, in my opinion, to be successful. Sure, Windows Phone isn’t even out yet, but the time to attract developers is now, and this explains the dev pushes at MIX, Tech-Ed, and, next month, the developer device seeding program. It’s important that a decent collection of Windows Phone apps and games be available when the phones ship later this year.

So, yes, I think the Windows Phone developer story is already reasonably successful. No, it’s not as good as what Apple offers, but it is familiar to the millions of Windows developers, and, while we haven’t really discussed this, it is also more mature and capable, I think, than the competition from RIM, Android, WebOS, or whatever.

Remember, the key here isn’t that Microsoft "beat" Apple but rather that they can offer an alternative platform that is compelling, capable and successful for developers. It’s like outrunning a bear: You don’t need to be faster than the bear, but you do need to be faster than the other people the bear is chasing.

What Microsoft offers developers is already compelling and capable, and like everything else with Windows Phone, it will get better over time. Ultimately, the success of this developer platform will require unit sales and app success stories, but early success can be measured by the speed at which developers take advantage of the development environment and create unique Windows Phone offerings. I think the parts are in place for that to happen. But looking at the Apple ecosystem, I’d also caution that much more needs to be done. Again, success is all in how you define the word.

This entry was posted in Developer, Windows Phone. Bookmark the permalink.

25 Responses to Windows Phone vs. the world, part 1: Developers

  1. Nice post, but I disagree on 2 points:

    You say that the differences between C# and Objective-C are “seemingly small.” Have you tried comparing the syntax between the two? Objective-C is quite different from any other language out there. Many developers have avoided iPhone development for the simple reason that Objective-C is too different to bother learning. Why else do we see projects like MonoTouch? With the rising interest in Android, and the extreme similarities between C# and Java (they are nearly conceptually identical and the syntax is about 90% the same, while C# and Java are conceptually very different from Objective-C, and the syntax is about as different), we may see iOS become the oddball in the near future.

    You also talk about how the developer documentation isn’t as good for Windows Phone as it is for iOS. One thing you need to remember is that they are using Silverlight and XNA – two technologies that have been around for years. They don’t need exhaustive Windows Phone-specific documentation because all the existing documentation for Silverlight and XNA still apply. All they really need to document for Windows Phone is what’s not available on the phone, and what’s new to Windows Phone (which is a, relatively, small amount). Not to mention that this thing is still only in CTP – we’re not even to beta yet – and even according to the CTP documentation the APIs are not complete yet, so I wouldn’t expect them to waste a lot of resources on documenting an incomplete API…

    • Paul Thurrott says:

      Thanks …

      My use of the word “seemingly” means “isn’t” — i.e. that the differences between the two may seem small but are in fact not small. On a side note, I’ve always felt that moving between any C-like languages is difficult–more than many would believe–because the small syntactical differences and broader conceptual differences can really betray those with a false sense of familiarity.

      With regards to the documentation, what you’re referring to is useful, sure, but also generic. Windows Phone-specific API documentation and general “best practices” information is still lacking when compared to what’s available for the iPhone. I’m not sure I agree that more isn’t needed: Things like panoramic UIs or cross-platform 3D games aren’t necessarily obvious just because you are familiar with Silverlight or XNA, respectively. I expect the documentation picture to improve over time. But right now, this is a huge advantage on the Apple side.

    • bslayerw says:

      Seriously, any worthy programmer could pick up the Objective-C syntax very quickly. You don’t even have to develop everything in Objective-C if you don’t want to. You can easily mix C/C++ with Objective-C, only your UI code really needs to be Objective-C. Of course learning all the nuances of the Cocoa framework is a bit more time consuming.

      The idea of Objective-C being a hurdle to developer adoption is absurd. I think it’s only the lazy, short sighted developers who haven’t really tried to developer for the platform that are put off. Just taking a look at Objective-C’s syntax and saying, “ewww, I’m not developing for iOS” because it’s different, is pretty lazy.

    • grokthebarbarian says:

      Sorry, but the “different syntax” argument doesn’t hold water. When I joined Apple, I’d never coded a line in ObjC. Two weeks later I had an MVC application (with many custom views), integrated with Xgrid tracking how files were read and written by other applications using Spotlight metadata. Syntax is about 5% of any programming language- the skill is in modelling the requirements and mapping that model into objects the computer can manipulate. In any event, is there *really* much difference between:

      Foo *foo = new Foo();

      Foo *foo = [Foo new];

      On Paul’s other point, the APIs are only foreign if you’re coming from a non-mac environment, just as C# APIs would be foreign if you’re coming from a non-windows environment.

      Finally, there seems to be this meme that Xcode is a poor IDE. Personally I prefer it over anything Visual Studiohas to offer, but perhaps that’s my lack of expertise in VS. It provides all the basic things (visual debugger, code-completion, etc., but I particularly like the instrumentation built-in to XCode (where you can write kernel-level data capture models, apply them to your app, and watch stats being graphed in real-time. Apple provide several pre-made of course, for memory use, CPU & GPU activity, and memory leaks if you’re not running the garbage collected runtime).

      I also love the build-and-analyse tool that let’s you visually see (with arrows drawn over the relevant source code) how some obscure error could be caused by a logical inconsistency in you code. Truly excellent.

      • Paul Thurrott says:

        I haven’t played with it too much yet, but XCode 4 *does* look nice, and not surprisingly it’s picking up the Visual Studio look and feel too.

      • roteague says:

        It’s quite obviously your lack of VS experience. It has all the instrumentation you may want as well as many other features that you don’t mention. I can’t compare the two, since I don’t do any XCode work. But, I do use VS2010 8-10 hours a day.

      • daveedvdv says:

        Yes, Xcode still (undeservedly) carries the “poor IDE” reputation from its 1.0 days. Since then it has considerably improved and in a few areas (Instruments in particular) I think it can claim to have the upper hand over VS.

        However, VS is overall still more solid, IMO. The debugger is noticeably better and if you work a lot with C++, so is the built-in editor. I think build-times are generally much better too (that really a compiler rather than IDE issue), but given that the input (e.g., header files) is different, it’s an apples-to-oranges comparison (also, Microsoft’s ISO C++ conformance is still pathetic whereas g++ 4.x is among the better C++ implementations).

  2. roteague says:

    As a long time Windows developer (including Windows Mobile), I’m excited about Windows Phone 7. However, as something you allued to elsewhere, the UI on this is so different that I think it will take sometime for it to begin picking up, sales wise. Unless, Microsoft dumps a lot of money into advertising, and keeps the advertising up, it will turn into another Zune story.

    From a developers point-of-view, I’m excited, and in fact, have two different applications under development. There really are a lot more resources available than most people are aware; you can add Channel 9, CodePlex, Coding4Fun and a number of blogs to your list. This has always been Microsoft’s strength, and why Apple failed in the PC OS market years ago. The Wndows OS has a breadth and depth that the average Apple user can’t even begin to comprehend, and I suspect WP7 may wind up being that way as well (like Windows Mobile was).

    I’m also disappointed, that Microsoft has been slow in supporting developers in what I consider key ways. For example, the lack of support for WP7 in Blend (except with the Beta). Even bigger though is the lack of support for common controls, like the Pivot and Panorama control. These controls are essential and pivitol to the WP7, and Microsoft has yet to deliver them to developers. Without them, we will be building iPhone like apps – surely not what the platform promises.

    I’m not bothered by the Silverlight requirement at all. Silverlight addresses one of the biggest problems with developing for Windows Mobile – mainly, changing screen size and orientation. Then again, I spend a better part of this past weekend writing WPF stuff …

    At the moment, Apple has the advantage in developer support, given ths sales success of the iPhone. But, I wouldn’t expect that to continue for long. Developer support has always been a core Microsoft strength.

    Great points, thanks for putting them together for us.

    • mikiev says:

      “The Wndows [sic] OS has a breadth and depth that the average Apple user can’t even begin to comprehend, …”

      Can’t we have a rational discussion without resorting to bashing Apple users?

      Are you trying to say that the “average” Windows user -does- comprehend the breath and depth of Windows OS? [or “even begin to”?]

      • roteague says:

        Sorry, it wasn’t intended as a bash against Apple users. Most Apple users have no knowledge of what the full depth of Windows is; it isn’t what they care about. I continually see this attitude quite often on the boards. I suspect, the majority of Windows users don’t know this either.

      • zeblonite says:

        I interpreted his comment differently than you did, so I was surprised you took offense as you did. Here’s what I thought he was saying.

        I think he’s saying that the Windows OS ecosystem has a vast breadth and depth, including information resources like Channel 9 and CodePlex, related technologies both large and small, and much more. And he’s right. There are a LOT of resources out there in support of Windows and related tools and technologies. A whole lot, much more than is available for any other platform ecosystem, including any Apple ecosystem. That’s not a statement on the goodness or badness of Apple technologies, it’s a statement of the breadth of supporting resources. It wasn’t bashing.

        I also took user to mean a developer, a true user of the platform. If I were an Apple developer and hadn’t had a reason to delve into the wealth of supporting content for Windows developers, I probably wouldn’t realize just how vast it is. Again, not bashing.

        Your take on his comments was so different from my own I had to go back and re-read his post. Turns out I jumped to conclusions about what he meant, since it’s not what he actually wrote, but I don’t think my interpretation is wrong.

  3. afarnham says:

    To say that exhaustive Windows Phone documentation is not needed is myopic in my opinion. I am an iPhone developer and can tell you that having iPhone specific documentation is necessary to the success of the platform. The same argument could have been made for the iPhone (that it does not need exhaustive documentation) because it is based on mostly the same Cocoa and CoreFoundation frameworks as the Mac.

    The problem is, a phone is a different beast and the methods of interaction for the user often require different APIs or variations of existing APIs. To have a definitive, exhaustive source of iPhone docs makes it easy to do iPhone development. Having to hunt down documentation between two variations of a platform is decidedly not fun and is one of those little things that can help make or break a platform.

    • roteague says:

      One of the beauty of developing for Windows. The .NET framework help files indicate whether a specific function call supports which platforms (Win7, Mobile, etc). Many of the API calls are similar, but you are right, there does need to be documentation about which parts of the .NET framework are implemented in the WP7 space (not necessarily the individual API calls).

  4. qazwart says:

    You’re too developer centric!

    The Windows 7 phone will succeed or fail depending what it can do out of the box. This is very different from the old Windows/Mac platform wars where programs were the major concern. Before 2001, without programs, there was nothing to do with your Mac. Even if you thought the Mac was a superior platform, you still went with Windows.

    One of the dirty little secrets about Jobs success at Apple and the resurgence of the Mac platform is that it took place when applications became secondary for most people. The Mac could access the Internet. You could send email. You can write to your blog. And, you could browse the Internet. Who cares about anything else? The only real programs required were Microsoft Office and Quicken which Jobs moved hell and high water to get commitments to put on the Mac platform. Remember that year well. That was the first and last time you saw Jobs beg.

    Now in 2010, applications on desktops are even less important. Quicken has long died out as a must have program, and more and more consumer systems are shipping without Microsoft office.

    When you get to the smartphone platforms, apps aren’t as important as access to Internet webapps. People want to get to Yelp. They want Twitter, They want Facebook. As long as you have a capable Web browser on your phone, you have access to the dozens of web apps people need. Once enough people get a particular platform, the apps start rolling in.

    The situation Microsoft is facing is breaking into an existing, saturated market. The only way you can do that is to bring in something new. Windows took over the Mac in the early 1990s Windows took over from the Mac because it was much, much cheaper. Windows 95 was a better OS than System 7. Windows Networking was easier to setup than Novell’s. By 2000, Windows was the dominant system.

    When the Zune came out, it was the same price as the iPod and even slightly bigger. Microsoft simply thought its name would make the Zune a winner, but in a saturated market, there was no reason to switch to a new MP3 player that could offer no added benefit over the iPod. The Zune became a joke despite the fact that it is a very capable MP3 player when compared to the iPod.

    Now, we have the phone market. The iPhone and Android have lots of features, lots of apps, and are fairly easy and fun to use. Most people who would have bought a new App Phone (as David Pogue calls them) have bought one. The iPhone and Android are fairly cheap to obtain with contract. (Yes, the contract is more, but then Windows 7 Phones will be paying the same thing for the data.).

    The question is what does the Windows 7 Phone offer consumers that they don’t already have.

    The Microsoft name? That didn’t help the Zune any. In fact, due to the Windows 6.5 Mobile platform, I’d say it’s even a hinderance. The relationship between corporations and Microsoft. Might help some, but it didn’t help Blackberry or Windows Mobile 6.5 from losing market share to the iPhone/Android combo.

    Nope: What Microsoft needs in order for Windows 7 Phone to succeed is an advantage so big and bold that people are willing to give it a chance instead of merely going over to an iPhone or Android phone. Here are some possibilities:

    1). Interface: Windows 7 Mobile has an intriguing interface. It seems to be more social oriented than the iPhone/Android interfaces which are more app oriented. Is it enough to get people to come over? Probably not.

    2). Link with the XBox: This is a strong contender. I haven’t used the XBox, but I understand there’s a strong social link with these games. Being able to follow and possibly play these games on your Windows 7 phone could be big.

    3). Microsoft Office Interoperability. Nope. Didn’t save the Windows 6.5 Mobile phones.

    4). Manufacturer Android dissatisfaction: When the Windows 7 Phone platform was first announced back in January, it looked like many of the manufacturers were tiring of Google’s leadership in Android. Release after release after release meant that a newly released phone was obsolete in days. The multiple user interfaces, the Android Marketplace issues, and the lack of direction made many manufacturers very unhappy with Android. At that time, they would have been willing to get out of the Android phone business if Microsoft came up with something decent.

    Since then, Google has smoothed over its relationships with the manufacturers. If things change in a few months, manufacturers might once again think of abandoning Android for Windows 7 Phone.

    5). Price. Price isn’t the price of the phones. The iPhone and Android phones can already be had for less than $100. As Microsoft found out with the Kin phones, saving $50 on the cost of a phone isn’t going to help as long as you’re paying the same $60/month as the big boys.

    What would be interesting is if Microsoft simply skipped over the established carriers, bought a bunch of minutes and 3G data bandwidth wholesale, and came up with their own carrier deal that greatly undercuts the established carriers.

    Imagine a Microsoft becoming a combined cellphone, 3G data network, and ISP. Microsoft could sell or give away (with contract) MiFi style routers for the home using 3G service to provide WiFi home networks for say $50/month. And, if you are a Microsoft ISP customer, each Windows 7 Phone can have unlimited 3G data access for a mere $10 per month.

    The $50/month is what people are now paying for home Internet access. However, only $10/month extra for your smartphone? You could save $600 per year? Now, there’s a true competitive advantage to have a Windows 7 Phone.

    And, this isn’t as strange as it sounds. Apple was very willing to take the same path in order to get the iPhone out. Originally, both Verizon and AT&T balked at letting Apple design the iPhone on its own.

    Back then, the carriers decided upon the features, and the manufacturers complied. Full Internet access? Don’t think so! You were suppose to pay the phone companies for the right to give customers access to your website. Let Apple make all the money on music downloads? Hey, we sell 10 second ring tones for $3.99 a piece. Not going to let Apple sell entire songs for 99 cents! Not if we’re not getting a cut!

    So, Apple threatened to buy bulk minute and bandwidth and open its own carrier to sell its iPhone. AT&T relented at the threat of an Apple phone service, and the iPhone went on AT&T’s network. Apple, after all, didn’t want to take an additional risk of running their own phone company as well as producing a new type of phone.

    For Microsoft, things are very different. Microsoft could get the carriers to carry Windows 7 Phones, but will people buy them? Palm didn’t do so well, and neither did the Kin. If Microsoft wants Windows 7 Phones to be successful, they have to do something about data prices.

    Like Apple, Microsoft has the money in the bank to buy enough minutes and bandwidth to be a phone carrier. However, where Apple was merely playing the independent carrier route as a stick to get AT&T to do its bidding. Microsoft needs to do something to give Windows 7 Phones the large edge it needs in order to succeed in the marketplace. Becoming a common carrier and offering a substantial savings on data pricing could be the way to go.

    • WaltFrench says:

      Great set of thoughts, especially what MS needs to succeed.

      The developer angle to your great idea is that devs need a reason to believe the users will come. Right now, they only see MS building a sturdy platform which will more than match the tools that Apple provided in 2007. There is no incipient tidal wave of excitement for the WinMo Total Package, so developers should project likely sales with only the edgy UI as a plus. Any developer — say, a startup doing the next Yelp-like social app that is how the world has moved beyond Web 2.0 (remember that quaint term?) — should make an effort-per-user calculation that puts WinMo as its third priority. At best.

      Paul doesn’t discuss one VERY important aspect of developing: getting paid for one’s work. Any decent app takes a lot of time away from family or other opportunities; you have to believe it will be rewarded. Even tho I’m an ex-developer, I am astonished at the silence from Redmond about why their work will be the Next Great Thing, better than all others. Logical interpretation: it won’t, that’s why.

      Also of note: there is a fairly short list of smartphone efforts since Palm invented the category in 2002. Even if Apple didn’t change the rules, but rather caught the wave at the perfect moment, MS has to look at Palm falling flat on its face with both Cobalt and WebOS; at Symbian^3 being abruptly aborted and an awkward science experiment entering its its place; at the near-panic at RIM to hold anything like its dominant place. Yes, it’s a huge market, but the MS efforts look a LOT more like the efforts at the failures than the successes. I think WinMo is Ballmer’s third envelope.

  5. daveedvdv says:

    I think Objective-C (ObjC) is actually an asset rather than a liability for Apple (at least at this time).

    First, ObjC memory management constraints results in apps often being less demanding of memory resources than C# or Java (even the Dalvik VM doesn’t compete with it).

    Second, important code categories (game engines in particular) are written in C/C++ (VM-based languages just don’t work well), and ObjC is just a thin layer on top of that. So the whole app feels “unified” in language. (It’s a major reason for Android lagging way behind iOS in terms of quality game titles.)

    Third, the unfamiliarity of ObjC introduces a “margin of entry” that filters out part of the “less talented” pool. That in turn eliminates some (clearly not all) dilution by poorly-designed apps, but also e.g. reduces the “noise” in developer support forums to some extent. When a platform provider says they want “lots of developers”, what they’re really saying is that they want “lots of great apps” and the latter typically come from “great developers whose programmers aren’t scared of learning a new programming language”.

    • roteague says:

      Actually, a number of xBox 360 games are written using XNA, which is C#.

      • Paul Thurrott says:

        Right. :)

        To my earlier point, it’s one thing to make an Xbox 360 game. It’s another to make one that works on both Xbox 360 and Windows Phone. And then another to make one where you can “continue” a play session in the 360 version when you started in WP (or vice versa).

        This is a great capability, and one that sets WP apart from the iPhone or anything else. But it’s not “free.” There’s still work to be done.

      • daveedvdv says:

        Note that I used the term “game engines” rather than games. I should have been more precise still, since obviously one can write “game engines” whose performance requirements don’t preclude a VM-based language implementation. My point though is that all high-end 3D engines are written with low-level languages (in practice: C and C++) possibly underneath a higher level API for the game logic. The impedance adaptation between the low-level is easier/more-pleasant with dialects (ObjC, C++/CLI) than with entirely distinct languages (C#, Java).

  6. wvmikep says:

    Yes, the syntax between Objective-C and C# is fairly significant. However, are we the equivalent of developers or hammerists? Learning new and different technologies and languages is just a part of the job, and the best part, IMO. It’s kind of like driving a stick shift or automaic. We all have our preferences, but those who can do both are better-off. Rather than hating on Obj-C, the wise developer will embrace it as another tool (in addition to their hammer) in their toolbox.

    Besides, think of what it can do for your resume.

    Back to the point of the post, I do hope Microsoft is successful in the sense that they’re a viable competitor. However, the last thing I want to see is any one platform gain the type of dominance that Microsoft has on the desktop.

  7. juleslt says:

    On ObjC – it’s not ‘that’ weird, and in terms of the basic language, it introduces far less new syntax than C++ (in terms of implementation, it was originally a pre-compiler down to C. I’ve not followed more recent changes with clang to see if the same approach is used, or a more direct compilation is used).

    I think that the basic object model is far easier to understand – it’s closer to the flexibility of Smalltalk, Python and Ruby, whereas C++ and Java have a lot of implementation details that I think make them harder to learn . . . as languages.

    I’d actually be pretty concerned about any developer who feels they can’t learn a new language – actually writing code is usually the easiest part of creating an application.

    But language isn’t everything – what I think makes ObjC intimidating to many developers is that you’re pretty much forced to learn and work within certain design patterns.

    I’m thinking of the way that MS developers have largely rejected MS efforts to push them towards MVC frameworks, and also the push back on Visual Basic (we don’t want your OO language). C# and even .NET apps still aren’t the norm on Windows.

    There’s a much bigger gap between learning the language, and knowing what you need to create an application with ObjC/Cocoa.

    And I think that’s been Apple’s strength here – they’ve always had a policy of pushing their developers and ruthlessly deprecating features and breaking things between OS updates. That makes them hell to deal with in the desktop market (where an app might have a lifespan of 10-20 years).

    But in terms of getting their development community onto their latest technologies, they’re a lot better at it than MS – and Android too – Google’s phone partners have dropped the ball on rolling out OS updates to customers, which makes it difficult for developers to address a single version. The telcos have also refused the part of Adobe’s Open Screen Project which would involve pushed updates to the Flash runtime – so that developers could count on a single version. But then, it doesn’t benefit the telcos business at all.

    It’s not wholly MS fault – a lot of MS shops out there are MS shops precisely because they are conservative, and equally because tools like Visual Basic do lower the barrier to entry for creating basic data entry type applications.

    The phone model – well it’s got to look a LOT more like the XBox model – and that’s probably where a lot of potential developers are likely to come from.

    • roteague says:

      I don’t have a major problem with Objective C being different, after all, that is how various programming languages evolve.

      [I’m thinking of the way that MS developers have largely rejected MS efforts to push them towards MVC frameworks, and also the push back on Visual Basic (we don’t want your OO language). C# and even .NET apps still aren’t the norm on Windows.]

      I’m not sure about that. Right now, frameworks like MVC, MVVM are hot topics within the developer space, and most programming jobs require C# experience in some day. There may not be a lot of commercial development work going on in C# (although major portions of Visual Studio 2010 were written in WPF/C#), but there are a fair number of applications.

  8. Pingback: Top Posts —

  9. Pingback: iOS 4 はどうよ « maclalala2

  10. vsameer says:

    Great post Paul and great discussion guys.

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s