Hacker News new | past | comments | ask | show | jobs | submit login
As an iPhone developer, I'm glad Apple banned cross-compiling (cubeofm.com)
16 points by maxklein on April 9, 2010 | hide | past | favorite | 43 comments



I think he's looking at it from the wrong starting point, and getting confused about who is benefiting.

1. Apple are increasing the barrier of entry for him in to OTHER mobile development worlds - he's no longer able to develop a solution that is easily portable to Android, WinMo, BB, for example. He's betting his ability to write popular mobile apps on the fact that Apple will always provide him the platform he needs, and (more worryingly) that they will continue to keep his App in the App Store. If Apple chose to duplicate the functionality of his app themselves, he can't easily move to providing it for Android - so he's screwed. I contest that his job is less secure than ever.

2. His last point suggests he's made himself more valuable and unique by learning ObjC. That's nice for him, but it isn't a reason to be happy with the new ruling from Apple: if anything, the new T&Cs likely to result in MORE ObjC developers, so reducing how remarkable he is as a programmer.


You actually make very good points, and I think you are correct. The way I advocate functions in the short term, but in the longer term, your way is better.


He's happy basically because Apple has raised barriers to entry against some of his (potential) competitors.


Exactly this - the points he makes in the article are all correct, but they're all related to monopoly. His point is merely 'Anything that prevents others making better products is good for me'. That may be, but it's bad for the consumer.

It's like if Microsoft made it harder to write Office software for Windows, it would be good for sales of MS Office, but wouldn't be good for the consumer if it prevented people developing competing, better software.


Control brings certain benefits, but there's a trade-off. The trade-off is less innovation on your platform in the long term. I think Apple made this choice deliberately. They'd rather have more control over image and UX and let everyone else "innovate" features in software, then follow with their own slick version.

They remind me of the old Mercedes in this regard.


What about the case where a large amount of apps are in the store. This is bad for both the consumer and the seller.


How is that bad for the consumer? Lots of apps means lots of supply, which means lower prices for the consumer.


The lowest price is already mandated by Apple. There is no lower price possible. Lots of apps means a big discovery problem by the consumer. They can't find the good apps then.

So prices stay the same and the customer does not find what he wants.


Firstly, what do you mean, they can't find the good apps? There are already tens (hundreds?) of thousands of apps, and people seem to do OK with the store rankings, ratings, and with word of mouth.

Secondly, I'm curious where you found a magic oracle to tell you how to eliminate all the bad apps from the store, but keep all the good ones. I don't think that "(eq language objective-c)" is that oracle.


Apple promotes good apps, right? And then there's various ways of advertising and word of mouth. Has anyone actually said "I can't find the apps I want?" Is this a reported problem, or are you guessing? It sounds to me like you're rationalizing something that benefits you as a single developer also benefits the consumers.


When the only market available for you to distribute your app gets saturated by zillions of other apps with similar characteristics and similar ratings, the expected RoI on the development of an app is reduced. This, in turn, leads to a decreased investment by the developers and, thus, to a high number of lower quality apps fueled by the new entrants in the market.


That argument doesn't hold water. The web is a completely open platform with zillions of websites "with similar characteristics". And sure there are crappy ones, but there are tons of great ones too.


The web is not a walled garden you have to ask for permission to offer your products in.


Of course, now you're begging the question: if there are already zillions of apps in the store and you're not providing anything they don't, does the world need you to develop it?

On the other hand, if the market does get flooded with low-quality apps, it should be pretty easy for developers to make money by simply making good apps.


> does the world need you to develop it?

Possibly not, but you can't distinguish a moderately superior offering in an environment that saturated.


That's the current situation, without the new clause and where Apple "reviews" every app.


I don't know the author of this blog, but am I the only one here who thinks his post was satiric?


The author of this blog is someone I know of only through HN, and I respect him because he has created a viable business selling iPhone apps. Also, it appears he is mentoring others to follow his franchise strategy.

