Home > apple, iphone > Apple’s new policy is good for you, me, and the web

Apple’s new policy is good for you, me, and the web

April 14, 2010

I like both Adobe (Lightroom rocks!) and Apple (iPad rocks!), but I’ve been asked over and over again what I think about Apple’s new 3.3.1 policy. You know, the one that basically bans cross-platform development frameworks. And, in particular, basically nails the Flash coffin shut on iPhone/iPod/iPad. So, what do I think?

I love it.

And I’m surprised more developers, end users, business leaders, and general web standards lovers everywhere aren’t posting about how great this is.

It’s good for end users.

The App Store already has a signal-to-noise problem. With hundreds of thousands of apps, finding the good stuff is tough. Bear in mind that every single one of those Apps was built by someone intentionally designing for these devices – and we’ve still got plenty of junk in amongst the gems. Now imagine a bunch of developers just cross-publishing to lots of devices – ignoring all of the strengths of each of those devices. The signal to noise ratio gets worse, fast. Ugh.

It’s good for the web.

For me, this one is the biggie. These devices are a dual-platform: iPhone SDK and HTML. Don’t like the iPhone SDK? Build for HTML. And finally, finally, someone has stepped up and done something about the de-facto Flash monopoly. Flash has helped the web and HTML standards to stagnate. It’s sorta like a drug. It’s whizzy and slick, granted. But it’s a nightmare, too. Flash crashes constantly. Its performance is terrible (when a 1Ghz mobile processor in the iPad plays video more smoothly than Flash on a 16-core Mac Pro with a hefty GPU, that’s a problem). And it smashes through web paradigms left and right. Why? Because there’s no competition.

Look at the browser world, on the other hand. With Microsoft, Mozilla, Google, and Apple duking it out, we’re seeing a breathtaking pace of innovation. Browser stability and performance is improving at an astonishing rate. There’s no reason Flash shouldn’t be super-stable and fast by now – but it isn’t. It’s like the Internet Explorer doldrums all over again – Flash is holding us back, just like IE used to. I’d rather be building for something with a scary fast pace of innovation than something stale.

The iPad is already spurring HTML5 adoption even faster than before. Witness all the video and games sites that are already scrambling to announce and ship their HTML5 interfaces. Bring it on!

I want to build for the web, not for Flash.

It’s good for developers.

And by that, I mean “good developers.”

Good developers are language agnostic. They’ll write in whatever language is worth the effort.

Good developers love great toolsets and great platforms. The iPhone SDK is amazing.

Good developers want their creations to be perfectly tuned to their purpose. The iPhone/iPod/iPad interfaces demand and deserve lots of individual attention, not to be marginalized by some middleware cross-platform publisher.

Good developers want their products found and used. The App Store signal-to-noise issue is a daunting one – more shovelware won’t help.

Good developers want a stable community, with lots of advice, sample code, libraries, etc. A fragmented development landscape prohibits that – a unified one encourages it.

I could go on – you get the point. Best of all? It weeds out poor developers. And if the iPhone SDK and HTML5 aren’t your thing – go build somewhere else. I’m sure there’ll be another computing revolution in a decade or two that you can ignore yet again. 🙂

(and if you’re a good developer – we’re hiring and we’re having more fun than you can possibly imagine)

It’s good for Apple.

They get better apps. Happier end users. More productive good developers. Fewer bad developers. And, of course, they make more money. They did invent the software, devices, and App Store, afterall. Why should they marginalize themselves out of their own business?

It’s even good for Adobe

Granted, not quite as good for Adobe as having Flash on these devices. 🙂 But lets not forget that Adobe has a stable of great applications, like Illustrator and Photoshop, which aid iPhone development. Their sales will still boom.

Finally, Adobe is incentivized, finally, to actually improve Flash. I’ll bet if Adobe actually made Flash stable, fast, and power efficient, it could get added to the iPhone for use in-browser. It’s not like Apple enjoys seeing half rendered web pages in their browser – they just enjoy customer complaints about crashing and poor performance less. Believe me – I know all about customer complaints due to poor Flash behavior.

But that window of opportunity is closing – the owners of those web pages don’t enjoy their stuff being half-rendered either. They’ll rush to fix that problem – without Flash – if Adobe doesn’t fix it for them.

So there you have it. Thanks, Apple, for doing what’s best for the web, your customers, and developers like me. The future is bright. Long live web standards!

(this post written on an iPad in WordPress’ excellent app)

UPDATE #1:

I understand many disagree, and have their own reasons. Go write for Android, another great platform that’s more open.  Maybe if you do, Android will ‘win’.  I think you’re confusing platform choice and development choice here.  Personally, I’d love to have more platform choice.  Who wouldn’t?  But Apple did invent this thing.  They certainly deserve to make whatever decisions they want about it.  If you’re right, and I’m wrong, those decisions will kill the platform.    I happen to think I’m right, and I happen to think Flash needs to seriously improve – and the Apple’s the only way that’s gonna happen.

Note that I don’t have an opinion on things like MonoTouch, which I know nothing about.  It could very well be that Apple painted with too wide of a brush here and excluded some things that should really be included.  I just don’t know.  I do know, though, that history has shown that cross-platform languages and frameworks have an abysmal success rate.  The last thing we need is watered down apps built for the lowest common denominator.

