Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Iphone Programming Apple Your Rights Online

Steve Jobs Weighs In On iPhone Programming Language Mandate 711

Dotnaught writes "Greg Slepak, founder of software company Tao Effect, wrote Apple CEO Steve Jobs to complain about Apple's mandate that iPhone applications be originally written in C/C++/Objective-C. Job's response was to endorse a post by John Gruber on the Daring Fireball blog. Jobs called it 'very insightful,' suggesting Gruber's prediction that third-party iPhone development tools are out might be right. Jobs sent a second reply that also doesn't bode well for third-party iPhone development tools: 'We've been there before, and intermediate layers between the platform and the developer ultimately produces sub-standard apps and hinders the progress of the platform.'"
This discussion has been archived. No new comments can be posted.

Steve Jobs Weighs In On iPhone Programming Language Mandate

Comments Filter:
  • by bcmm ( 768152 ) on Sunday April 11, 2010 @08:16AM (#31806934)
    By restricting the use of abstraction layers, they want to make devs choose between writing their app for the iPhone or for Android, it would seem (or, of course, writing it twice).

    Of course, the real choice is "write for iPhone, or write for every other platform". I hope developers are bright enough to see where this is going.
  • That's only because Flash is strapped with new features that really don't fit well with the medium, although it has helped bring streaming video to the net (still doesn't make it a proper fit). Stuff like Neurotically Yours and badgers, otoh, are a perfect fit for the medium.

    (Semi)Complex games and full streaming HD video? Not so much.

  • by WhipItGood ( 679579 ) on Sunday April 11, 2010 @08:25AM (#31806974)
    As if the Microsoft monopoly wasn't bad enough in the 90's, now we get a modern-day Apple one that makes Microsoft pale in comparison. As Apple gains market share (and they are), this type of attitude is 180 degrees away from where development should be heading.
  • by PolygamousRanchKid ( 1290638 ) on Sunday April 11, 2010 @08:27AM (#31806988)

    Just like the kid in the neighborhood who owns the ball determines the rules of the game.

    You don't like it that way? The solution is simple:

    Don't play in that game, and . . .

    . . . find a different ball and game that has rules that you like.

  • by mc moss ( 1163007 ) on Sunday April 11, 2010 @08:34AM (#31807030)

    Most geeks don't, at least when it comes to the iphone. However, for most of the population, the requirements are different. They are not worried about "openness" (or Linux would have a much larger market share) but want something with a slick UI and is easy to use.

  • by je ne sais quoi ( 987177 ) on Sunday April 11, 2010 @08:34AM (#31807034)
    well that's the crux of what Gruber sees as the benefit of Apple's policy for iphone users:

    iPhone users: I can see two arguments here. On the one side, this rule should be good for quality. Cross-platform software toolkits have never -- ever -- produced top-notch native apps for Apple platforms. Not for the classic Mac OS, not for Mac OS X, and not for iPhone OS. Such apps generally have been downright crummy. On the other hand, perhaps iPhone users will be missing out on good apps that would have been released if not for this rule, but won't now. I don't think iPhone OS users are going to miss the sort of apps these cross-platform toolkits produce, though.

    Speaking as someone who has to deal with 64 bit flash on linux and has had to deal with all manner of MS enforced formats on the the mac, I completely and utterly agree with this part. Apps running using native platform tools do fairly well, cross-platform apps suck a lot of the time. You windows users have seen this too -- itunes, quicktime and safari are dogs on windows because they had to import all their own libraries. On Apple machines these are lighweight apps that are fast. On windows it just doesn't work as well. And let's face it, as nice as open software is, working well is what sells units, ideology is secondary.

  • Substandard apps? (Score:5, Insightful)

    by shadowrat ( 1069614 ) on Sunday April 11, 2010 @08:40AM (#31807062)

    intermediate layers between the platform and the developer ultimately produces sub-standard apps

    Right. That's why all those games built with engines and level editors and scripting tools always suck. C'mon apple. You have to allow unity. You can't want games but require everyone to make them from scratch.

    Afraid that cool unity game will show up on pc, wii, xbox, android, Mac, myspace? It'll be just like the 90's when the pc was gaming heaven and mac users got to play marathon for 11 years.

  • by gaspyy ( 514539 ) on Sunday April 11, 2010 @08:42AM (#31807068)

    Keep in mind that actual Flash apps written by CS5 beta testers have been approved in Apple's app store in the past as well as many games written with Unity3D, so it's not like performance is a problem.

    Since every app is checked against objective (and subjective) criterias, it would have been OK to just reject poorly written applications.

    Forcing me to use a specific programming language is insane. Imagine Microsoft demanding all windows apps to be written only in C# and compiled only with Visual Studio. It would be an outrage. But hey, it's Steve Jobs, the Big Brother himself, and he knows what's best for us, right?

    Also, the timing was devious - on Friday, just before the Monday's official release of Adobe's CS5, effectively giving them no time to react. I was never a big fan of Adobe (especially before the Macromedia acquisition - their corporate culture started to change afterwards) but this is simply Steve Jobs being a big dick.

    Finally, I know that many /.-ers are against Flash. Keep in mind however that this move goes well beyond Flash, affecting other tools and frameworks. If successful, this move will lead to more and more closed ecosystems (from other vendors as well). Today's Apple makes Microsoft look like saints.

  • by diegocg ( 1680514 ) on Sunday April 11, 2010 @08:43AM (#31807076)

    It's horrible. I'd like my framework methods to b less than 30 characters long, please. Sorry to promote MS here, but I happen to like method names like OnInit and OnLoad.

    So those reasons (and the MVC pattern) are the strongest you have to think that Cocoa is "god-awful"?

  • And none of that was meant for flash. It was meant to be a way to provide animated effects to a website. It wasn't meant to be the entire website (many, many issues there to include no ability to deep link). Just because you can do something doesn't mean you should. Phones aren't gaming consoles. Yet they are used as one now. Does that make games a good fit for phones? No, it just means you can do it. I didn't say the games weren't good. I said they aren't a good fit for the medium (which is poorly supported on any non-Windows platform).

    All I see is you making my point for me. "Flash supports this and flash supports that." Big whoop. That's like my above example of the phone as a gaming platform. Sure you can play games on it, but seriously. Why would you? Controls are a pain (and really not any better with full qwerty keyboards) and the screen size, even for something like the iPhone or Android, is TINY. What is a phone good for? Making phone calls and storing numbers. Period. Just because phones have tried to expand past that doesn't make that a good decision, just a popular one.

    I'm all about expanding and moving beyond limitations, but Flash, at it's base, is an over-glorified animation program just like the modern cell phone is at it's base an over-glorified communications device.

    You want HD video? Use a proper video codec. You want to play games? Use a proper platform (PC or dedicated console). You want some cute animations that turn into viral memes? Use Flash all you want. Want to make phone calls from anywhere? Get a cell phone.

  • by internet-redstar ( 552612 ) on Sunday April 11, 2010 @08:47AM (#31807112) Homepage
    I think the choices Steve is making are very clear: the choice is: MacOS or iPhoneOS. Light or Dark. It is clear he's made the choice for an era of darkness... sadly enough it will only make the Mac platform less popular amongst techies who where the primary adopters after MacOS X.

    And the economics of a closed fully controlled platform, have been in Steve's dreams since the seventies. Luckily we all know it will ultimately utterly fail, as so many closed platforms in the past. It will take a while. It might be hard for hackers such as us, but we will prevail! Sad to see Apple go down like this, was a big fan, contributor, promotor, book writer, journalist and so on for years.

    I am really disappointed in Steve. At least Google tries a little bit to 'do no evil', Steve makes beautiful things, but with a very bitter taste! Facebook group: iPad is an attack on our freedom [facebook.com]

  • by cbreak ( 1575875 ) on Sunday April 11, 2010 @08:51AM (#31807132)
    I happen to like Objective-C and the Cocoa framework. It's method names are quite descriptive and don't leave much guesswork on what they do. Incidentally, there are short method names too for things that are easy to describe in short names. You don't have to use the MVC pattern if you don't want to. It's just more convenient to work with API the way it is designed to be used.
  • by bondsbw ( 888959 ) on Sunday April 11, 2010 @08:54AM (#31807154)

    As Apple gains market share (and they are), this type of attitude is 180 degrees away from where development should be heading.

    I highlighted "market" on purpose. Your statement assumes that Apple's target market is the one you think it is... which I assume is general personal computing. But I doubt that's the case. Think of it this way... game consoles have a tradition of being locked down. Many of them through time have allowed developers into their ecosystem only if they follow rules that, even compared with Apple's standards, seem locked down. (I know this isn't true of all... just a generalization.)

    Apple has made it clear that they aren't after an expanded role into existing markets. They claim to have entered a new, non-traditional market, and with that the rules have changed; take it or leave it.

    (As an aside, I would personally prefer they be more open as well... but I'm not Steve, so what I say doesn't go.)

  • by bheer ( 633842 ) <rbheer AT gmail DOT com> on Sunday April 11, 2010 @08:55AM (#31807162)

    You must've not been check the stock markets lately, these days AAPL is almost as big as MSFT and gaining fast [yfrog.com].

    (via [wolframalpha.com])

  • by cbreak ( 1575875 ) on Sunday April 11, 2010 @08:56AM (#31807172)
    Have you ever used flash? It's slow as hell, shutters on pal resolution movies even, and often uses 100% of the CPU Time of one of my cores in my 8 Core Mac Pro. WHEN IDLE! The flash platform is a pile of CPU eating crap, I can't imagine how anyone would use that voluntarily. On an iPhone it'd probably eat away all battery power within less than an hour.
  • by cfulmer ( 3166 ) on Sunday April 11, 2010 @09:01AM (#31807204) Journal
    It seems to me that this is anti-competitive. They're using the iPhone's market dominance to increase the costs of producing applications on other platforms. And, that's likely to raise an antitrust lawsuit. If Apple is so concerned about quality of software being produced, they already have a mechanism to deal with it -- the app store review process.
  • by Goaway ( 82658 ) on Sunday April 11, 2010 @09:01AM (#31807208) Homepage

    (or, of course, writing it twice)

    This is the one. He wants apps written for the iPhone, not apps that try to shoehorn some kind of cross-platform abstraction on top of the iPhone, because that usually sucks, and (at least in his eyes) it makes the iPhone look bad if the apps look bad.

    How many times do you hear gamers complain that a game is a crappy port because it is not properly written for the platform it is on, but instead tries squeeze in the functionality of some other platform? That is the exact thing he doesn't want on his platform.

  • by Runaway1956 ( 1322357 ) on Sunday April 11, 2010 @09:04AM (#31807224) Homepage Journal

    Oh, please. If Apple had 90+ % of the market, then your statement might make sense. The fact is, they don't, and they aren't likely to.

    I really can't see that the requirement is all that restrictive. How many real programmers are unable to program in one of the three languages? Ahhh - ah - ahhh! I said "real programmers", not some Java hacker, or Flash hacker, or whatever.

    Flash for example - it's a resource hog that runs like a two legged dog even on powerful machines. Who the hell really WANTS it on a portable platform like an iPhone? At best, people will accept it because it is so ubiquitous. No one WANTS it!

  • by cbreak ( 1575875 ) on Sunday April 11, 2010 @09:06AM (#31807240)
    I doubt there are many people in "dev base" who are affected by that. After all, for a long time, the mandated tools were the only ones that were able to create applications, so most of the developers are already using them.
  • by cbreak ( 1575875 ) on Sunday April 11, 2010 @09:11AM (#31807264)
    How's that anti-competitive? I have to buy a Windows PC to develop for the XBox too... It's just common sense that you have to have the platform your tools run on to use the tools.
  • by Anonymous Coward on Sunday April 11, 2010 @09:21AM (#31807326)

    You Apple supporters amaze me. Is there nothing that Jobs can do that would make you NOT defend him?

    You do realise that "I would wager that it has to do with the way that it gets compiled, if they aren't using Apple's compiler and profiler they may not be taking advantage of the APIs needed to do all that super neato app backgrounding and such." - is complete horseshit. It's technically illiterate... and is aimed entirely at the sort of gobby Apple supporters who know nothing about technology, but spout so much shit in defense of Apple's atrocious behaviour.

  • by PortHaven ( 242123 ) on Sunday April 11, 2010 @09:26AM (#31807354) Homepage

    Let's see....

    Microsoft Market Cap = $266 billion
    Apple Market Cap = $219 billion

    Seems like we're there folks....and Apple has turned out to be far worse than the 1984 commercial

  • by domukun367 ( 681095 ) on Sunday April 11, 2010 @09:35AM (#31807398)

    I'm an ex C++ developer, who has worked in Javaland for the last 5 years, or J2EE or whatever the fuck they call it now. I don't see any benefit from GC apart from barely educated Javaschool (http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html) graduates writing bloated, slow and misguided code, resulting from their complete misunderstanding of the JVM and basic memory allocation.

    I'll take boost's shared_ptr and OBJ-C's autorelease any day.

  • by cbreak ( 1575875 ) on Sunday April 11, 2010 @09:39AM (#31807422)
    Why do people always come up with that ridiculous argument? Apple provides tones of low level frameworks such as Accelerate.framework, OpenCL.framework and similar[1]. What more could you want? Running as root to renice yourself? Come on... The reason Flash sucks is because Adobe just doesn't care enough to make it not suck. [1] http://developer.apple.com/mac/library/navigation/index.html#section=Topics&topic=Performance [apple.com]
  • by Nerdfest ( 867930 ) on Sunday April 11, 2010 @09:40AM (#31807426)
    How about this ... they have an approval process, so use that to disallow sub-standard applications regardless of the language that they're written in.
  • by LarsBB ( 516200 ) on Sunday April 11, 2010 @09:49AM (#31807484) Homepage
    All modern games are written to game engines or game libraries that this rule would (does) exclude. The unreal engine, the PopCap engine and SDL all call the iPhone through an abstraction layer, which is not allowed. But, as has been pointed out elsewhere, in a strict interpretation, designing your game in sudo code is also not allowed.
  • by 99BottlesOfBeerInMyF ( 813746 ) on Sunday April 11, 2010 @09:51AM (#31807500)

    Keep in mind that actual Flash apps written by CS5 beta testers have been approved in Apple's app store in the past as well as many games written with Unity3D, so it's not like performance is a problem.

    It's not a performance problem because those apps completely suspend when not in use. This new restriction applies to iPhone OS 4.0, where they introduce multitasking for third party apps which takes advantage of halting portions of apps... unless they are cross compiled in which case the performance tricks fail.

    Since every app is checked against objective (and subjective) criterias, it would have been OK to just reject poorly written applications.

    Except in that case, you have developers making apps, submitting them, then complaining when they aren't accepted because the guidelines for creating them aren't clear. Thus, they made them very clear.

    Imagine Microsoft demanding all windows apps to be written only in C# and compiled only with Visual Studio.

    MS has a monopoly on desktop OS's, so that would be a legal issue. What if MS required Visual Studio to Write apps for the Zune, because Visual Studio was the only dev kit that took advantage of the battery saving features of the Zune when compiling?

    Also, the timing was devious - on Friday, just before the Monday's official release of Adobe's CS5, effectively giving them no time to react.

    It could be a coincidence or it could be a "screw you" to Adobe. There is certainly plenty of fighting between the two companies, with both being dicks. Adobe lost all my sympathy when they dropped the Mac version of Framemaker completely despite that group making up more than half of their install base.

    Finally, I know that many /.-ers are against Flash. Keep in mind however that this move goes well beyond Flash, affecting other tools and frameworks. If successful, this move will lead to more and more closed ecosystems (from other vendors as well).

    Flash is fighting open standards, that's why we are opposed to it. It makes no sense to oversimplify the issues because then your comparisons fall apart.

    Today's Apple makes Microsoft look like saints.

    I don't know about you, but my objection to MS has been their illegal antitrust actions that break the free market and stifle innovation and progress. What Apple is doing is not undermining the free market in any way and may in fact be promoting innovation. Will Android adopt a more granular multitasking framework in response, to provide battery hardware performance? Will they keep a more open policy for development instead? Will their actions result in more sales of Android phones because fewer apps come to the iPhone? That's competition, not anti-competitive behavior. I think you fundamentally fail to understand why what MS does is a problem or why people object to it.

  • by frdmfghtr ( 603968 ) on Sunday April 11, 2010 @09:55AM (#31807528)

    You make it sound like you are forced to develop for Apple platforms or beg for handouts on the street.

    What's forcing you to develop for the Apple platform? If you find the terms unacceptable, develop for a different platform. If the terms are that oppressive and developers abandon the platform in droves as you imply they will, the terms will be revised as appropriate.

  • by SuperKendall ( 25149 ) on Sunday April 11, 2010 @09:57AM (#31807538)

    The article summary misinterprets the core of what Gruber was arguing. He was speculating Apple didn't care so much about languages, it was more cross-platform frameworks they were after - so the subtle distinction is that systems that either converted other languages to objective-c or targeted the platform directly might be allowed. For instance, Mono for the iPhone lets you build applications in C#, but with bindings into the Cocoa frameworks.

    Unity (popular game engine) might seem like a grey area, but if Apples motivation is quality of applications you simply cannot ban game engines, sine everyone having to write an engine from scratch would lower, not raise, overall quality. If for no other reeason than the pull of the game industry game engines should be OK.

  • by Orii ( 55092 ) on Sunday April 11, 2010 @10:19AM (#31807662)

    And feel free to use your freedom of speech to argue against a policy you don't agree with, that you don't want to catch on more widely, and that you hope will be changed if enough outcry is raised.

  • by TheRaven64 ( 641858 ) on Sunday April 11, 2010 @10:41AM (#31807798) Journal
    Except that Apple ships a highly optimised H.264 CODEC as part of OS X. If they used that, instead of shipping their own, then it would be much faster. If you grab an H.264 movie and play it in QuickTime on a Mac, the CPU load is under half that of playing it in Flash. It's not that Apple doesn't provide APIs for doing it, it's that Apple doesn't provide APIs for doing it the way Adobe wants to do it, which is an entirely different complaint.
  • by salesgeek ( 263995 ) on Sunday April 11, 2010 @10:57AM (#31807912) Homepage

    Basically, hogwash. Having one language and one tool chain leads to fewer methods of being able to solve problems, and reduces the utility of your computer system. Now instead of being able to use a .5mm slot head screwdriver, all I have a big ol' sledge hammer. There really is no "computer science" basis for Apple's decision. There is a marketing reason or two, though:

    1. Eliminate cross platform development tools and lock in developers and users to your platform.
    2. Ensure you can always put out better stuff than independent software vendors by pulling a Microsoft and adding new (undocumented or unreleased) libraries to the OS and then using the libraries to produce more functional, better integrated software than ISVs can.
    3. It's easy to kill off competition or those doing things you don't like with the platform by introducing incompatibilities in system libraries.

    The rest of your post, while interesting is basically speculating that Apple will create some whiz-bang complier that will solve all of the remaining big problems in computer science. I wish Apple luck, and I hope they solve at least two or three of the big challenges.

    A note on languages: Objective-C does not make for instant parallelism as you still have to fix the giant game of whack-a-mole that goes on with shared memory and have a more effective way of communication between processes/threads/whatever you want to call 'em. Providing some metadata might help, but it's no magic bullet.

  • by salesgeek ( 263995 ) on Sunday April 11, 2010 @11:00AM (#31807926) Homepage

    This is the first time I've ever seen market saturation being bragged about as a reason to support a platform. Perhaps moving to a forest where there is some sunlight would be wise if you want to ever be more than a sapling.

  • by kegon ( 766647 ) on Sunday April 11, 2010 @11:07AM (#31807990)

    The Gruber blog highlights the Mac Kindle app built with the QT toolkit as an example of problems of cross platform libraries causing bad user experiences. He seems quite rankled by the OK button being not quite the right size and text ever so slightly clipped. This would appear to be the fault of a lazy programmer rather than "evil QT".

    I don't remember having looked closely at the OSX style guidelines but my few QT applications have the approved order of "OK" and "Cancel" and all of my elements are properly aligned and not clipped. I would hazard a guess that the native design tools do not make it impossible to make a badly designed or non-conformant GUI.

    I think Jobs has erred in highlighting 3rd party programming tools as the source of problems based on Gruber's pedanticism. The only great apps that are native have been written by the big companies that can afford to spend the extra effort on a single platform.

    We all know that in the future Adobe will give in, Flash will be "enhanced" especially for Apple products and it will immediately become absolutely vital for web browsing according to the Job's reality distortion field.

  • Irrelevant. (Score:5, Insightful)

    by SanityInAnarchy ( 655584 ) <ninja@slaphack.com> on Sunday April 11, 2010 @11:09AM (#31808018) Journal

    Does a single thing you said explain why they won't allow frameworks which compile to Objective-C?

    That's where I'm having trouble. I can see a technical reason to force people to use a single language, or at least a single runtime representation, in the same way that, say, the new Windows Mobile forces you to use .NET. I don't see any technical reason for them to care what language you originally use to produce it.

  • by boilednut ( 1245008 ) * on Sunday April 11, 2010 @11:10AM (#31808024)

    He wants apps written for the iPhone, not apps that try to shoehorn some kind of cross-platform abstraction on top of the iPhone, because that usually sucks, and (at least in his eyes) it makes the iPhone look bad if the apps look bad.

    This is a patently ridiculous generalization. Adobe Flash CS5 is a translator with associated API libraries -- similar in kind to a C compiler and the C standard library. So, an analogous argument would be that all code built with GCC sucks; and, therefore, only assembly can be used.

    I wish I could view with indifference all of the people that drink the Apple Kool-Aid; but, I fear that little choice and freedom will remain in the wake of a tide of lemmings rushing off Apple's cliff of corporate lock-in.

  • by jedidiah ( 1196 ) on Sunday April 11, 2010 @11:22AM (#31808124) Homepage

    It's up to the end users to decide where the line should be drawn.

    Forcing developers away from cross-platform frameworks won't garauntee that apps won't be crap.

    It will help discourage development for other platforms though.

    If Microsoft suddenly decided to ban likes of QT, these Apple Cult faithful would be all over Microsoft like stink on a pig. They would be the first to scream the loudest that this sort of thing is wrong and abusive.

    It's not up to Big Brother, it's up to the individual citizen.

  • by dakameleon ( 1126377 ) on Sunday April 11, 2010 @11:26AM (#31808158)

    But what about apps that don't fully use iPhone's features because it is catering for the lowest common denominator across multiple platforms?

    What?! Don't "fully use" the iPhone's features?! What on earth are you on about? Does iFart "fully use iPhone's features"?

    So what if an app doesn't "fully use iPhone features", as long as it provides adequate functionality? Consistency across devices is also laudable for the ease of transition from one platform to another. But that assumption works only in a world where competition drives innovation rather than hostility.

    It is perfectly reasonable to want fewer high-quality apps on the platform, rather than wishing for more crap apps. This just aligns with the usual Apple approach.

    Who are you to determine what is "quality"? Or for that matter, who is Apple to determine what its users will be happy with? There's plenty of junk on the App Store already, so it's not like they're making value judgements on the functionality of the apps, but are far more interested in ensuring they control the end to end process. Too much control can choke off a platform, too.

    (disclaimer: current iPhone user, increasingly disillusioned)

  • by khchung ( 462899 ) on Sunday April 11, 2010 @11:27AM (#31808166) Journal

    Is Apple actually calling iTunes for Windows for a sub-standard app? That perhaps should be banned from the platform? Apple themselves are using non-native API intermediate layers such as CoreFoundation and CoreGraphics in their implementation of iTunes for Windows.

    Yes, iTunes for Windows is a sub-standard app... for the Windows platform.

    Compared to other Windows apps (which are already not great feats of engineering), the iTunes app really sucks in many areas - slow startup, unresponsive UI whenever it is busy, non-standard UI elements, etc.

    Jobs understand very well these downsides are exactly what you get for putting an intermediate layer to help support multi-platforms - the apps will suck except possibly for the primary platform (if any) of the intermediate layer. And Apple doesn't want such apps on the iPhone, they would rather have the app not available than have a sucky one. You know, some might consider this quality control.

    As for banning, well, the platform is Windows, perhaps you should ask Microsoft if they care about sucky apps on their platform?

  • Re:Irrelevant. (Score:3, Insightful)

    by goombah99 ( 560566 ) on Sunday April 11, 2010 @11:28AM (#31808180)

    Does a single thing you said explain why they won't allow frameworks which compile to Objective-C?

    That's where I'm having trouble. I can see a technical reason to force people to use a single language, or at least a single runtime representation, in the same way that, say, the new Windows Mobile forces you to use .NET. I don't see any technical reason for them to care what language you originally use to produce it.

    I dont' have a complete answer but I can grunt out a few ideas on this.

    1)
      Consider the problem of python's global interpreter lock. it prevents parallel execution of python: most people are suprised when they discover that a multi-threaded python application excecutes only one thread at a time and so is usually slower than a single threaded python program. (yes there are exceptions, and yes there are non-standard native libs to fix this problem, but let's not get off topic).

    If you convert a python code to C, this non-parallizable global interprer lock does not go away!

    What this example shows is that even if you output something into objective-c or whatever, you can create programs that impose huge constraints on the way a code must be executed.

      2)
    consider what happens if apple implements new features. e.g. suppose they built something like openMP into objective C. What happens if the abstraction that converts one language to objective C does not use this feature. For the case I just mentioned, openMP, I could imagine that it would be fairly difficult to convert the openMP processor directives in a machine translated way that would still make sense or work. TO be specific when you convert languages you tend to replace native commands like
    for x = 1..3:
            y = 3 + x

    into function calls in the new language:

    for_loop_method(1,3, store( y*, add_objC( x*, int_long(3)) ) )

    while the simple for loop would respond to openMP very well, the second form of nested function calls would not work at all in openMP.

    thus reducing something to objective-c is not the same as natively programming in Objective-c

  • So how long until Apple creates an App Store for OS X, and forces Developers to only write Apps in Objective C, under NDA?

  • by drinkypoo ( 153816 ) <drink@hyperlogos.org> on Sunday April 11, 2010 @11:36AM (#31808250) Homepage Journal

    How many real programmers are unable to program in one of the three languages? Ahhh - ah - ahhh! I said "real programmers", not some Java hacker, or Flash hacker, or whatever.

    You're creating an arbitrary distinction here. Programmers don't suddenly become 'real' programmers at some particular level of education. A real programmer is anyone who writes real programs. You should have said 'software engineer' which would at least mean something. The simple truth is that whoever creates the apps people want to use should be able to create apps and put them in the marketplace, regardless of their supposed ability as a programmer on your arbitrary scale.

    Flash for example - it's a resource hog that runs like a two legged dog even on powerful machines. Who the hell really WANTS it on a portable platform like an iPhone? At best, people will accept it because it is so ubiquitous. No one WANTS it!

    That's pure bullshit. People want it because they want to be able to use flash apps. Who cares which is the chicken, and which is the egg, and which came first? We're here today, and have to deal with the real world in which we live, in which flash support is an important line item. Would that it were not, but it is.

  • by aristotle-dude ( 626586 ) on Sunday April 11, 2010 @11:39AM (#31808278)
    People who were putting out cookie cutter apps or games using some middleware to make their life easy will be affected by this. If this affects you in a major way for your multi-platform deployment then there is something wrong with your codebase. If you were targeting several platforms from the beginning, your core code should be C/C++ and then you should have another layer for your platform API specific hooks in the higher level project. Just keep that common code linked with relative paths to your iPhone project file and do the same for the other platforms you are targeting.

    Thin client apps should not be affected by this since you would already be coding your interfaces separately for each platform for a native look and feel and having the major grunt work done on the server.

  • by Anonymous Coward on Sunday April 11, 2010 @11:50AM (#31808342)

    It funny for a technical site, no one is trying to look at this from the technical side of things. If you look at most CROSS platform libraries, you find that they always have to go to the lowest common
    features. Most CROSS libraries do not expose the OS threading model, they implement threads them self. This is what java had in the beginning, (They used to be call green threads, I am not even sure if they are not still used under windows.) With Flash, I don't ever recall that under linux I saw multiple threads associated with it. (though it may be that nobody does threaded Flash apps, I don't
    know.) Now, with the way that Apple is implementing background threads, seem like they are relying on the way they do threading. So if a Cross Library is doing
    their own threading, or no supporting it at all, I think apple multitasking will be going out the window. So by limiting that you have to program in C/C++/OBJ-C and directly to their API they can have
    better control on how they handle background tasks, and task switching. Remember they have a limited amount of memory (In today's terms), and no place to swap changed code out, I think they are
    able to swap out the executable parts (to/from the executable). But need to keep the amount of active code in memory to a limit. With Apple's API they know all the threads that are running and
    all the memory each thread has acquired. With some CROSS API it may expose only a single thread to Apple, they have no clue what can be run in the background, they can only do the entire
    app.

    Everyone is saying Apple is saying 'Screw you to Adobe', I don't believe it, I think they are making it where they are trying to produce the best experience for the end user, and decided that CROSS
    libraries and Cross languages are just not feasible to support under the Multitasking environment. This is some of the same reasons why they banned Java. And I am sure this will ban MacRuby and
    all the other Cross languages. So as programmers, if all you know is Flash, I will say you are not a true programmer, programmers like to learn new languages all the time, so get off you but and
    learn OBJ-C, and the API.

    (FLAME ON) So, all the whiners, and Flash lovers, go play on android, all I think it can do is help Apple in the long run. When people start putting all those Flash apps on their phone and find that the
    phones start getting slower and slower as they put stuff in the background, and the iPhone keeps it's smooth performance. (FLAME OFF)

  • Comment removed (Score:3, Insightful)

    by account_deleted ( 4530225 ) on Sunday April 11, 2010 @11:58AM (#31808412)
    Comment removed based on user account deletion
  • by Anonymous Coward on Sunday April 11, 2010 @12:00PM (#31808422)

    I've worked for a company that produced a fully automated Java-to-Obj-C and Java-to-Brew translator and we've place app in the AppStore's top ten several times.

    We take the Java bytecode and generate and intermediate representation that can then be used to re-create, say, Objective-C or C++ (BREW) code (once again: we've put several apps in the top ten on the AppStore). Of course we were also shipping on BREW and Android.

    How can they detect the process is automated?

    I mean, heck... We generate frakking Objective-c SOURCE CODE.

    What can they dew? Ask us to hand over the source code and see that it hasn't been typed by a thousand monkeys?

  • by mog007 ( 677810 ) <Mog007@gm a i l . c om> on Sunday April 11, 2010 @12:19PM (#31808558)

    Having one language, so long as it's turing-complete, shouldn't give you fewer methods to solve a problem. Now, if you're locked into a single language it would probably make it difficult to find a pre-existing library that might assist you.

    I agree that there's no computer science basis for Apple's decision, but then again, Apple doesn't make their decisions based on computer science, they base them on business.

  • by jo_ham ( 604554 ) <joham999@noSpaM.gmail.com> on Sunday April 11, 2010 @12:26PM (#31808604)

    Not really. Banning Quicktime on Windows wouldn't affect Apple users at all, unless they have an iPhone on Windows. But then you were talking about some sort of "Apple Cult" who presumably wouldn't have a Windows box as the home machine for their iPhone.

    I have had first hand experience of "lazy development" - and I can understand why it was done. This is the use of the Cider wrapper to port games to OS X. I can see why some game companies go this route - it's cheaper than writing native code, but the result has universally sucked. This further enhances the stereotype that the Mac performs poorly for games (when it's the poor emulation of a windows box, with the Windows version of the game inside the wrapper causing the issue).

    Poorly cross platform code makes all of the alternative platforms look bad, except the original. It can be done right, and in the case of the iPhone we're not talking about emulation per se, but the point is similar. We know the App Store is already controlled - why is it such a surprise that a language requirement could be added? While it may be a little annoying for developers, ultimately if it makes the user experience better, it has succeeded.

    What goes on under the bonnet really doesn't concern the end user - only the final quality of the product. The PS2 was a *dog* to develop for, with a complex and difficult dev process, but the devs put up with it because the quality of the output was outstanding (for the consoles of the time).

    The iPhone is not a device created to celebrate developer freedom - it is first and foremost a consumer device, and decisions related to it will always be about the end user first. This will no doubt piss off many developers who will gnash and scream that Apple aren;t doing what *they* want them to do, but ultimately, this will not change things all that much for the bulk of the developers on the platform.

  • Rationalisation (Score:5, Insightful)

    by Dogtanian ( 588974 ) on Sunday April 11, 2010 @12:31PM (#31808654) Homepage

    Now what might be the resource use case improvement here? I'll start the speculation with this thought and leave it to others to fill in more.

    No offence, but this does smack being the thin end of a typical wedge of rationalisation that ends up justifying and "explaining" Apple's behaviour in the absense of any explanation from them.

    While I'm not accusing you (specifically) of being a fanboy necessarily, Apple's secretive nature generally benefits them when combined with their rather partisan fanbase. Say nothing concrete that can be seized upon, and let people speculate, rationalise and justify your marketing decisions.

    It's up to Apple to explain- or not- the reasoning behind what they do; if the latter, that's their choice, but we're not obliged to give them the benefit of the doubt. Sorry, but I don't believe the reasons behind the decision were technical, and I'm not going to buy a third-party's speculation masquerading as explanation.

  • by ducomputergeek ( 595742 ) on Sunday April 11, 2010 @01:11PM (#31809008)

    I think an app store for OSX would be seen as a great benefit by most end users. One place where you can go search for apps, browse for apps, read reviews, and buy & install effortlessly that is also vetted to not to be Malware/virus is something that most end users would find extremely useful.

  • Re:Old trick (Score:2, Insightful)

    by kgo ( 1741558 ) on Sunday April 11, 2010 @01:25PM (#31809130) Homepage

    To 100% certainty, no...

    Certain enough for Apple to ban an app or ask to see the source? Sure.

    For popular commercial stuff like MonoTouch, they'd just need to come up with some sort of fingerprint or signature. Presumably they're all going to have some boilerplate library code in there, MonoTouch.init_gc() or whatever...

    For homebrew stuff, they can probably still look for stuff that clearly isn't written by a human. Not sure how much a name mangling scheme would get exposed in Objective-C, but that'd be a good place to start.

  • by NormalVisual ( 565491 ) on Sunday April 11, 2010 @01:26PM (#31809138)
    Having one language, so long as it's turing-complete, shouldn't give you fewer methods to solve a problem.

    Sure it can. Compare two Turing-complete languages, identical in every way except that one supports unsigned integers and the other doesn't. Right off the bat, one offers more ways to do some things than the other.
  • by beakerMeep ( 716990 ) on Sunday April 11, 2010 @02:54PM (#31809982)
    You have been able to deep link into Flash for years. And honestly, if you think touchscreen phones are over glorified, I'm not sure why you're involving yourself in this debate at all.

    It's like you brought a big swath of your lawn up in here, laid it down, and asked everyone to get off of it.
  • Re:Irrelevant. (Score:4, Insightful)

    by shutdown -p now ( 807394 ) on Sunday April 11, 2010 @03:31PM (#31810282) Journal

    Consider the problem of python's global interpreter lock.

    Not all implementations of Python have GIL, as it's not required in any way by the spec. E.g. neither Jython nor IronPython have it. In fact, as the name itself says, it's a Global Interpreter Lock. Any hypothetical implementation of a Python-to-ObjC translator wouldn't need it.

    consider what happens if apple implements new features. e.g. suppose they built something like openMP into objective C. What happens if the abstraction that converts one language to objective C does not use this feature.

    Same thing as what happens if a programmer who write directly in Objective-C doesn't use it.

    TO be specific when you convert languages you tend to replace native commands like
    for x = 1..3:
                    y = 3 + x

    into function calls in the new language:

    for_loop_method(1,3, store( y*, add_objC( x*, int_long(3)) ) )

    If you really think that what you have just written is in any way resembling an output of a typical translator, or even valid C, please just hand in your geek card now, and stop spreading FUD on the topic on which you don't have the slightest clue.

    (Hint: C doesn't have closures, or lazily-evaluated function arguments. Your (and similar) translation of for-loop to a function is impossible.)

  • Re:Rationalisation (Score:4, Insightful)

    by shutdown -p now ( 807394 ) on Sunday April 11, 2010 @03:32PM (#31810298) Journal

    No offence, but this does smack being the thin end of a typical wedge of rationalisation that ends up justifying and "explaining" Apple's behaviour in the absense of any explanation from them.

    But there is an explanation now - that's what TFA is about. Jobs has effectively admitted that this is strictly about Apple controlling the platform, and not permitting cross-platform development.

  • by shutdown -p now ( 807394 ) on Sunday April 11, 2010 @03:58PM (#31810604) Journal

    Is this asinine? You are aware Microsoft is demanding all Windows Phone 7 apps be written in C#/Silverlight, right?

    You're wrong. There's no requirement that WP7 apps be written in C#.

    They have to be managed verifiable .NET assemblies, yes, and the API is Silverlight. However, this does not preclude anyone from writing a compiler that produces verifiable .NET assemblies (to give a few examples of what is possible - F#, IronPython, IronRuby), nor from abstracting Silverlight APIs through your own framework which also happens to be cross-platform.

  • by shutdown -p now ( 807394 ) on Sunday April 11, 2010 @04:01PM (#31810634) Journal

    This new restriction applies to iPhone OS 4.0, where they introduce multitasking for third party apps which takes advantage of halting portions of apps... unless they are cross compiled in which case the performance tricks fail.

    You have been repeatedly told (in other stories about these new restriction, by me as well as others) that it's not how iPhone OS 4 multitasking works at all. There's no "suspending of portions of apps" there. They are just suspended entirely - if they want to do any background work, they have to offload that to OS-provided daemons (which are separate processes).

    The fact that you keep ignoring all replies calling you out on your mistakes, and just posting the same tripe over and over again, leads me to conclude that mistakes aren't mistakes after all, but deliberate FUD.

  • Sorry Adobe (Score:4, Insightful)

    by Mr Bubble ( 14652 ) on Sunday April 11, 2010 @04:19PM (#31810802)

    Mac users had to settle for being locked out, shit on, and ignored for many, many years. Suddenly the servant is the master and everyone's whining about how Adobe isn't allowed to continue to foist their buggy plug in and dev tools on us anymore. Grow up. Compete. Make a decent HTML 5 animation editor that doesn't suck like all the other Mac software you've put out in the last 10 years.

  • by Mr Bubble ( 14652 ) on Sunday April 11, 2010 @04:25PM (#31810850)

    As long as it works is the key here.

    Every time Apple releases an update, a patch, or a new feature, there is a potential for cross-compiled apps to not work properly and give the user a bad experience. How long would it take Adobe to update their code and for all the cross-compiled? A week, 3 months? Maybe there will be functionality to complicated or too costly to reproduce since it won't be able to hook into a certain core service? Then the answer is never.

    Sorry, Apple has a right to ensure a good user experience. as a matter of fact, it is what has made them.

  • by Sir_Lewk ( 967686 ) <sirlewk@gCOLAmail.com minus caffeine> on Sunday April 11, 2010 @05:13PM (#31811264)

    I trust you do all of your programming in BrainFuck right?

    Face it, even if any Turing complete language can do what any other Turing complete language can do, sometimes there are write languages for the job, and sometimes there are wrong languages for the job.

  • by mdwh2 ( 535323 ) on Sunday April 11, 2010 @05:29PM (#31811400) Journal

    That's one definition, but there are others. These include a company being able to affect the terms and conditions of exchange so that the price of the product is set by the firm, rather than by market forces. The theoretical definition of literally only one supplier is not very relevant in the real world.

    Are you seriously telling me that all the courts were wrong to convict Microsoft? Why, if only Microsoft had called on you as their defence, you'd be up there, quoting from the dictionary! Why didn't they think of that?

  • by bar-agent ( 698856 ) on Sunday April 11, 2010 @06:21PM (#31811770)

    Who buys extended warranties? They are a scam when it comes to rust-proofing your car, they are a scam when it comes to your computer.

  • Re:Irrelevant. (Score:5, Insightful)

    by SanityInAnarchy ( 655584 ) <ninja@slaphack.com> on Sunday April 11, 2010 @06:32PM (#31811844) Journal

    I don't think you quite understand what Apple is doing here.

    There are essentially two ways for applications to construct the menu: either by adding own items to whatever Cocoa creates automatically (that's official blessed way) or create one from scratch.

    So you use Cocoa bindings for whatever language you actually want to use, or you compile from another language into Objective C.

    So you still haven't provided a single example of why it must be originally coded in Objective C. By analogy, Google App Engine requires that I use Python or Java, but they certainly don't prevent me from using JRuby.

    But Apple with Cocoa (and ObjC - it is the enabler of the magic)

    Yeah, clearly Cocoa couldn't work in any [sourceforge.net] other [apple.com] language [wikipedia.org]...

    So yeah, your examples don't even preclude this working in other native languages. My problem is that they're effectively saying you cannot use anything which compiles to Objective C, only Objective C itself.

    In other words, they're banning third-party preprocessors.

"A car is just a big purse on wheels." -- Johanna Reynolds

Working...