… or at least, a quote good enough to make me come out of hiding before I’ve explained why things have been so quiet around here.
John Gruber on the iPhone IDE debacle:
If you are constitutionally opposed to developing for a platform where you’re expected to follow the advice of the platform vendor, the iPhone OS is not the platform for you. It never was. It never will be.
To all the people whinging about this decision by Apple, go away. You can have your fun on Android or some other platform that supports your open development philosophy. If by some fluke Apple wind up with a such a massive majority that you’re forced to come back because all the users are here, don’t expect any sympathy from us. It will have happened because Apple’s restrictions resulted in the most consistent mobile OS experience, and users decided that’s what they want.
iPhone is a closed system, and in my opinion the overall quality of the apps available is better for it. Not that the app store is full of fantastic quality at the moment – you really need an iPod or iPhone to appreciate this, but the store has an amazing amount of crap already.
However I can see the app store really going down the toilet if they let “meta-platform” (as Gruber calls them) apps onto the store. Just look at what happens when people develop cross-platform apps for PC; you either target one primary OS and optimise your UI for it at the expense of the others, or target a general use case and suffer for having a non-native UI. Yes there are exeptions, but they are rare and most of them spend stupid amounts of time implementing multiple native UIs in their cross-platform code.
Gruber has a specific example of this:
Consider, for one example, Amazon’s Kindle clients for iPhone OS and Mac OS X. The iPhone OS Kindle app is excellent, a worthy rival in terms of experience to Apple’s own iBooks. The Mac Kindle app is a turd that doesn’t look, feel, or behave like a real Mac app. The iPhone OS Kindle app is a native iPhone app, written in Cocoa Touch. The Mac Kindle app was produced using the cross-platform Qt toolkit.
Native apps are always better; I don’t use OpenOffice more because the UI pisses me off than because iWork is cheap enough that I don’t mind paying for it. Windows is the same (I can’t stand Apple’s apps ported to Windows with Mac-style keyboard shortcuts). Once you allow cross-platform UIs to enter your computing world, life just isn’t as much fun anymore.
And I want my iPhone to be fun.
[update: A related article with an appropriate quote, this time from MacWorld].
… the develop-once-run-anywhere philosophy is something that makes more sense to bean counters and development-environment vendors than it does to platform owners and discriminating users. In the ’90s we were told that Java apps would be the future of software, because you could write them once and deploy them anywhere. As someone who used to use a Java-based Mac app on an almost daily basis, let me tell you: it was a disaster. Java apps didn’t behave like Mac apps.
April 13, 2010 at 1:37 pm
“And I want my iPhone to be fun.”
Then only buy “fun” apps for your iPhone.
The platform should have no right to decide what is Ok and for its users and what isn’t. I would understand if Apple had to do work to specifically allow something, but they decided to actively make it impossible.
The quality of a program isn’t determined by the language or environment it’s created on, it’s about the people developing it. There is already an App Store submission process, so the framework for them to simply “tick and flick” apps that are sub-par already exists.
Leave what’s “fun” to be a decision for the user not the Big Brother Apple you’re wishing for.
April 14, 2010 at 10:26 pm
Ah but no matter how crappy an app submitted to the store is, the UI tends to be above par simply because the Apple frameworks make it so easy to create good UI that’s consistent with the rest of the phone.
An app written in flash wouldn’t have iPhone UI elements because they wouldn’t make sense on something like a windows mobile environment. And the overall iPhone experience would suffer for it.
Apple appear to be taking a harder line than anyone’s ever seen before in order to force this consistent UI, and I think it will pay off for them. There’s also a rumor that something about compiling iPhone apps with Apple tools allows Apple to cut a few corners and cheat with their multitasking implementation; but I bet the UI argument is part of it too.
April 14, 2010 at 12:10 am
Whoever John Gruber is … he is not a friend of colors;-). Now I understand where all the rumor comes from.
>> R u ready for IBM<>mantra was (and remains) “Windows everywhere”. Apple doesn’t want everywhere<>”The App Store platform could turn into a long-term de facto standard platform. That’s how Microsoft became Microsoft.”< So he is voting against cross plattform into direction of Apple’s transition to “Microsoft”. Wow!!! And a defacto standard + Microsoft became Microsoft is not OS/X or IPHONE OS everywhere … The arguments given combined are inconsistent….
So I hope that one day you guys on OS/X get an error in XCode when the indentation does not fit to Apple’s rules for esthetics in coding.
And now arguments against … On Windows I run lots of applications written in Delphi … because they are easy to use, clever from the design and effectice, follow common behavoir people are used from the OS. They simply work. And there is no need for a restriction C/C++ or C#.
Everything this Gruber man said … applies to Mac OS/X too. I wonder when this restrictons comes there maybe in another way. We had similar things already in the 90s on the Apple OS.
In the end this will simply mean that people will find other ways to make business on Phone OS, because if this counts for IPAD too, this counts for any Apple device in the future.
This means your developers are bound to an ancient IDE, propretary APIs with this propretary hardware, propretary objective-c language (that was even not ignored in the past) – this reminds me of the most evil way to make developers dependent in the area of consultant ware … mhhh … but at least there you have the chance to make money and like me to get out of this … with a trallala IPHONE app no one is willing to pay money in the end in two years … mhhhh … even SAP is more open and provide a lot better IDE … interesting …
This is for sure the “Quote of the year” and the openening speach of Apple’s 2010 mega event “The pride that goes before a fail”.
April 14, 2010 at 11:12 pm
Writing a Windows app in Delphi is nothing like writing an iPhone app in flash. I love Delphi; one of my favourite windows apps is written using it. But Delphi isn’t cross platform. It uses all the Windows UI components that every other Windows-specific language does.
The argument here is that cross-platform (or “meta-platform”) applications don’t look as good as native code.
I’ll happily admit that XCode is a pretty bad IDE. I’m still trying to get my head around some of the more stupid things it does and how so many other developers appear to be using it successfully.
It is worth noting that Gruber and I are far from the only people in support of this move by Apple. Macworld has an article that brings up some more examples of previous attempts at cross-platform development and how badly they failed as good UI design on any of the platforms they support.
April 14, 2010 at 3:58 am
>>The Mac Kindle app was produced using the cross-platform Qt toolkit.
Mhhhh… the 2 things people complain about – I also don’t like buttons that are not aligned … and for sure the OK button is in the right place. 92% of the users cannot be wrong;-).
Crossplattform does not imply one GUI layout on all plattforms. But in the end this statement you refer to … QT is C/C++ … does not help… C/C++ libraries that spread in the 90s for crossplattform GUI development especially under different UNIXes … can remember Motif;-).
April 14, 2010 at 11:15 pm
I do more than remember motif, I saw shades of it every time we tested our Java application on Linux until recently
QT is, in my opinion, a Linux UI toolkit. The fact that it can run on windows and mac is merely a way to make development easy, not a way to make good cross-platform applications.
As you say cross-platform does not require one GUI for all platforms; I also mentioned in my post that there are cross-platform apps with a different GUI for different platforms (I work on one of them). But it’s a lot of effort, and there are a lot of lazy developers out there who won’t bother unless forced (through methods such as the one Apple is using).