Bravo, Apple

Finally, Apple is doing away with those arrogant upstarts who think then can write a few lines in a high level language and call it a program. Their new developer agreement requires:

3.3.1 – Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

This has a couple of good points – firstly banning stupid languages (used by those people who are not smart enough to learn c++), and secondly getting rid of translation layers. Apple has clearly put a lot of thought into their APIs, so why would anyone want to put a layer on top of them – it’s just going to make things harder to use.

Languages

There has been a lot of talk recently about compiling “foreign” languages, such as haxe, as3, javascript, java, .net based languages, into binaries that will run extremely well on the iPhone. But like all foreigners (who are responsible for all the terrorism in the world) these languages should be cleansed from all iPhones to maintain the iPhones mono-lingual purity. Putting such insidious diversity into a beautifully designed device can be shown to confuse consumers, most of whom don’t even know their device and been compromised by these so call “high level” languages.

By raising the barrier of entry, and only permitting “real” programming languages (ie, “C” based ones), Apple ensures that the quality of apps will remain at its current lofty levels. “Natural Selection” will then weed out those people who are too lazy or too stupid to learn a proper language. In fact, I think Apple has not gone far enough here and should dabble in a bit of “Intelligent Design” by requiring that all developers who wish to submit apps hold at least a 4 year degree in computer science. Just imagine a world where any kid can work out of his garage and build an application with an original language, or bit of hardware, that snubs its nose at the establishment – anarchy would ensue. Therefore, it is important that the responsible companies out there vet such potentially disruptive ideas before they can cause too much damage.

It can’t be said that Apple don’t like new langauges, after all, they championed the greatest NeXT Step in programming ever, Objective-C, it’s just that all the other languages are utter crap. Some of then do away with the beautiful square bracket, some use commas to separate function arguments and nearly all the modern ones perform “Garbage Collection”. What a joke! Apple solved this problem years ago be simply not creating garbage in the first place. Again, it is only those too lazy to learn about how to use allocation pools and correct reference counting that need anything as dirty as Garbage Collection.

The new langages, such as haxe, are so terse that you do not even know when you are using a delegate. How can anyone possibly understand that code like:
addEventListener(KeyboardEvent.KEY_DOWN, function(event) { trace(event); });
Is supposed to do? I mean where is the delegate? Where is the class that implements the UITextFieldDelegate protocol? (And why must these languages continue to call things “Interfaces” when they are clearly “Protocols” ?)

I think Apple are right to ban code generators, such as the haxe c++ backend. While these produce code that could in theory be produced by hand, the code it robotic and lacks the “soul” of hand written code. To err is human, and without the quirks introduced bu a human coding c++ we may as well hand the future over to SkyNet and let the machines run everything.

Layers and Tools

Thankfully, Apple has also done its research into programming techniques as well as programming languages. The problem with programming these days is that where are too many layers and tools to learn, and they are taking us back to a simpler times where you are “close to the metal”. Apple rightfully shuns these extra layers, and focuses only on code. Once you understand Objective-C, Interface Builder, NIB, XIB, Frameworks, .app layouts, provisioning, xml, plist, controllers, delegates, owners and outlets, then you can create pure lovely code, without any of that layering crap getting in your way.

Programmers must beware of code that essentially “lies” by pretending that the beautiful, native API actually looks like one of the ill-conceived APIs from another language. For example, why would anyone want to view a native UIView image as the practically unsable as3 “equivalent” (I use the term loosly) of BitmapData? I don’t think there is a single successful application ever written that uses this BitmapData class.

Isolating your code from the native API will cause your code to lose its identity. If you can compile it for another (obviously inferior) device then your code will become tainted by the lower class device, even it it performs identically on the Apple device. How quickly people forget that the upper class should not mingle with the lower class.

I hope Apple’s ban extends to the gzip “translation layer”. Programmers should not be using this library because it has security implications, and they should simply use the streaming classes and do the decompression in their own code. If more programmers thought like Apple, then there would be a lot fewer security holes in software.

Don’t get me started on Game Making programs. Thank god these are banned – imagine letting a non-programmer create an App. What next, Artist creating games? Don’t make me laugh.

Conclusion

Apple has made a huge stride forwards by tightening the definition of what a real developer is, and I’m looking forward to what’s next. I think they have a little way to go – for example, what about all those people using foreign editors, rather than XCode? Surely if XCode is not good enough for a developer, then that developer is not good enough for Apple. The best way I can see for them enforcing this is for them to install a “watchdog” application the the developer’s machine, and send screenshots back to Apple periodically. That way, if the developer does not conform to the coding purity required by Apple, they could be identified and sent to a camp to help them concentrate on being better programmers. Win-win, what a great idea.

135 Replies to “Bravo, Apple”

  1. Clearly, Apple didn’t go far enough. Frameworks? An IDE? Gentlemen, I ask you: what happened to the beauty of opcodes? To the dignity of ARM assembly?

    We must petition Apple to further purge the unworthy from our ranks. Henceforth only hand edited binaries should be permitted! (Or butterflies, always an acceptable substitute. As long as it’s not C-x M-c M-butterfly, which is cheating.)

  2. Nice one, so right.

    This whole farce from Apple is solely marketing driven, there’s not a single hard or software limitation. And that stinks so much.. this is the Evil google says it tries to stay away from (using legal muscle to enforce commercial monopoly, instead of leading by excellence).

    But it is sad that they have the power to do this. There’s enough stupid folk who have no idea what’s going on and just shop iTunes without thinking. So if you want to reach those you have to buy a Mac, get XCode, learn Objective-C and give up your soul.

    But hopefully in a few years there will be so much non-Apple devices that businesses can say: ‘Screw you Apple!’ because it’s not worth keeping a codebase and qualified developers for just this single development-chain, while our AS3 chain can be used to target EVERY other device and deployment scenario out there.

    I know our company (100+ ppz) wont do iPhone/iPad for the reason that it’s just not worth stepping into (and none of the programmers wants to learn Objective-C.. it’s such a horror.. I have the feeling it was invented solely to keep developers tied to Apple… )

  3. History proves Richard Stallman correct again, and should open a lot of eyes to the message of real freedom.

    Boycot Apple products and invest time in open platforms; presumably android.

  4. When I refer to some high level languages I tend not to call it programming. I don’t care what others say but I won’t call it programming, I prefer to call it scripting.
    But that’s the future of application development. When you create great high level frameworks regardless of the base language you are creating a new language, maybe you have the same syntax rules but still a new language.

    Market will tell which developers will endure. You can develop crap in Objective-C and develop great applications, secure, performant and bug free with some high level frameworks or high level languages. That’s just true. I have to agree that if you want extreme performance and security you must develop in Objective-C. Or even machine code…

    Anything else is elitism and that’s just being afraid of others taking our identity.

  5. I know how to identify a good work and yours’ a great work. I just think you don’t need to feel like that.
    There’s no need for a speech talking of weeding out developers because Apple can take it’s App Store and filter some minor applications away or even ban those.
    Other than that the App Store is just another free market of applications, using their public API.

  6. Great article! I think ‘real’ programmers make much better applications because they are l33t. Objective-C is also the best, because it is only fun to program for people with seven brains.

  7. Informative article. Thank for posting. However: “But like all foreigners (who are responsible for all the terrorism in the world) these languages should be cleansed from all iPhones to maintain the iPhones mono-lingual purity.” – was that necessary?

    If Adobe can compile AS3 that has a minimal footprint on the iPhone, is that something that Apple should care about or something that the user who downloaded it should care about? I vote user. All would be well if there was an “official” library of apps and then a third party library with a warning… no need for this close minded babble.

    And as for being “smart enough to learn C++” … Objective-C is FAR simpler than AS3. It’s not even the same arena. I am reminded of the old saying “compare apple with apples.”

    Nonetheless, I enjoyed your article.

  8. I totally agree with this post. Apple knows best so there’s no need for competition. Everybody should just think alike for once.

  9. What a crap of a post!
    Seems to life in stone age. Stupid enough to learn a delegate with a lambda expression.

  10. I think apple are just bitch slapping adobe and has nothing to do with language selection but the post was funny in a very geeky way

  11. “It is no exaggeration to regard this as the most fundamental idea in programming:
    The evaluator, which determines the meaning of expressions in a programming language,
    is just another program.” — SICP

    I guess Apple won’t be accepting any MIT grads in the future 🙁

  12. I think it’s funny that Apple makes hit, after hit, after hit. Turn industries on their heads. Absolutely PRINT money. You can barely walk into Apple Stores they are so busy.

    Yet people who have never built anything successful (many of whom aren’t even programmers) think that they know what is best for Apple.
    I think Apple has a pretty good track record of implementing the right strategy for their business. But of course everyone knows better. Right?

    Why don’t you start telling steve jobs what to do after you’ve made your first billion. Ok?

    Too funny.

  13. Pussy, *real* programmers should build their apps in assembly. Only wanna-be programmers would be using a C based language

  14. This article is definetely amongst the most ridiculous bullshit I have read in long time.

    I really hope this is somekind of joke or otherwise I really don’t understnd you at all.

  15. “When I refer to some high level languages I tend not to call it programming. I don’t care what others say but I won’t call it programming, I prefer to call it scripting.”

    I recommend you shut up, don’t make yourself look more stupid than you have already done.

  16. And by the way. If you are so against the high level programming languages, then you should use Assembly or pure machine code because even C is high level language.

  17. Requiring a computer science degree LOL. Don’t be stupid. This is NOT needed and in most cases not helpful to any real programmer.
    Programmers do not learn a thing from ‘professors’ they learn by playing around themselves, overcoming problems and experiencing the language first hand.

    I quit college because it was pointless and I’ve sold 2 startups (entirely coded by me) with 6 figures and released 4 apps.

    Stupidest thing I’ve ever read, but I agree with everything else.

  18. Pingback: Bravo, Apple
  19. For years the liberal, elitist, and homosexual communities have been praising Apple as if they were some beautiful benevolent organization.

    The truth is, they’re filthy, dirty, disgusting.

    Even Steven Jobs is an abomination. The apple-pologists say “Isn’t he a great man! He only takes $1/year salary!” In truth, it’s a scam to avoid paying Social Security taxes. By taking a $1/year salary, he pays no SS tax, collects the EITC. He makes his money paying himself in backdated stock options, for which he’s only taxed at 15%

  20. You know, really Apple should consider a 4 year Bachelor’s the very basic in considering a developer for app submissions.

    I think if Apple administered their own standardized testing they could weed out your everyday hobbyist programmers looking to just make a buck off their apps.

    While they were at it, they could also take more from the developers who create the apps. As I see it, this would just weed out the developers who pump out useful app after useful app, leaving behind just those developers who code for fun and don’t have a family to feed. After all, Apple is a big corporation so they need all the money they can get to support people like Steve Jobs.

    I know, they must make a lot off their computers, they are incredibly expensive, but their package designers are so great that Apple pays them a million dollars per pixel per package they design, and need to offset the cost of their great designers.

  21. It’s high time that we had a glorious worker’s revolution. The C and C++ proletariat need to rise up against the functional language bourgeoisie and take back the people’s platform.

  22. Um, Objective-C 2.0, you know, sometimes it kinda performs garbage collection, dude. So, that part, yeah, uh. Just sayin’. But, like, don’t shoot the messenger, man. You know, because when it’s gone, what are they going to say, are they going to say that Objective-C was a good language, that it was a kind language? Who’s going to tell them, me? Look at me — WRONG! YOU. You have to tell them.

  23. Awesome post, but next time have someone proofread it before you post. An epic post like this that will get linked to and retweeted will be taken much more seriously if it isn’t loaded with typos around every corner. But, I did like the post a lot 🙂

    Brent

  24. Don’t say banning stupid languages and then hold up C++ as a good language. Apple are just being stupid.

  25. Bravo game haxe,

    You are 100% correct on this one. Thanks for reminding me of all my favorite Qt apps. BBL, going to burn a DVD on my Mac using Adobe Encore.

  26. It took my son and I two readings of this to realize it was sarcastic. Otherwise, It read like a religious diatribe vs an engineering or software art statement.

    Business history has proven that this type of arrogant elitist attitude gets its teeth kicked in by the next company in line. Apple got it’s 2nd chance… to blow or not?

    I remember when we had to use Lisa’s and Pascal to program the first 128k Mac’s. Now that is Apple at it’s purest!

  27. There are two levels of argument here, the political (politics against flash, other frontends) and the scientific (the question of objc as a good language)

    Please dont complicate things by combining them. I worked with c++/asm and objc respectively all three have different usages and worth, it is irresponsible (and ignorant) to place one over the other.

    No, the real question is about the politics, if a company has a operating system environment do others have a right to manipulate said environment that inherently does not belong to them?

    If people do not want to learn a core language because of laziness those coders need to get replaced with real developers.

  28. Non programmers like you should be banned from blogging. You obviously have vague understanding of programming languages.

    Who are you to stay that building on top of Apple’s API is not a good idea? This is not your business, leave it to the programmer and the problem being tackled to figure out what’s needed and what is not.

    C is a real programming language, and Python is not for example? I think you are just taken by terms and have no clue what you are talking about. You enjoy ranting and getting under people’s skins by throwing terms here and there when in fact you have never been part of a serious project.

  29. We are living in a world where technology is emerging, new languages, new frameworks, new ways of coding the old code are striking to ensure the same quality code can be written in fewer lines of code. We have a bigger world, we need broader jobs, technology should not be limited, if its achieving what it can.. why end it with a full-stop? Think about the jobs that would have been out there if intermediary language translation were allowed.. java, .net, php, pearl, actionscript exclusive for iphone apps development? Think out of the box… dont just limit the technology by dictating terms not globally acceptable. Lets think from a new perspetive to evolve.. continue to innovate.. Let apple come up with a performance evaluation tool to evaluate the application performance and reject it if it doesnt work out… The notion is, developers who know one language think that they are masters and only his way of doing things is correct and definitely under estimate the capability of other developers working in a different technology. how true?

  30. As much as he’s trying not to make a point, he does make a legitimate point. Half the people writing code today are morans, they’re building houses of cards on top of someone elses house of cards and calling it an application. Its crap all around. Adobe Flash is the highest profile example of this. While a Flash “developer” (LOL) can write some flash based app, no matter how “good” he/she is, the thin will always be a resource pig and a battery drainer.

    Apple has proven again and again that people will pay for an overall quality of service that they can provide that no other hardware manufacturer can do. And if that means freaking out a bunch of pseudo-programmers in the process of protecting the quality of their design, then its a small price to pay and the overall quality of software on the iPad/iPhone will only be better for it.

    Hate on all you want. But, if you knew what you were doing, this wouldnt be such a big deal to you.

  31. When you say “Flash is the most popular game platform on the web,” it makes me wonder if you’ve ever actually seen or played a Flash-based game.

    Because they are not really games, but rather mildly animated bullshit without any sort of real business model. iPhone games have some limitations, but are orders of magnitude ahead of Flash games designed to run in a browser plugin.

    The rest of your article is just heapings of sarcasm that seem necessary to obscure the simpler truth about why Apple would be doing what it’s doing.

  32. This is quite simply the most pathetic blog i’ve ever read. That’s not the way it works… at all. I think you are some inexperienced fresh grad who’s never worked on a big project and who’s constantly farting about some 2 liner cryptic code written (only possible in highly unorthogonal and ugly languages like c++). If you really hate _high_ level languages then why don’t you try assemblers? Infact oh-so-smart kid like you should be writing directly to machine code?
    Making a correspondence between foreign languages and _foreigners_ doesn’t make up a good argument. You’r inducing racism this way. Why? Are you running short of CS-native analogies? You are such a fanboy and you don’t even understand what does section 3.3.1 imply.
    Please do this world a favor and keep yourself away from blogging until you grow up a bit and gain some maturity.

  33. Since Steve said to get rid of all the other intermediary platforms, that means that he thinks everyone should go back to ASM.

    I wish, the quality and security of programs would be much better, and people would actually understand the hardware they are programming for.

  34. your crack about delegates would hold more cache if Apple hadn’t finally implemented Blocks in iPhone OS 4.0.

    otherwise, yeah, spot on.

  35. Sarcasm or for real – I am not sure but Apple shouldn’t have done what they did with 3.3.1 clause. They sit tight till they hit a good number of apps and now they want to start cleaning the so called ‘mess’ thereby trashing all the hundreds of thousands of dollars invested in the other platforms/frameworks.

    I love Apple for their strict definition of beauty and I hate to see them referred to as A$$le.

    I agree with dumping flash btw. Flash is one of the main reasons all my memory is gulped when browsing many flash video intensive sites. Hope HTML5 is adopted by everyone except for Adobe!

  36. Honestly guys! Like in all aspects of life a bit of patience will serve you well. Think of your laptop, in a year or two it is outdated a you buy a new one. Think of your iPhone, in a year or two it is outdated, then you buy another brand that you may program freely. Think of your car, perhaps not a designer’s dream but you are the driver, it takes you where YOU want.

  37. @Tony Polinelli : Judging by some of the comments here, it does not seem to be a complete myth 🙁

  38. > Finally, Apple is doing away with those arrogant upstarts who think then can write a few lines in a high level language and call it a program.

    Overly facetious tone detected.
    Running sarcasm detector…
    Probability of sarcasm: 80%

    Investigating address…
    gamehaxe.com found

    Revised probability of sarcasm: 100%

    Engaging fun-o-meter… done.

  39. > firstly banning stupid languages (used by those people who are not smart enough to learn c++)

    Are you serious? As a very experienced developer (who is “smart enough” to know C++, templating and all, and also “smart enough” to know “stupid” languages like Lua, python, ruby and LISP) all I can say to you is:

    Go back to that undergrad degree you are studying n00b and when you actually have a couple of decades of real life programming job experience, come back and comment then. Until then, STFU! You are ignorant.

  40. Unless you’re writing 1s and 0s I’m not going to take any of you seriously. In addition, I’m not talking to anyone who doesn’t address me in ancient Greek… After all, it’s the basis upon which the dirty modern languages we speak today are based.

  41. hmm… maybe you have thought that some creative people do not have the desire nor the time to learn C++??

    Maybe you have considered that consumers do not really care on what language apps are written, they just want good ups?

    I think you, as programmer, are trying to get some jobs for yourself and your C++ literate buddies… If someone with a good ideas want to implement it, but is limited but only using C++, then he needs to hire a programmer…

  42. It’s funny how the _blatant sarcasm_ is missed even though this is a haxe blog. I have never heard of haXe before reading this but even I figured it out.

  43. I just use Notepad for all my 3d models and textures. The last 20 years of 3d apps just produce crap!

    My models are so much more detailed, textures vibrant and the animations are just f’in awesome!

    It’s the Future!

  44. my understanding is that this is only Application related. To my knowledge, at least for web pages (so not for applications), Apple has signed an agreement with Microsoft that will allow Silverlight to be converted to a QuikTime MPEG-2 format via an HTML 5 video tag. Can anyone confirm this is true?

    I’m learning objective C but it’s a business requirement that I use my existing .NET skills and Silverlight 4 knowledge to build Business Intelligence dashboards – I think Apple’s decision was partially a block on Silverlight 4 becoming an integrated component (today is the official release date)

    Essentially, although browser capabilities may be extended, they are really alienating a group of talented developers (not to infer myself – I am still in the learning stages) – but Microsoft has a larger market share than Apple does of the Mobile PC market. Since I’m developing BI apps, I’m more likely to benefit from working with Silverlight and Microsoft, but I think this is nonsense. I’m a big supporter of open source, but I guess it will be interesting to see how well Mac does when Novell, Linux, Microsoft and maybe Adobe and several others join forces as a reaction to Apple’s new terms and conditions.

  45. Excellent piece. Wish I could turn on everyone’s sarcasm detectors.

    But I want to know what those who are so up in arms about 3.3.1 are going to do.

    Will you stop writing iPhone apps? Will you tell clients who want apps, sorry no can do?

    No? You won’t?

    Well then save your outrage for something else.

  46. LOL. Only poor programmers think this move is bad. Thanks for outing yourself as a poor programmer. Why don’t you switch to “android” and spend the next 4 years working around bugs and trying to figure out why everything crashes randomly and why Google is stealing all your users information.

    God Bless Apple!

  47. Sometimes, I wonder what Apple is up to. Pissing off your own developers looks stupid to me. And you’re right about letting kids to be subversive or, else, how will innovation happen!?!

  48. I completely agree, let me also add to the blog post that Haskell and Prolog are not real languages. And only a “real programmer” would be able to code up an airline maintenance planning scheduling application and it should be done in C. After all, why listen to University professors – they can’t get a job in the real world which is why they teach. Why learn from their discoveries? Those discoveries are made in labs, when was something discovered in a lab ever usefull?!?

    Why write 3 lines of code in a high-level language in 3 minutes when the way a real programmer would do it is by writing hundreds of thousands of lines of code over several months to demonstrate that simplicity can indeed be overcomplexified – AGAIN.

    I completely agree with the sarcasm of the post, it is well deserved.

  49. QUOTE: observer.
    This is quite simply the most pathetic blog i’ve ever read. That’s not the way it works… at all. I think you are some inexperienced fresh grad who’s never worked on a big project and who’s constantly farting about some 2 liner cryptic code written (only possible in highly unorthogonal and ugly languages like c++). If you really hate _high_ level languages then why don’t you try assemblers? Infact oh-so-smart kid like you should be writing directly to machine code?
    Making a correspondence between foreign languages and _foreigners_ doesn’t make up a good argument. You’r inducing racism this way. Why? Are you running short of CS-native analogies? You are such a fanboy and you don’t even understand what does section 3.3.1 imply.
    Please do this world a favor and keep yourself away from blogging until you grow up a bit and gain some maturity.

    Completely agree.
    Especially hate the racism part, never seen a blog post as ignorant as this one. You’re a joke.

  50. The majority of flash “programmers” are just script kiddies that copy and paste. Yes there are some actual good flash programmers and those are the ones who have had no problems porting their flash games to objective-C or C++ … it’s the ones that shouldn’t be developing in the first place that can’t do it.

  51. Good one, Hugh!

    You mention natural selection and I think that will play a big part in the iPhones demise (and the iPad by relation). Android machines will rule out, if not the [Enter next big thing here].

    Lee

  52. The number of idiots on here who don’t recognize the sarcasm is amazing, because it’s practically exploding in a mushroom cloud of sarcasm.

  53. haha — great post. Yes the almighty Apple demands the highest of standards. Except when it comes to their phone carrier partner.

  54. Fantastic article!

    Even better are those people that don’t understand the sarcasm. And the usual Apple fanboy trolls. We don’t feed them!

  55. Geeez some people need to learn how to read. How can someone read this whole post and still not see the obvious sarcasm ? This is a good post, and he holds a valid point. I personnaly dont perceive the ‘poster’ has a fan boy of either Adobe nor Apple. Wise up a little.

  56. It’s amazing how many readers of this post thought it was serious!

    You’re amazing and proves a lot about very naive developers! If they don’t understand your post, think of what their code looks like!

  57. Even more scary, you can actually omit braces in lambda functions in haXe !

    addEventListener(KeyboardEvent.KEY_DOWN, function(event) trace(event));

    Now I finaly understand why Apple want to avoid this kind of mess at all cost 😉

  58. Portability is listed as a SOFTWARE QUALITY.

    I’m sorry but STEVE JOBS is not a SOFTWARE ENGINEER and he’s not right about SOFTWARE QUALITY.

    PORTABILITY is a quality.

    Just like FREEDOM.

  59. Totally agree with you in many respects, I’ve not yet tried out Haxe – iPhone compilation but it seems this change of license shouldn’t be a big issue? Surely if the code is converted and Xcode compiles it then it what difference does it make if you’d hand written it or not?

    Has anyone tested it out who has access to the 4.0SDK beta? I have access although I’m waiting on Apple to bring out the new MBP so I can be done with my Hackintosh and finally run 10.6 =].

    From my (perhaps uneducated) perspective I’d say this is only an issue for products like Flash CS5 and unity which do their compiling themselves – something that Apple claims will hinder future feature development because other companies may choose to not take up the new features in their compilers. This seems some what a feeble excuse since if they were to release a new OS with features that did require such a significant change in software that other companies would have to rewrite their compilers it would mean that the phone would loose backward compatibility.

    Perhaps with the release of CS5 we will see more developers going underground and creating apps for jailbreaks?

    ^^ ASM, It’s the future! – with a few days to myself and a dark room I’ll be able to knock together a kick ass Hello World app!

  60. In all seriousness, I would sincerely recommend a ban on app development for ANY platform by anyone who did not catch the sarcasm.

  61. I feel for you mate, you’ve such a huge effort into this project… and it all seems for nothing right now. The thing is, Apple’s move is not about languages at all. They’re essentially shutting down a road to multi-platform development which would hurt their business, as Android grows bigger and bigger as a competitor, and with Windows Phone Series 7 just around the corner. It’s a shame for us developers, and probably, in the long run, a mistake. But we’ll find out about that in due time; it might be that they’re not even concerned about this in the long run… The biggest shame is that we have to (continue to) develop in Obj-C for the iPhone & -Pad, which is one of the crappiest languages around. If only they’d have something like c# or java on offer… oh well. I wouldn’t be surprised if Apple comes up with something high-level someday. It would be a logical next step for them after these announcements.

  62. Hi All,
    I wrote this before going on holiday, and did not really anticipate such as shit storm.
    Those who are regular readers will be more familiar with some of my other ideas on these topics, with particular reference to the haxe (http://haxe.org/) programming language, and may have an easier time interpreting my comments, eg:

    Compiling for foreign targets: http://gamehaxe.com/2009/07/28/haxe-iphone-cpp-at-last/
    Code generation: http://gamehaxe.com/2009/05/22/haxe-on-iphone-simulator/
    Garbage Collection: http://gamehaxe.com/2009/08/17/switched-to-immix-for-internal-garbage-collection/

    I apologise if I miss the irony in any comments with my responses:

    dcolumbus: No the terrorism comment was certainly not necessary

    Jessica: I don’t deny it may make good sense for Apple. Just as only allowing Internet Explorer on Windows makes sense for Microsoft and indeed censoring the internet makes sense for China.

    Brent: Sorrry

    jeckil: I understand that some people may like Objective-C, and I have no problem with that. In fact, I think almost every language has its good points. I was really after the political point, but couldn’t resist a little dig.

    observer: I may perhaps never grow up.

    Meme: I was aiming for 95% first pass.

    Chis: no, I’m not serious

    Mistergino: I laid it on thick so I could not be mistaken. Thicker next time.

    WTF: Too much?

    tonto: I though it was not subtle enough – but maybe not.

  63. Spot on!! I don’t know why the hell Objective C they feel they are a category above the others. Entire Apple dev environment is mediocre at best, J2ME with a way more fucked up syntax. It seems more like Jobs tried to fulfill his childhood dreams, having been neglected and abused for decades and survived only by stubborn loyalty of Adobe design community.

    Having said that as a professional developer I did have to learn it and buy a mac so I can cater to my clientèle, although with a great deal of disgust.

  64. @Jessica: You know, Hitler had more money than Jobs. Probably also Osama Bin Laden, so please join their church as well.

  65. Noticed there was a different Scott Barnes posting above so I included my middle initial to differentiate.

    Really though. For pure code, you need to write in assembly language. None of this high-level object oriented crap. Come on Apple – bare metal!!!

  66. ……. .. . . . . DDDN ………….
    ….. . . . DNDDDD$ . ………….
    … .. …. .. …….. .. ..$DDDDDDD .. ……………
    … … …. NDDDDDDDD ………….
    … …… .. . .. … . ..NDDDDDDDD.. … ………….
    …… …. . …. … …..DDDDDDDN …. ……………
    … .. . ODDDDDD. ………….
    … . …. NDDDN.. ………….
    … . … . ~O+.. ..:MDDD… ………….
    ….. . .. . ..DDDDDDDDDDND. ..NDDDDDDDDDDDNO………….
    … .. ….NDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDM………..
    … ..DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD……….
    … . .=DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD………..
    … ..DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDN…………
    … . ..NDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD…………..
    … $DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDO ………….
    … ..DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD. ………….
    … DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD ………….
    … .DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD ………….
    … . .DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD ………….
    … . .DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD……………
    … …DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD? ………….
    … NDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD…………..
    … . DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD~…………
    … . .NDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD ……….
    … .DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD………
    … . . .DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDN……..
    … . . ..DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD ……..
    … . . …DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD……….
    ………..?DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD7……….
    …………ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD$………..
    ………….,DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDI…….. . .
    ……………DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD . . . ..
    …………….DDDDDDDDDDDDDNNNDNDDDDDDDDDDD.. . . . .
    ………………DDDDDDN……….,NDDDDDN …… …….

  67. You are very knowledgeable, and thanks to you Haxe can now target C++….
    But where are the finish product using this target? Where is the Doc?

    And that is the way it work, unfortunately you guys(experienced programmers) create great tools but few projects, documentation and examples to learn from.

    The only solid doc that you can find for the Haxe targets are at least 2 years old!

    The time goes by, Haxe is growing but less and less doc are generated which make the new features obsolete and pointless.

    Unfortunatly that is haXe biggest failure.

  68. Before making any derogatory comments, you should google the author; that way you will realize that this is a greatly established sarcasm by Huge!

    And, CS Degree requirement is my favorite.

  69. “Just imagine a world where any kid can work out of his garage and build an application with an original language, or bit of hardware, that snubs its nose at the establishment – anarchy would ensue. Therefore, it is important that the responsible companies out there vet such potentially disruptive ideas before they can cause too much damage.”

    remind you of any company? i’ll give you a hint, it rhymes with snapple and isn’t delicious.

    while there are some decent reasons for apple to have a deathgrip on the app market for the iphone, i think it’s a mistake in the long run. apple would do better to have 2 distinct software paradigms the iphone can be run in. the first being what exists now, the second would have no limitations on apps at all and wouldn’t even need an apple run market place. apple could only provide tech support for the 1st group, but still allow the existence of the second. the second would also be a useful proving ground for new apps and would likely increase overall quality of apps in the traditional group.

  70. oh yeah, a CS degree requirement is the most retarded thing i’ve ever heard. a college degree does not magically grant someone more intelligence. MANY terrible programmers have CS degrees and MANY excellent programmers do not.

    artificially propping up the university system by such requirements drives up tuition costs and drives down quality of education.

  71. Don’t know whats funnier .. the sarcasm in the original post or all the people who thought anybody could be so dense to say all that and not be sarcastic.

    That said, Apple’ announcement actually makes Haxe all the more relevant … as it’s the only way to use code intended to be platform independent to run on the iPhone, is it not? Haxe is the #1 way to stick it to Jobs.

    Unfortunately pixnlove is right. Haxe has the possibility (and has for some time) to be THE game-changer, to no avail. It’ll be a no-show until those in the know set aside a week and put all their knowledge into a comprehensive and easy (think “for dummies”) wiki. If they don’t haxe will ultimately go the way of all such promising efforts: obsolescence. Languages don’t succeed based on ability nor ease, but rather because of evangelism and the best evangelism is a good fully documented, up-to-date, and easy to follow wiki and code examples…

    …which haxe doesn’t have.

  72. There has been a lot of talk recently about allowing “foreign” speaking people, such as blacks, mexicans, asians, into binaries that will run extremely well on the planet Earth. But like all foreigners (who are responsible for all the terrorism in the world) these people should be cleansed from all countries to maintain the Earth’s mono-lingual purity. Putting such insidious diversity into a beautifully designed planet can be shown to confuse people, most of whom don’t even know their heritage has been compromised by these so call “high level” speaking people.

  73. By raising the barrier of entry, and only permitting “real” people (ie, “English” based ones), Apple ensures that the quality of people will remain at its current lofty levels. “Natural Selection” will then weed out those people who are too lazy or too stupid to learn a proper language. In fact, I think Apple has not gone far enough here and should dabble in a bit of “Intelligent Design” by requiring that all people who wish to procreate hold at least a 4 year degree in computer science. Just imagine a world where any kid can work out of his garage and build an application with an original language, or bit of hardware, that snubs its nose at the establishment (Like Bill Gates and Paul Allen)– anarchy would ensue. Therefore, it is important that the responsible companies out there vet such potentially disruptive ideas before they can cause too much damage.

  74. I was confused and then so relieved. This article is funny, but I’m afraid a lot of newcomers like myself might take you seriously.

  75. It also surprises me how many peeps took this article seriously. It was clear sarcasm, guys!

    Hope someone will return slap to apple’s face soon

  76. LOL nice article.

    However, Flash and Actionscript are highly capable platform, andthere are plenty of great programmers there. Many great games such as GemCraft, Athalina RPG, Fancy Pants, and many other games DO actually require a lot of programming in order to be what they are.

  77. Thats why I will never buy anything from Apple… Their capability of not going further is very high.

    Is this article sarcastic? I hope so..

    Anyway I know C++ very well, more than I know AS3, but I must confess, using AS3 for doing games is much more easier and fun! And yes, you need to be smart enough to learn it, or you can pay and use Flash CSX…

  78. Awesome article!!! Soooooooooo funny, I love it. This needs to be sent to Apple right away. Maybe you should consult for them, I don’t think they have thought of the “Watchdog” application yet. Oh man, this is so funny, great job!

  79. Every company is evil , they dont share or give anything for free they also have the right to sell what they want and how they want but at the end we have the power to not to buy and make them change. So dont consume dont support when you dont like what some company is doing.
    we are forced to consume publicity everyday and sometimes we forget that we dont need to buy everything we see.

  80. I am very serious developer and doing beautiful code. Will never let somebody screw it up! I am smart enough and spent last 2 decades learning and learning and learning still the same technology. You should try too. Just go back in time!

    Btw, what is a sarcasm? Did miss something in my life?

  81. There is a bunch of Apple Supporters with torches and forks banging on my door…

    On the main village square there are already 3 flash developers hung. Apple Fanatics burned down their homes and raped their families…

    Please help me… An I-Pad in flames just smashed in my window.

    They have Steve Jobs portraits, and leather boots with apple logos on them.

    My neighbor is a Microsoft reseller. They chopped his head off and put it on a spike.

    The local Apple Shop owner took control of the crowd. They scream “LONG LIVE TO STEVE! LONG LIVE TO STEVE!”.

    There are roadblocks where people with their I-Arian application on I-Phone scan your fingerprints to check if you have molecules of PC keyboards. If so they chop off your head with a 3G I-Pad on the spot, and stick a plastic white apple leaf in your temple.

    People are terrified. I am hiding in my cellar a family of Android cellphone owners. They are number 1 on the wanted list because they tried the I-Phone in the Apple shop and said “This sucks! I cant watch vimeo” and moved to HTC.

    This started the pogrom violence… I have no hope anymore. If someone should find this e-mail in a bottle please take advice for future generations…

    I refused to have a barcode tattoed on my arm which is my Itunes and AppStore id, and they know I love ActionScript. Thats why they want me.

    The door is not holding anymore… I can hear their OSX system-startup sounds through the cracks.

    The Apple Goblins are rushing in. They all sing in chorus the Apple Anthem bough special price on itunes, “We are just, we are Apple. We are safe, we are clean! No politics, just revenues. We are free, free with Steve”

    I am typing with just one hand, a 24″ cinema display broke my left whrist. Please, please tell future generations that a lunatic with glasses screaming to the international press started all this.

    Cough… smoke is burning my lungs… I will not resist much longer…

    ……

    Written on a blood stained MacBookPro 2.8

  82. I will learn many languages in my journey to programming greatness, but the two that I will never ever touch are Objective-C and any Basic Dialect. They are the worst non assembly languages around. But I do like the idea about getting a 4 year CS degree first.

  83. objective-c is a motherf*er! i hate ALL people that have an iphone or itunes or ipad or ipod or macbook just because of a stupid logo.

Leave a Reply to John Cancel reply

Your email address will not be published. Required fields are marked *