Finally, yes, SmugMug uses Flash.  I’m sure we’ll continue to use it.  Like I said, it’s slick and whizzy and like a drug.  We used it because it was the only tool for the job.  Adobe did a great thing with their h.264 support, and we love our Flash apps – when they work.  But it’s been awfully frustrating to watch Flash continue to crash and perform poorly for our customers, especially because Adobe doesn’t seem to care.  They certainly don’t respond to us when we ask for help, and they certainly haven’t fixed their issues with multiple releases.  I’m hopeful that this sudden pressure and increased competition will cause them to bring Flash up to the level of their other superb products like Lightroom.  If not, you’ll certainly see us move away from Flash as HTML5 support and performance continues to improve, just like everyone else on the web.  We can play Quake II in HTML5, for heaven’s sake!

UPDATE #2:

Steve Jobs on Adobe.  Amen, brother.

Categories: apple, iphone Tags: , , , , , ,
  1. April 14, 2010 at 8:19 am

    So less choice is good for users? Less choice is good for developers?

    Everyone will agree that we all want high quality apps. Does that mean Apple should decide on how high quality apps can be made? Why not give users and developers choices and let them decide? If a developer can use Flash or MonoTouch or Titanium to create an application that iPhone and iPad users love, what is wrong with that? If they fail to create a great application that way, why not let them choose to use Objective-C and Cocoa instead? Freedom and choice just seem like the better way to go to me.

    If cross-compiler tools are so bad and it is actually impossible to make good apps with them (lots of big ifs there), then developers will stop wasting their time using them and it’s all a moot point. Let the people decide.

    • April 14, 2010 at 8:41 am

      History is very clear here – write once, run anywhere produces terrible apps. Just look at the Java scene. Can you name one desktop app in Java that’s actually decent, let alone great? How about a cross-published app on some other framework?

      Apple’s barely limiting choice – the web is wide open and fully supported.

      • Professor Opinion
        April 14, 2010 at 9:22 am

        Isn’t HTML5+CSS+JavaScript write once run anywhere?

      • April 14, 2010 at 10:07 pm

        Dan,

        I can create jar on Windows and run them on Linux. Does that qualify as “write once run anywhere”

      • April 14, 2010 at 10:09 pm

        Don,

        Apologies for mis-spelling your name (and a typo) in earlier comment.

      • April 15, 2010 at 4:38 pm

        That’s a good point, and you may be right. But you might be wrong, too. Why not let developers and end users decide? Again, what is wrong with choice and freedom?

      • April 16, 2010 at 3:48 pm

        Vuze (formerly Azureus) Is considered a great by a very large number of people, it is java based, runs on windows, linux, osx and other os’s(its java after all)
        http://en.wikipedia.org/wiki/Vuze

        I prefer uTorrent BUT If I couldnt use utorrent vuze would be my 2nd choice without a doubt.

        I love when people like yourself generalize and expect people to just accept that write once run anywhere=horrible……

        there are plenty of apps writen for one platform or multi done by hand that are HORRIBLE, if you would like I could list a few dozen of them 🙂

  2. April 14, 2010 at 8:31 am

    Don, since you mention that you wrote this post on an iPad, I’d like to ask what you think of the iPad’s software “keyboard”? To me it seems like a pain for skilled ten-finger typists, since you get zero physical feedback about whether your hands are even aligned with the keys correctly. In Apple’s own promotional videos for the iPad, people don’t seem to be typing “correctly” or very fast, which leads me to wonder how useful the device is for someone who needs to write a great deal. The iPad really seems designed for consuming online content more than creating anything.

    • April 14, 2010 at 8:44 am

      The iPad’s keyboard takes some getting used to, but it’s mostly pretty great. Apostrophes are the worst, might just start skipping those which would be a shame.

      I don’t have to look at my fingers or whatever, for the most part, which I’m surprised about.

      The bluetooth keyboard is much better, obviously, but i left it at the office.

  3. April 14, 2010 at 8:40 am

    That’s all great, Don. But so far there is no widely-adopted replacement for Flash. In fact, it’s downright hard to implement something other than Flash on SmugMug. I would rather have jQuery (or perhaps HTML5) over Flash, but in-house tools to do that do not exist. How about giving SmugMug an option to eliminate Flash thus improving site performance and cross-platform compatibility?

    • April 14, 2010 at 8:46 am

      SmugMug uses very little Flash, in part because it’s so problematic. It’s my fervent hope that we will get better and better about not only supporting HTML5 but also providing better tools for our customers to use it well.

  4. greg
    April 14, 2010 at 8:46 am

    HTML has very little access to the underlying OS and it this rate it never will, so it’s not a viable development option.

  5. Raul Pesch
    April 14, 2010 at 8:47 am

    I think Flash on the Mac was particularly bad but that doesn’t mean that the technology is bad, it’s just a lousy implementation. On Windows, Flash is stable and fast. It can be stable and fast on iPad as well. And there is plenty of competition for Flash as well. Silverlight, JavaFX and HTML5 are all great competitors and already make inroads to the Flash dominance.

    Section 3.3.1 forces developers to target a single platform and SDK. This however says nothing about the quality of the apps. Bad developers will still be attracted to the big iPhone/iPad market and continue to develop bad apps. The iPhone SDK is not miraculously going to solve that. Regardless of how good the iPhone SDK is, the fact that one company tightly controls both the hardware and the development platform will ultimately stifle innovation. And there is plenty of proof of that if you look at the history of computing. It also remains to be seen whether Apple will truly embrace HTML5. Supporting HTML5 video, OK. But I would be surprised if they will support HTML5 as a full development framework that enables cross-platfom apps and thereby challenge the AppStore. This will go straight against their strategy of making the AppStore apps the “front-end” to the web. Just be prepared for section 3.3.1.1 🙂

    On a different note, when will Smugmug replace Adobe (for slideshow etc.) by HTML5?

    All the best,
    Raul

    • April 14, 2010 at 8:51 am

      I agree that bad developers will be attracted to the large market, but why would Apple or anyone else want to give them bad tools to help them make their apps even worse? History hasn’t been kind to cross-platform development.

      At SmugMug, we’re very excited about HTML5, so I think it’s safe to say you’ll see more of that from us. 🙂

  6. April 14, 2010 at 8:53 am

    I agree with your sentiment, but I don’t think these are Apple’s real intentions. You said yourself that there is already plenty of junk on the iPhone that Apple has let through, so why all of sudden institute a policy for the sake of high quality apps? It seems to simply be too convenient to target a major competitor now that they control a significant marketshare in something, just as they’re doing against Google with the “iAd” rollout, pushing out other mobile advertisers on the iPhone.

    I’m sure that in the end things will turn out as you say, where the web becomes more open and better for everyone. But it doesn’t justify this action; it spits in the face of all developers, not just Adobe. Steve doesn’t trust us to develop quality on our own, so he closes us in, limiting innovation. These tools lead to enhanced quality on their own (ie. GWT). I’m no Flash fanboy, but this has collateral effects that really turn me off as a developer.

  7. April 14, 2010 at 8:53 am

    Great post. Just wonder off topic: What about Aperture 3?

    • Tim
      April 14, 2010 at 10:16 am

      I’m wondering the same thing. Why Lightroom over Aperture? Though, I would bet the answer is probably big enough for another blog post.

  8. Anand S
    April 14, 2010 at 9:10 am

    Don

    This comes across a bit arrogant. “Good developers use C” kind of argument. I hope that is the fanboy in you talking and not your personality that comes across that way. Don’t good developers want choice?

    Isn’t this about choice? Bad developers are bad developers no matter what language they use. A good developer needs choice to pick the tools he deems fit. They need to come to the conclusion that Obj C is their best tool on their own – without being forced by anyone.

    Won’t the same arguments you use against flash (lack of choice) apply to the choice of language with this SDK as well?

    Next, I am sure you saw the third party toolkits used google spreadsheet (iphone apps). If 30% of the top selling games can write efficient software by using Unity3D and Lua, what is wrong with everyone else using that?

    Lastly, 3.3.1 will only affect the small developer much more than it affects the big boys.

    Point #4 in DHH’s response.

    http://37signals.com/svn/posts/2273-five-rational-arguments-against-apples-331-policy

    But probably DHH doesn’t quality as a good developer since almost all he does is tied to Ruby (another horrible high level language) and he actually considered Titanium for his app development.

    “DHH 12 Apr 10
    Eric, I was looking into Titanium and I know of other developers who’ve already gone down that path.”

  9. Lina Inverse
    April 14, 2010 at 9:16 am

    “Good developers are language agnostic. They’ll write in whatever language is worth the effort.”

    Could you define “worth the effort”?

    Because as I see it, being forced to program in the three very low level languages now allowed (C, C++, Objective-C) isn’t worth my effort for the sorts of applications I might want to write for a smartphone.

    (Which is not to say that I e.g. don’t like C, which I’m using for my current project, since both are very low level.)

    A lot of programmers who have been or want to do at least some of their i programming in higher level languages like Lua or a Lisp are very unhappy.

  10. April 14, 2010 at 9:19 am

    Don,

    So it’s good for me that if I were on an iPad I could not even view my own website the way I like to because “Lord Stevie” tells me it’s not worthy?

    As a paying customer of 2 Pro accounts, your views worry me as a customer. Are you going to start dictating to me what is good for my site as well? Are you going to make my site unviewable on certain devices you don’t feel are ‘worthy’?

    HTML5 is great, but it’s not there yet. There are video codec issues, and still questions about licensing. Until it is ready, and ratified, Flash should continue to be supported.

    I’m no longer considering an Apple product as my next purchase.

  11. Professor Opinion
    April 14, 2010 at 9:27 am

    People are seriously confusing platforms and languages in this debate. ObjectiveC is an awful language IMHO. It’s not that I want to use the Flash platform to build an iPhone app, it’s that I’d rather use ActionScript or JavaScript or Python or really just about anything besides ObjectiveC.

    “Good developers want a stable community, with lots of advice, sample code, libraries, etc. A fragmented development landscape prohibits that – a unified one encourages it.”

    So by this logic should Ruby, PHP, Python, et al all consolidate to form one RHPythonby? Sorry Don your arguments are just specious. The odor of fanboy is hanging heavy in here.

  12. April 14, 2010 at 9:38 am

    Wow, I think this is the most shortsighted post you’ve written. 3.3.1 policy is another step Apple is taking to ensure users/developers are locked into their platform. It is good for Apple, pretty much bad for everyone else. It’s amazing to me that you can rationalize that this is good thing, let alone trying to convince others.

    First, this is not just about Flash. Apple is declaring control over which language you can use to develop applications. This is unprecedented. Even previous dominant monopoly vendors IBM/Microsoft have never gone that far. Can you imagine yourself saying what you say if Microsoft said that you could only use MS approved languages to develop for Windows?

    Apple’s policy is solely for strengthening its grip on developers. As the current dominant platform, it’s attempting (and will likely succeed) to prevent developers from choosing tools that may enable them to develop for cross platform apps and develop solely (or at least first) for iPhone platform.

    To claim that this is good for users is beyond shortsighted. There is no example in the history where lack of choice led to better things for users. Without Mozilla, we’d be stuck with IE 6.0 and if MS had the same power Apple currently has, there would be no Firefox. The competition and choice is the only driver leading to development of better browsers. Apple’s eliminating choice, rather than letting the market/users/developers decide which is the better solution. That’s not good for anyone.

    Build for HTML is also not an option. You don’t have access to many of the APIs through the browser and Apple has the sole control to decide which functionality they will expose.

  13. April 14, 2010 at 9:41 am

    I think you’re wrong on this one Don. I don’t have a problem with trying to keep junk out of the App store. I have a big problem with the clumsy way Apple’s trying to do it. Requiring that apps be “originally written” in a particular language is just silly. Even some of the new showcase iPad applications like “Elements” are in violation of this (they used Mathmatica for some of the design work) and it certainly doesn’t appear to be a problem.

    Many games use internal scripting languages like LUA to work in a higher level fashion. Those aren’t “originally written” in C so they’re out as well. Basically they’re disallowing modern software engineering practices like code generation and DSL’s (Domain Specific Languages).

    Larry O’Brien’s written some good articles about this: (http://www.knowing.net/index.php/2010/04/11/originally-written-in-vs-code-generation/ and http://www.knowing.net/index.php/2010/04/09/using-mathematica-to-generate-the-elements-ipad-app/)

    I don’t think Apple really cares about quality, I think they care about control. If quality was their biggest concern then you’d be able to sort App search results by customer rating so you’d see the best applications first. Instead they want to control it using the “Featured” list.

  14. John Friend
    April 14, 2010 at 9:42 am

    I’m not buying it. Bad developers write bad apps no matter what tools they use. Good developers write good apps no matter what tools they use. Good developers given a range of tools to choose from can do amazing things even faster. BTW, it’s the same with photographers and their tools.

    You guys at Smugmug chose to use Flash for your slideshows and get a link interface for a reason. It was the best solution you could find for the feature you wanted to build. So, how can you suddenly say that all flash is evil and Apple is to be commended for keeping it off their platforms when Smugmug is using it precisely because you could find no better option?

    I don’t buy that keeping flash off the iPad and iPhone is a customer friendly choice. Apple is making a political statement and making their customer’s sacrifice in order to make it.

  15. April 14, 2010 at 9:57 am

    I really have to disagree. Apple’s intentions are far from noble in this case. I suspect it has more to do with the hatred between Apple/Google (since Google recently penned an agreement with Adobe for Flash support in the Chrome/Android products, and a desire to kill Android as a competitive platform).

    By disallowing cross-platform apps, Apple has made it harder to target software at multiple platforms in an easy way. Fine; you argue that by doing that, the quality on the Apple device will be better. Let’s assume that your argument is true for a moment. That by using the Apple SDK, suddenly quality products are produced. From Apple’s perspective, this inhibits development on platforms that have a smaller app store (like Android). From a business perspective, the logic has typically gone like this: I create software for a platform that has the largest user base.

    If I’m using a language that I can easily port to a less-popular user base, I might be able to expend 10% more energy on the app, to get a larger return on my investment by porting the app. But, if creating my app on another platform requires a re-write, I might be less inclined to create apps for it as my investment to return ratio might be lower than I’d hoped for. If lots of developers do that, then the “other” platform dies.

    This isn’t about language agnosticism, it’s about return on investment (ROI).

    Let’s go back to your contention that the Apple SDK will result in quality apps.. Using an SDK in and of itself does NOT equal quality. It’s a logical fallacy. By requiring an SDK, all you ensure is that apps are written against the SDK. Nothing more. The APPROVAL process is where you determine quality. So, by your logic, if Apple is convinced that the SDK usage will inevitably lead to high quality apps, why have an approval process? Logical conundrum?

    But, even if we buy the argument that the SDK usage is still, on whole, better than Flash, why not enforce the SDK requirements on EA? Apple certainly doesn’t mind that EA doesn’t use the Apple SDK to port their games. Likewise, apps like Line2 (written by Sean Kovacs) are allowed into the app store, while other apps (Google Voice) are not.

    Note; Allow me to scramble down a secondary path for a moment.. Sean Kovacs wrote both Line2 and Google Voice apps. He’s posted on his blog that the two programs are virtually identical in every possible way–except for the API endpoint. One ends at Google, the other ends at Line2. Apple approved Line2’s app. Apple battled the FTC on the Google Voice app. Let me reiterate; they are the SAME app–just linked to two different companies. One’s approved, one’s not. My point? Apple has a track record of inconsistent decisions.

    Signal to Noise Ratio.. This is hard to dispute. There’s a LOT of garbage apps (although, I can’t help but to notice that you’re helping to prove me point here.. SDK does NOT equal good apps). But, less choice is NEVER good for the consumer. SmugMug itself is arguably a better website because of competitive forces. What REALLY needs to change is not “less apps”, but a better system for indexing, searching and finding apps. Apple took the path-of-least-resistance by adding the app store to an existing (iTunes) framework. It’s not ideal. There’s no way to see star-ratings on the desktop iTunes when browsing. But you can on the iPhone. Sorting is archaic at best, there exists no way to ‘test’ apps before purchase, etc.. The app store is a disaster. But, Apple wont fix the actual problem–they’ll insist that the symptoms are the REAL problem. That allowing Flash apps in the store would somehow make an already horrible UI into something even worse? I don’t buy it.

    Now, you say it’s “Good for Adobe”. Honestly, it’s not. Adobe spent a LOT of time creating a iDevice packager. Apple waited until DAYS before the CS5 release to announce the license change. This wasn’t pure happenstance; Apple leaves very little to “chance”. Apple did this in exactly the way Apple wanted to. They intended to cause a huge problem for Adobe, and they did.

    Apple is showing its true colors: Apple wants to control–not cooperate. They want to dominate–not collaborate. Apple started as an idealistic company. Using images from the book 1984 to sell Macs. Unfortunately, instead of being the athletic woman with the sledgehammer, Apple is now the disembodied head on the large screen. They’ve decided that I should be protected at any and all costs. But, in so doing, they’ve turned into big-brother themselves.

    It’s a pity; Apple does make nice products–it’s just too bad that they’re evil.

  16. April 14, 2010 at 10:15 am

    I bet this policy has nothing to do with user experience.

    Apple wants to make apps and developers the commodity and keep the value in their platform like Microsoft was able to do with Windows and Office for so many years. This is why companies build SDK’s and publish public API’s (for us web folk). Once a platform becomes the monopoly and 3rd party developers create significant value in software for a specific platform it is very difficult to switch to another.

    However, Microsoft tried to hold on to their Windows/Office platform stranglehold for way too long and missed the boat on the web. Maybe Apple will fare better in future platform shifts.

  17. toby
    April 14, 2010 at 10:22 am

    I can’t really argue with any of the points you’ve made. As someone who uses Linux as my full-time development and personal use machine, I am right there with you in wanting Flash to die.

    But the way Apple pulled this off was cowardly and unnecessarily hostile. Allowing Adobe to spend the time and resources to build this tool, and then publicize it for a year beforehand, only to have Apple pull the rug out a few days before was despicable.

    To me, this only underscores the danger as a developer in building apps for an utterly closed platform. If you think any developer is immune from Apple and Jobs’s whims then you’re sorely mistaken. We’ve seen time and time again how Apple screws over whomever it wants and developers look the other way because they think it can’t happen to them.

    So while I’m very glad to see Apple take this stance, it also reinforces my desire as a developer to avoid the iPhone like the plague.

    The thing I really don’t understand about all of this is why on earth Adobe doesn’t simply open-source the Flash player. Then Apple, Linux distros, and other platform makers can take it and fix it for their platform, and Adobe could keep selling CS licenses.

    Just like Sun and Java; they held such a tight control on their precious platform for so long that by the time they finally open-sourced it, it already had far less relevance than it once did.

  18. April 14, 2010 at 10:22 am

    I agree with you that cross platform frameworks are bad, and don’t mind that Apple banned them, but what Apple did went much further than that. They strictly banned people from creating development environments which operate against their own apis. For example, Novel’s product MonoTouch is seemingly banned even though it produced applications which are effectively native iPhone applications. Indistinguishable from native apps. All that Novel did was allow developers to leverage C# in order to interop with Cocoa Touch, which I still have a hard time understanding why they would want to stop this. If someone wants to write applications which operate using all of the native APIs, and which look and operate like native apps, then who cares what language they are writing it in?

  19. Andrew Lusk
    April 14, 2010 at 10:28 am

    Don, I think you’re confusing 3rd-party iphone tools with ‘write-once-run-anywhere.’ You can’t build anything with MonoTouch except iphone or ipad apps.

  20. April 14, 2010 at 10:51 am

    There are those that get it, and those that don’t.

    Don gets it. That’s fabulous.

    Tons of other people don’t. That’s *also* fabulous.

    Not only is 3.3.1 good news all round, it’s especially good news for developers like me. I was already pretty much convinced by anecdotal evidence (mainly from companies looking to hire me) that most of the iPhone devs out there are useless, but now I have the additional assurance that a large percentage of them are clueless as well and will never progress from their currently useless state.

    • April 14, 2010 at 10:57 am

      I’m sorry, did you really just say that you’ll benefit because Apple locked other developers out? Lock enough out and you’ll end up with decreased market share. So, you’ll be the BEST ice-chest manufacturer in a world that buys electric Freezers only. Good for you.

  21. April 14, 2010 at 11:08 am

    “The last thing we need is watered down apps built for the lowest common denominator.” – Don, that is EXACTLY what the iPad device is. It’s taking the freedom of choice away from the individual and dictating the experience for the “lowest common denominator.” I’m speaking from an end-user perspective, because I am not a programmer by trade. Also note, I was NOT an Apple hater until the recent year when they started acting in these ways. I was considering an Apple notebook or iMac for a long time. I’ve owned Apple notebooks before. I did choose the Droid over the iPhone primarily for these reasons, although AT&T was the primary reason I never purchased an iPhone before. I would have had it been on Verizon, but I do love my Droid.

    Again, I think “plugins” for browsers need to die. I do believe in HTML5, but it is not “today”. It will be, but not tomorrow. There are still issues that need tob e resolved and Apple’s actions have nothing to do with getting them done faster. The issues have been there for some time. But until that time, it’s very short sighted to the end-user to make sites un-usable for them due to Flash.

    I can honestly say I’ve never had a single problem with Flash in the last couple of years on the Windows Platform. However, I’ve had numerous problems with poorly executed JavaScript and other scripting on web pages themselves. Heck, just look at the Facebook chat function!

    The argument about ‘standards’ is great, but is Apple going to then stop supporting H.264 and the use of Quicktime? Those are not “standards”. How about untying Quicktime from iTunes and using a “standard” format? Or how about just making iTunes work properly on Windows? Hmm.. Apple iTunes is horrible on Windows, Flash is horrible on Safari… maybe it’s APPLE that needs to work on their programming and engineering.

    I’m a big boy, I don’t need to be spoon fed and I certainly don’t want to download an App for every specific page I want to visit that use to contain Flash! The only thing missing with the sale of the iPad is an Apple Bib, sippy cup, pacifier, and rubberized spoon with Steve’s face on the handle. 😉

  22. April 14, 2010 at 11:27 am

    This post and comments (especially the comments) have made by geek week…

  23. Isaac
    April 14, 2010 at 12:23 pm

    For me the main issue is this: both Apple and its products’ fans are touting iPortables as a revolution in general purpose computing, when they’re really revolutionary portable closed-platform computing appliances.

    If an iPhone or iPad are really general purpose computers, why does it matter what language I write my apps in? If I created environments like Hypercard or LOGO for children to create apps would they be “bad developers” that should be “weeded out”? Of course not. Unfortunately developers of app creation environments will have to “go build somewhere else” which will make things like this impossible for iPortables.

    Would you buy a personal computer for yourself or server for SmugMug with the following qualities?

    * Software can only be written in a specific list of languages
    * Permission must be obtained from a central authority before software can be published
    * Software can only be downloaded/installed from said central authority
    * Said central authority can remotely disable apps on your personal device they later deem inappropriate

    Sounds like a lousy ecosystem for a general purpose computer, doesn’t it? If I have a laptop or server I want to do whatever I want with it, and I think most people would agree. It’s curious that peoples’ desire for computing freedom ends once a device is flat and fits in their hand.

    I think if Apple, or at least its technically savvy fans, would admit that the iPortables ecosystem is closed and that the devices are appliances then 3.3.1 wouldn’t be as big of a deal; it would simply be seen as a side effect of a centrally controlled marketplace. But when people such as myself both hear, “Revolution in computing!” and, “Centrally controlled marketplace with limited development freedom!” in the same speech it’s never going to sit well.

    Apple absolutely redefined the standard for the industrial design and user interface of handheld devices, but I can only hope that it’s not truly a revolution in computing itself; ironically that computing world would turn in to the one depicted in their 1984 commercial.

  24. brad
    April 14, 2010 at 12:32 pm

    i disagree that developers are language agnostic. being multi-language is not the same as being indifferent.

    dealing with dull tools is something we must do from time to time, but not by choice. good developers know what tools are sharp. they will migrate to those tools and prefer them.

    its interesting that two of the languages in apple’s approved set, c and c++, are the two most dangerous high(er)-level languages to use…both from the perspective of the novice (shoot your own foot off) and the expert (can used to exploit systems by providing low-level features)

  25. April 14, 2010 at 1:23 pm

    Hi Don,

    I liked what you had to say and generally agree with you for the most part. However there are few things to consider which I think might give more motivation to what apple did and why they did it.

    I agree that Xcode is first rate. Going back to it’s roots in NeXTSTEP in the late 80s, early 90s, it’s always been a treat to use. At the end of the day people might take issue with Objective-C but it’s not like XCode is only about Objective-C.. after all C and C++ are supported and it’s not like Apple hasn’t ever in the past evolved their language support. It’s not like Objective-C is all that far from C anyway. It’s not like you get a choice what language one might use for Linux kernel development.

    But one thing I think Xcode does and I’ll say I don’t know it for sure but I am fairly sure that Apple has hooks in Xcode such that when an app is built for submission there’s extra stuff there that apple can analyze and put into their own internal tools for analysis. Apple DEFINITELY wants to be known for having a platform that doesn’t have malware. For business or at home, in a world of Windoze botnets knowing you can have a device where I don’t have to worry about Plants vs Zombies doing something evil on my corp environment or home environment besides suck hours out of my life is deeply significant.

    I think this is why tools which bypass Xcode are and SHOULD be banned. Mentioned in the 37signals piece, was one of my favored environments, Unity 3D a 3D game engine. Mere mortals will never build a 3D game engine, that’s really something you want off the shelf, if you’re an indy game developer. But Unity outputs into XCode, ergo I doubt they’ll have a problem, making the 37 signals piece over blown. Time will tell.

    What’s really nice is in the 3.3.1 drama has been a discussion in the Unity community that maybe Unity should have utilized Objective-C as their language instead of C# or Javascript. The thought being, (shocker) then devs would have had quicker access to native iPhone OS APIs when they are introduced instead of waiting for Unity Technologies to update their tools.

    Life will go on. Developers will continue to develop for the iPad and iPhone as well as other Apple devices. Could the roll out about the 3.3.1 change and what it means have been a handled a little better? Sure.

    Keep up the great work, love SmugMug, you guys are first rate!

    Tom

  26. April 14, 2010 at 2:50 pm

    I’m not a developer so my opinion is certainly limited. But in my experience with Apple products, they really do take away a lot of your freedom of choice. They say their motto is “think different” but what they really mean is “think like us.” Same reason why I jailbreak my iPhone.

  27. Professor Opinion
    April 14, 2010 at 3:42 pm

    So is Smug Mug going to disallow photos taken with point and shoots? They really just let anyone take a photo, you know? It destroys the signal to noise ratio with all these amateur photos. There was never a good photo taken with a point and shoot – I challenge you to show me just one! We should all get behind a single superior technology like SLR. Think about how much better the web will look, and how much better everyone’s photos will look. Even the point and shoot camera makers will be better off when they’ve moved on to only producing SLRs. It just eats me up knowing there are all these people running with point and shoots thinking they know ANYTHING about photography!

  28. Jase
    April 15, 2010 at 3:29 am

    Why is everyone so hung up on “closed” systems?
    For most people their car is a closed system and they’re happy about that! Who wants to have to dissect a modern day engine when it won’t start? No? of course you just ring up the road side assist and you’re happy to have them fix it.

    Even better is getting the car company to manufacturer something so good that you don’t NEED to get under the hood to tinker!

    Why is that such an issue with your computing platform?

    You have freedom of choice to choose the car that meets your requirements from the manufacturer that you want to purchase from. Your requirements may change over the years and you may have different requirements 1 week of the year – for which you can rent. Computing? again same deal – the analogy works.

    I may not have all the different configuration options you may have in a custom linux system (I wouldn’t know for sure), but i don’t WANT to have them either!

    Anyway this is starting to rant – but essentially I’ve bought in to the environment and it suits my requirements perfectly and if Apple feel the need to make some restrictions to ensure that my, the customer!, expectations are met then I’m happy. They’ve been right so far…

    If however you find that the ecosystem is no longer meeting your demands no one is locking you into staying with them.

    • John Friend
      April 15, 2010 at 7:18 am

      If you are buying an iPad as a closed system and never expect to put anything else on it besides what it comes pre-installed with, then you can compare it to your car.

      But, the majority of people buying an iPad plan to run other apps on it and it is that app ecosystem that is influenced/controlled by how open or closed the environment is. So, unless you acquire lots of 3rd party apps for your car or you never plan on acquiring one for your iPad, the analogy with a car doesn’t really work.

    • April 15, 2010 at 7:57 am

      Manufacturing is a great analogy to software! But you’re forgetting about the thousands of open standards used in cars down to things like thread width and a little thing called interchangeable parts that allow those manufacturers to drive down costs.

      This is not a move by Apple to provide a better user experience. It is vendor lock-in to keep control in the marketplace and make sure 3rd party developers remain a commodity.

    • toby
      April 15, 2010 at 10:30 am

      Sorry but your analogy stinks. A car is not a closed system. Just because you personally don’t need to open up your engine doesn’t mean that Ford doesn’t allow it. There are plenty of auto tinkerers our there who do whatever they want to their cars, and there are plenty of aftermarket parts available that people customize their cars with. Sure, Ford would love it if you bought all your parts from them but they don’t actively go after users who do otherwise or companies that make money selling “non-approved” parts. There isn’t a single part of my car that I couldn’t switch out if I wanted to.

      Even if your point was valid, my reasons and priorities for choosing a car vs. a smartphone are completely different. If you can’t make your point without resorting to a tired old car analogy then it’s probably not a very good point to begin with.

      Sure, customers are free to choose whether they use an open or closed platform and many choose the latter. That’s fine. But as a developer, I will never write apps for a closed platform because there is absolutely nothing to stop Apple from deciding at some point in the future that my priorities don’t align with theirs, and shutting me out as a result.

      I’m not gonna let that happen to me, and I have no sympathy for developers who do get screwed by Apple. We’ve all heard the horror stories of dev shops writing iPhone apps, even ones that are fully compliant with their developer terms, and having them get hung up in approval limbo. As much as I despise Jobs for pulling such a cowardly move, Adobe have no one to blame but themselves for investing so much in a closed platform.

    • April 15, 2010 at 10:38 am

      Jase.. Sorry.. The car analogy is just plain wrong. I drive a Honda Accord. I’ve modded it with iPhone integration, a parrot car-kit, and K&N air-intake. None required the approval of Honda to install, none required a “special” way to make it, etc.. Just because YOU don’t want to do that, doesn’t mean that I should be prevented from doing it.

  29. April 15, 2010 at 7:11 am

    Shashikant :

    Dan,

    I can create jar on Windows and run them on Linux. Does that qualify as “write once run anywhere”

    Sure it is. And despite being around, and well adopted, for years, I can’t think of a single good Java application, let alone a great one. Can you?

    • Anand S
      April 15, 2010 at 7:17 am

      In the Java world, RubyMine, IntelliJ Idea, both from Jetbrains. RubyMine is actually way better than TextMate for Ruby development.

      If the adobe air world as x platform – killer air apps I use include Balsamiq and TweetDeck, not to mention Google analytics, Twhirl, AirPress, all of which I have either bought or installed.

      I use RubyMine a lot over Textmate for my work, as my projects grow and I need to do lot more refactoring and things like “Find Usages” often, particularly with a dynamic language like Ruby.

      TweetDeck is my preferred app for twitter on the desktop. Balsamiq is the single killer app I have used in a long time for prototyping.

      Air rocks – and it works very well across platforms.

    • April 15, 2010 at 7:58 am
    • April 15, 2010 at 8:34 am

      Also, you’re looking at this with ‘consumer products’ blinders on. What about the plethora of custom business software written in Java, .NET, etc? It seems short sighted of Apple to leave these, the majority of developers, out of the running. Companies use high level, cross platform, languages because of developer productivity and added business value, not because they can create great consumer level products with them.

    • Anand S
      April 15, 2010 at 10:19 am

      What about Handbrake which is cross platform as well?

    • April 17, 2010 at 6:36 am

      Seems ironic/funny to me that SmugMug’s default in-browser uploader is a crappy signed Java applet. I hate Java on Windows. It’s constantly wanting to update, check for updates, … bleh.

  30. Ken
    April 15, 2010 at 9:58 am

    Don–just to reiterate what others have said–This is a bad policy. Let’s take your post point-by-point:

    GOOD FOR END USERS
    ==================
    Ummm…no. Having more good apps is what is good for end users. This policy speaks nothing about how good an app is, only what is used to develop it. To an end user, an excellent app developed with MonoTouch is preferable to a crappy app written in the official iPhone SDK.

    “Google is proud to announce that v3.3.1 of its search engine now detects and blacklists all websites not written with DreamWeaver. All of those pesky, obviously low quality websites will no longer pollute our search results.”

    The low signal-to-noise ratio of the app store is Apple’s problem to fix, not developers. There are many things they could do. I’m sure you could come up with a list if you thought about it. Just one option that would be good for users would be to make the better apps more discoverable and the worst apps less discoverable.

    GOOD FOR THE WEB
    ================
    This section is mostly an anti-flash rant which gets a lot of nods of agreement from me. Flash was a bridge technology that allowed many things to happen until web standards caught up and browsers sped up. It was good for that, but it’s time is over. I run Flashblock.

    However, it is a stretch to say that just because you can’t cross-compile an app to run on the iPhone that this is a benefit to the web. It just isn’t. The example you provide has nothing to do with app development, just web development.

    GOOD FOR “GOOD” DEVELOPERS
    ==========================
    The first part of your third paragraph hurts your argument: “good developers love great toolsets and great platforms.” I agree with this, so why not allow the best toolset to win. If MonoTouch, for example, is better than the official Apple SDK, a “good” developer would want to use it and that is specifically disallowed by this change.

    Your cross-platform argument has more credibility, but that doesn’t mean there aren’t good cross-platform apps. Heck, developers want to be able to use cross-platform libraries, but this doesn’t allow it, unless the library happens to be written in Objective-C (fat chance!). Mobile Safari uses WebKit, which uses C++ originally from another platform. Why can’t I?

    GOOD FOR APPLE
    ==============
    I don’t know if it is good for Apple or not. However, your argument here is that you’ve now shown how it is better for users, developers, and app quality. See above for a response.

    GOOD FOR ADOBE
    ==============
    If this comment hasn’t already made it clear–I don’t care whether it is good for Adobe or not, so I’m not going to bother responding to this section. I don’t care if Flash dies.

    Heck, I don’t really even care if it is good for Apple. I *do* care about whether it is good for developers because that has a very direct relationship to app quality and hence affects end users.

    All of that said, I do understand that it’s Apple’s party and they can choose who’s invited, but that doesn’t mean this is a good choice for us end users.

  31. Anand S
    April 15, 2010 at 10:12 am

    Don

    I read your update as well. Some more thoughts. I am a (former) fan boy. In normal course, I would have bought an iPad on day #1, without the stunts apple pulled this time. Now I really have to think hard before buying another apple product.

    1) If you apply the same logic (no cross compilers, no intermediate layers) to OSX, that rules out Lightroom and Photoshop as well (as well as a lot of the s/w from big companies that do more than one OS). Photoshop GUI is nowhere near a true OSX app, so applying this logic, it shouldn’t be installable on OSX. Heck, the only reason I bought the quad core iMac last month was to install PS CS5.

    In that case, what is the solution? All of us use Aperture 3 and Pixelmator? Are you ready for that?

    Most companies, particularly extremely small ones want to reach a lot of customers across different platforms – you know that better than anyone else. Imagine Balsamiq, they could write a native app for windows and for mac or linux, but for a one person company, he picked the tool that best fit him – adobe air. Is it sub-optimal? Sure. Does it provide value to customers everywhere? Absolutely?

    2) Based on my personal experience, I started a small startup 2 years ago. I am the only developer in the company working full time right now. My app has had a iUI based iphone GUI for a long time. I was excited by the iPhone OS and started to work on an app. I wanted to optimize my effort across platforms, so I was evaluating Lua and had a prototype done and ready. My app doesn’t do anything graphics intensive or resource intensive, so my app written in Lua, even though sub-optimal would have worked just fine in both Android and iPhone platforms.

    Note that this was not absolutely needed for my startup. This is something a developer doing something out of my passion and interest. If my company depended on an iPhone app, of course I would spend more time and effort using Obj C and the native XCode libraries.

    A lot of the developers at this stage do this out of curiosity and passion – not money driven. We use the right tool that gives us the most bang for the buck.

    This clause rules out my company using Lua. I will never have an iPhone app – and there is no business reason to spend the time to write one according to apple’s rules.

    Now, what you see to argue is the apps developers like me generate are “noise” and we should go away. We probably would go away. Particularly those driven by passion and interest to work on these skunkwork projects on weekends, we will go away to other open platforms.

    Would it hurt apple? Who knows? I am not old enough to realize why they died the first time. But if this experience is any indication, hostility to developers could be a reason.

    May be they don’t care anymore. They have enough app traction right now they probably wish small developers go away and big dedicated iPhone app corporations take over.

    3) There are other serious clauses in that agreement. That agreement effectively makes an app like FourSquare illegal since FS is not a an app intended to serve location based deals, but is a “check-in” app and LB deals are a side effect (loopt etc) and this agreement makes it illegal to do that, unless of course you use iAd.

    What I see is a company getting hostile with its developers who they think are not needed any more or are not “pure” anymore. What I see is a monopolistic company flexing its muscles.

    I dislike what I see. It would take a lot of things to change for me to buy another apple product again. To recommend an apple product to rest of the family (which we fanboys did very well for the past 7-8 years).

  32. Josh F
    April 16, 2010 at 9:04 am

    Don-

    Would you ever dream of telling photographers that, to use Smug Mug, they must only use Nikon hardware and only process using GIMP on Linux? I could understand if you specified a file format and said “we will only host [format]”, but I doubt you would think it beneficial to force a particular toolchain to generate that format. That’s what 3.3.1 is doing.

    Yes, Flash Player sucks, but restricting all dev tools based on 1 bad client app is a very draconian way to do business. Apple is free to make people adhere to their rules on their platform, I’m just surprised to see you supporting it.

  33. apple hateboy
    April 30, 2010 at 12:40 pm

    Crosscompilation has nothing to do with neither the crashing or the performance of the runtime. And honestly f#ck the HTML video, it’s worthless without a codec (thanks to Apple among others).

    Closed walled gardens are not good for the people I tend to identify as good developers. Good developers like openess and that’s certainly not what Apple is providing.

  1. April 15, 2010 at 4:07 pm
  2. April 16, 2010 at 11:17 am
  3. April 21, 2010 at 7:45 am
  4. April 27, 2010 at 1:20 pm
Comments are closed.