> I sell apps on the app store. A lot of small cheap apps. Revenue is hitting $1000 per day on the weekends (Here is the graph: http://imgur.com/T0z5p.png).

http://news.ycombinator.com/item?id=1060019

OT: Max, what are your thoughts on the Federal Bureau of Apps? I'm amused and perplexed. They have a Cell Phone Locator app that is consistently in the top App Store revenue lists and has thousands of reviews (around 2 star average rating). How much if this developer's success and what part is pay-no-attention-to-the-man-behind-the-curtain strategy and marketing?


I don't mean to disrespect him at all, regardless of whether he's being sartiric. But I sense that there might be a bit of satire/humor in some of his arguments and I'm wondering if we're missing it. Apologies if I'm wrong.


I never even heard of this company, but seems okay. If their product works, then what's wrong with it?


Ironically I'm sure he would be happy if somebody came out with a cross compiler that would let him build his iPhone applications and have them run natively on Android devices.

Come to think of it... why hasn't anyone done this yet?


As a midwestern corn farmer, I'm glad the US has placed tariffs on Brazilian ethanol.


That's not what a cross-compiler is. You're using a cross compiler to code for iPhone unless you are compiling natively on the iPhone. (i.e, A cross-compiler is a compiler that generates code for a platform other than the one it's run on. So unless your "Flash cross-compiler" is written in Flash...)

http://www.google.com/search?hl=en&q=cross-compiler


Or: "I've found a niche! Don't let other people into my niche, they might do it better/cheaper/faster!"


It's more: I'm glad more people are not coming into my niche. If they did, devs will adapt, but if they are being kept out - well, that's good news.


"Developers are lethargic - they are not springing about learning new languages"

Damn, guess I'm not much of a developer. I mean, if I wanted to build something real in Obj-C, I would take a hit up front like anyone else to learn my way around, but the developers I've worked with who don't want to learn new things are NOT the ones I'd be worried about competing with.


"Developers are lethargic - they are not springing about learning new languages"

I am learning Erlang and playing with Clojure.

It's not any new language. It's just that ObjC is not very attractive.


As a person whose is in a position similar to his, I agree with the spirit of his comments.

Basically, what are things of value in this world? Scarcity is probably the biggest driving force, especially when coupled with demand. It's what drives the prices of precious metals and stones, truffles, caviar, etc.

The same logic applies to any business. A high barrier to entry is one way that a business keeps competition at bay. Specialization of skills is another. Of course, having a specialized skill loses its value when there is no demand for that skill.

As a programmer, part of my job is learning new things before everyone else so I can stay ahead of the curve. Once the world catches up and the technology becomes commodity, the money dries up. For almost all things related to technology, from hardware to software, it's a race to the bottom so you had better jump to the next train which is still moving.


Sorry, but "I'm glad because I don't have to learn something new" just isn't a convincing argument to me. If something is useful and worth learning, the short-term cost of learning something is repayed many times over in the long term.

And I think that Flash and other cross-compilers are worth the time in the long term. Using just one programming language exclusively is like having a hammer. The thing about hammers is that when they're all you have, every problem has a nasty habit of turning into a nail.


Using a cross-compiler is like having a hammer and using it for nails, screws, thumbtacks etc.

There is this myth that any programmer can learn lots of new languages. That just is not true. Most programmers are good in just a few languages - the rest they are not good in.


It is true, a programmer can learn lots of new languages. It is mastering all the libraries and infrastructure which is time consuming. And you guys are all forgetting that writing large portions of your code in c++ is at the moment the most portable solution. It works on IPhone, IPad, Android NDK, PSP, Xbox, PS3, PC, Mac etc. The only thing you need to do is to hookup the platform specific gui code to your app logic.


1> Any compatibility layer is also forbidden by the agreement. So classes that make it easy to port (or c modules or whatever) would also be forbidden. They did more than ban flash here

2> C++ is a unreliable target on android still for fullscale development. C/C++ is really for computation heavy libraries, not end to end development. You're supposed to call into your C with JNI and do most of the app with Java


"Using a cross-compiler is like having a hammer and using it for nails, screws, thumbtacks etc."

Fair enough. But Apple didn't just forbid cross compilers. They essentially forbade anything that wasn't originally written in C, C++, Objective-C, or javascript.

"There is this myth that any programmer can learn lots of new languages. That just is not true. Most programmers are good in just a few languages - the rest they are not good in."

I don't really see the relevance. Most programmers are good at a few languages, but those few languages are very different from developer to developer. Forcing every developer to choose from a limited subset of languages (especially the ones given) is just artificially limiting the developers who are willing to program on the iPhone. How many more developers would program on the iPhone if they could use C# or Python? I'd bet the number would be higher. And this is a good thing for the consumer.


I think you're misunderstanding the technical terms. Apple has not disallowed cross-compiling. That's the practice of compiling for architecture Y while developing on architecture X.

What Apple has effectively disallowed is developers using an abstraction layer on top of C, C++ or Objective C. An analogous situation would be being told you can't write your program in C, you must write it directly in assembly.


  And I think that Flash and other cross-compilers
  are worth the time in the long term. Using just one
  programming language exclusively is like having a hammer.
And working withc cross-compilers ir like having only a broad brush. Yes, it will get the stuff painted, but it will never look polished.


I don't know the exact nature of Max's 'many small apps', but given that Apple comes down on Flash, I wouldn't put it past them to come down on cookie-cutter apps, too.


Could happen, but if flash devs were let in, it would happen even quicker.


this seems like a common "if you can't beat em, join em". you would've been better off counting your objective-c learning as lost time and moved to a cross-compiler like everyone else (since they support publishing to multiple platforms and can do tween animations :D).

you're not entitled to anything being an iphone developer, and specifically ripping on cross-compilers because they found a more efficient way to do it means you aren't willing to adapt. your loss


"If a new popular cross-platform framework suddenly arrived, I would have to go back and relearn it."

That is the way of things when you're a developer.


The simplest route around this problem is to cross-compile to ObjC source. Is that too hard a problem?


That's exactly what Apple has disallowed.


Apple also forbids me from making notes with pen and paper before I start writing source-code because then the paper notes are the original representation of my ideas and I rarely represent my ideas as Objective-C code.

Actually, I am more inclined to think the synapses and neurotransmitter concentrations in my brain are the original representation of the program, but that's another story. ;-)


"For Apple, they are following the Microsoft Mantra: focus on the developers."

Seems comically false to me...




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: