Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Apple: .net apps are kicked off iPhone OS 4 too. (ximian.com)
57 points by nailer on April 11, 2010 | hide | past | favorite | 50 comments


Isn't it funny how many people using alternative runtimes seem to say "I can fully understand why they would ban Adobe/Flash but why on earth would they also ban my favorite runtime"?

Apple didn't make this move because they have some irrational religious hatred against Adobe. They are just betting that a tight control over the technology by which people produce applications for their mobile platform will be advantageous to them. They are fully aware that this is bad for people who have bet on using different technology and I guess is that they just don't care the tiniest bit.


this is bad for people who have bet on using different technology

Absolutely true.

An intersting thing is that I, and I'm sure quite a few others, would never have guessed that language choice was a "bet" (at least, not this kind of bet, anyway).


Neither would I. When analyzing risk, there is also always the risk that you didn't recognize something as a risk at all. Maybe this is the Black Swan event (http://en.wikipedia.org/wiki/Black_swan_theory) of mobile application development... Unlikely but disastrous at the same time...


> I (...) would never have guessed that language choice was a "bet"

Oh boy... It took years for me to convince several companies Java is not the only language that can turn out "enterprise level" applications...

That risks putting me back in square one.

Thanks, Steve. Well played.


Oh boy... It took years for me to convince several companies Java is not the only language that can turn out "enterprise level" applications...

No doubt, but that's a different kind of "bet" (I briefly alluded to it in my original comment). There's naturally the bet that the language might not be around in 2 years, or that the language isn't capable enough to do what you need it to do, or that the language is too niche for XYZ Corporation's programmers and finding other programmers might be hard[1].

But that's a completely different kind of bet from "I wonder if this very popular and capable language will be against the arbitrary and ever-changing rules."

The former is quite practical. The latter shouldn't have to be a concern.

[1] Off-topic, I recently had this debate with a guy I'm going into business with, in which I was trying to convince him Erlang is a viable language. He's more of a business-financial-type and was concerned with the proverbial "what happens if you get hit by a bus." While I understand his concern, eventually he, correctly, resigned the programming stuff to me, where it belongs :)


How is that though? If you were betting on Java for iPhone apps, you're just as screwed here too.


Many companies bet on one single technology stack for everything, whether the choice is appropriate or not.


Monotouch is not an alternative runtime - it is compiled code. There are alternative runtimes out there such as for lua etc (there is also an LLVM compiled version too).


I work in IT, where we use C# and .Net exclusively, and would love to develop iPhone apps in MonoTouch.

However, I also think Apple is doing the right thing by banning "meta-platforms" from the App store. Adding layers of abstraction that only serve the developer, rather than the phone's owner, is hard to justify on small, battery-powered devices. Especially when introducing multi-tasking features, RAM becomes even more precious, and fameworks, interpreters, cross-compilers, etc. will cause a bloating trend.

If OS 4.0 does indeed make it easier to deploy IT apps across the enterprise without going through the App store, and 3.3.1 only applies to the App store, then I know my problems are solved.


To be honest, Unity3D is a lot faster than Sio2 or someones whipped up 3d engine.


In Steve's response to Gruber, I think I have an idea on how you could summarize his stance.

"OK, I realize that by banning other development platforms, I realize I'm making that initial hurdle painful for those who aren't familiar with our preferred tools or languages. However, our tools/languages are always at the forefront. After reviewing Gruber's comments I'm well aware that it seems like a harsh move, but I want developers to bite the bullet and deal with the learning curve now rather than wait while everything else attempts to catch up to what we already offer."

Steve's at least acknowledged that it was harsh. However, the main argument holds: If you want everything the platform has to offer - including optimal performance - you're going to have to use Apple's tools anyways. As a developer I myself think it was a very harsh move, but I'll also agree that using alternative development tools has a significant performance/feature trade-off right now. It's a significant learning curve.

I think he's incredibly wary about user perception of not only the platform, but it's ecosystem of apps. The effect of banning alternative development platforms will probably have a minimum effect of the quality of the app ecosystem, but any negative is still negative to a notorious perfectionist who caters to the premium market.


I think some form of "caveat emptor" would be more appropriate than simply banning stuff.

One man's bloat is another man's lower barrier to entry for an app that he really wants to write, but has trouble writing in ObjC. Maybe it's supremely useful for a niche group of users because the author is an expert in some domain...


I hate to say it, but that actually sounds like another excellent reason to keep that developer out of the market.

Remember that the App Store is a business and a marketplace, where products are being sold to real consumers who want their phone--and everything that runs on it--to be reliable. IE: this is a professional realm.

Professional programmers don't have a problem with learning a new language, if that's what's required to target a new platform. If someone "has trouble writing in ObjC", then they really need to work on their skills. This person sounds like a hobbyist who probably shouldn't be selling his wares to run on consumer electronics devices with limited RAM and battery life.


> I hate to say it, but that actually sounds like another excellent reason to keep that developer out of the market. Remember that the App Store is a business and a marketplace, where products are being sold to real consumers who want their phone--and everything that runs on it--to be reliable. IE: this is a professional realm.

By that argument, we should keep anyone that isn't professionally certified out of every activity where people are also professionals. Want to create a start-up? Sorry, you're not professional enough to create a start-up, so you're legally banned from doing so.

> where products are being sold to real consumers who want their phone--and everything that runs on it--to be reliable

How can you hope to speak for all iPhone users? Do you really think that the interests and goals of every single iPhone user align perfectly with no conflicts?

> Professional programmers don't have a problem with learning a new language, if that's what's required to target a new platform. If someone "has trouble writing in ObjC", then they really need to work on their skills. This person sounds like a hobbyist who probably shouldn't be selling his wares to run on consumer electronics devices with limited RAM and battery life.

We should also make it easier to identify 'professional' programmers from the lowly hobbyists by creating a 'professional programmer' certification program. Sort of like a bar-exam for programmers. Then we would know that no professional programmer was lacking in any respect. All code produced would be perfect and of the highest quality. I mean, it works for lawyers. No incompetent lawyer has ever passed the bar-exam, and no medical professional that was incompetent has ever received a license practice medicine.


> By that argument, we should keep anyone that isn't professionally certified out of every activity where people are also professionals. Want to create a start-up? Sorry, you're not professional enough to create a start-up, so you're legally banned from doing so.

That's what's called a slippery-slope argument. It's also a fallacy. A startup does not have to ask Apple to provide a storefront, distribution network and billing system for them.

> How can you hope to speak for all iPhone users? Do you really think that the interests and goals of every single iPhone user align perfectly with no conflicts?

By creating a marketplace with a baseline of quality, you improve everybody's bottom line. Developers can spend less effort convincing the customer that their product isn't a buggy piece of crap that won't run, or needs special access to a restricted service, or any of the other things that Apple's review process screens out.

Apple is removing barriers-to-purchase for the customers by converting them into barriers-to-entry for the developers. Doing this has made the App Store an impulse-buyer's dream, and this benefits everyone.

> We should also make it easier to identify 'professional' programmers from the lowly hobbyists by creating a 'professional programmer' certification program.

Perhaps that's coming, too. Despite your sarcasm, a legal profession with Bar exams or medical profession with licenses is still substantially better than one without. Even if, at the very least, they only provide a mechanism for taking consistently poor practitioners out of the system.

But that's unlikely, because professional certifications are used when the professional himself is the product. Here, the app is the product, and Apple is screening on the merits of the product.

I'm going to guess it's logistically impossible to train so many reviewers to look at each product in detail (with turnover, very high submission rates, etc.), so they have to give them broad rules.

Right now, someone is claiming that CS5-compiled Flash games HAVE made it to the App Store, and that they are slow pieces of crap:

http://www.reddit.com/r/apple/comments/bpdpo/see_for_yoursel...

If CS5 unleashes a tidal wave of Flash games into the App store, then yes, I imagine that iPhone owners will be disgusted with the state of the market, hurting everyone trying to sell a product there. (Think of the "September that never ended" and what it did to Usenet.) Even developers who've spent a little more time learning Objective-C so they can create a better product.


That's what's called a slippery-slope argument. It's also a fallacy.

It was reductio ad absurdum, not slippery slope. Slippery slope would be "If we let Apple do this, the next step will be having to be 'professional enough' to be legally permitted to start a startup", which is not what the gp said.


> (Think of the "September that never ended" and what it did to Usenet.)

The idea that you can stay isolated from the rest of the world in some ivory tower, and that this would be a good thing is a ridiculous notion. The "September that never ended" was just "the rest of the world discovering Usenet." The people that get all worked up over that just come off to me like a group of kids that make a fort for 'members only' but are upset when their parents force them to place nice with everyone else.

> Right now, someone is claiming that CS5-compiled Flash games HAVE made it to the App Store, and that they are slow pieces of crap: http://www.reddit.com/r/apple/comments/bpdpo/see_for_yoursel.... If CS5 unleashes a tidal wave of Flash games into the App store, then yes, I imagine that iPhone owners will be disgusted with the state of the market, hurting everyone trying to sell a product there. (Think of the "September that never ended" and what it did to Usenet.) Even developers who've spent a little more time learning Objective-C so they can create a better product.

You're ignoring that this affects more than just Flash CS5. There are other products like MonoTouch that are affected by this. Apparently MonoTouch was used to create 10 of the top 100 AppStore apps. I'm assuming that is a good indicator of whether or not they are 'crap apps.' (http://news.ycombinator.com/item?id=1256761)

> Perhaps that's coming, too. Despite your sarcasm, a legal profession with Bar exams or medical profession with licenses is still substantially better than one without. Even if, at the very least, they only provide a mechanism for taking consistently poor practitioners out of the system.

The difference here is that the legal and medical professions have serious consequences for poor practitioners. If we want to create a 'professional certification' program for programmers, you might as well do that for any profession. You need to look at the logic of your argument. The logic behind professional certification programs for the legal and medical professions don't really apply elsewhere to entire professions.

Don't just say "I look down with disdain on poor programmers, therefore it logically follows that they need to be eradicated." You could apply that same logic to every job in the world, then we would live in a world where you couldn't get any job without some sort of certification.


I'm not talking about professional programmers.

Here's a use case: someone in a niche field - say, an archaeologist, just to pick something - has a clever idea for a phone app that will assist him in his job. He knows a little about programming, and manages to put together a Lua script that does most of what he needs. Several of his colleagues find his code really useful and recommend it to their friends too.

You're probably right that the app store isn't the right place to distribute it, but Apple doesn't give you a lot of leeway there, does it? In any case, if it's some random app for a niche, and people find it useful, who cares if it's got some deficiencies?


But Apple does give you leeway. You can distribute up to 100 copies outside the App Store, and they're now adding the ability to distribute as many copies as you like to in-house users over WiFi:

http://www.apple.com/iphone/business/preview-iphone-os/

Such apps are not bound by 3.3.1.


What you're calling leeway, I would call 'crumbs'. I'm not convinced in the slightest that that sort of world is one I'd want to inhabit or recommend to friends.


Exactly, I don't see what learning an older style language buys me - having to deal with a noisier syntax, .h files, manual refcounting etc.

I chose monotouch as having done more high level language development recently, I don't want to go back to those things - and even find them abhorent.

I also don't want to learn a "ghetto" language, which is locked to one platform - I want to be able to do learn skills that are useful cross platform (getting more use of a language I can use elsewhere).

I don't buy that I won't get the most out of the platform doing this either, if I need every last bit of CPU and memory I'm probably doing something wrong anyway.


It seems to me that what's led to the success of the Internet is that it's not a managed environment. Anyone is free to release anything (subject to it not harming the rest of the ecosystem), and either it sticks, or it dies. Thus, its users can pick out what balance is most useful to themselves.

But Apple believes that they can judge our needs better than we ourselves can. They have the wisdom (so they believe) to say that this hypothetical niche vertical app is less important than having everything meet their own rules, so it's not allowed to exist.

Apple may even find that this buys them some short-term success. But in the long term, this will eventually lead to ossification and the same scrap heap as mainframes et al.


> However, I also think Apple is doing the right thing by banning "meta-platforms" from the App store.

But didn't Apple also ban writing apps in, say, Haskell and all other non-C-family languages that compile to machine code? Writing in a language like that is no more a "meta-platform" than Objective-C itself is.


I can't work out how 'official' that statement is, especially given that it conflicts with what Unity have apparently said (perhaps there are updates on that story that I've missed?) - http://techcrunch.com/2010/04/08/adobe-flash-apple-sdk/

There seems to be an 'official' response from Novell here: http://www.mono-project.com/newstouch/archive/2010/Apr-09.ht..., but the email linked here is doing the rounds on blogs/aggregators as an 'official statement' - is that guy one of Novell's lawyers?

Further to the link this post gives, this email form later in the thread is useful/gives more context: http://lists.ximian.com/pipermail/monotouch/2010-April/00188...


It's from Steve Jobs email account (perhaps I should change 'Apple' to 'Steve Jobs' to make this apparent, but it's too late) The relevant part:

.net dev > So, I replied back to him, and explained that my firm intends to both create in-house applications, as well as distribute apps via the app store:

Steve Jobs > (Paraphrasing his reply:) "Sorry, if you use the app store, you need to adhere to the T.O.S."


The problem I have is that you paraphrase. For something so important I think it would be worth publishing the whole e-mail. Unless there's something personal in it that you don't want to share.


I'm not paraphrasing, I'm directly quoting the .net developer who mailed jobs. He is paraphrasing.


He just refers back to the TOS, we really need someone to ask - "Can we develop with Monotouch?" and a statement of - "This breaks the TOS" Not just saying "if it breaks the TOS"


As far as the statement from unity is concerned, it sounded like it wasn't really backed by any real indication from Apple about their solution not being banned. However, there is also no actual evidence (yet) that it is actually banned and that Apple will enforce the ban. Consequently, as they are about to ship a new release, they want to sound as confident as possible. I am very doubtful though whether they have any real idea regarding if and how they will be affected. I think they're mostly trying to prevent panic.


What I don't understand about this whole kerfuffle is that Apple already had the power to arbitrarily block applications. Why not just make the TOS more explicit in requiring performant apps that look and feel like apps written in ObjC? That would still make life very hard for cross-platform flash, but allow people developing against Apple's library directly in Haskell, Scheme or whatever to do so.


A post on a mailing list from someone who emailed "Steve" and got some one-liner reply does not strike me as an official announcement from Apple, no matter how much people enjoy saying "ooh, I mailed Steve and he replied, I'm sure this matter is over and done with now"

There are way too many companies and users affected, for this to be resolved via some one liner reply to some guy on a weekend. A bit obvious, eh?


I'm sure whatever was emailed back is the current 'official line' of the company. They may change that if there's enough developer push-back, but unless you're trying to claim that Steve (or an underling) responded with something that isn't 'towing the company line,' then this should be pretty inline with the message that Apple wants to send. Just because it didn't go through some official PR channel means nothing.


We really need them to specify for each tool that we ask Yes/No - not to just refer us to the TOS.


I had a friend criticising me for writing my 'app' (an email archive and indexer) in C++ not C# because it "didn't use .NET". I replied that as it runs on a Windows 98 box with 128MB of RAM and a 400MHZ CPU, it's perfect to put on the iPhone. Of course, my GUI is not Apple-type polished and would never get accepted, but at least everything else is fine.


Anybody know if this rule change is retroactive? Will Apple now go through the App Store and cleave out all the apps that don't fit this requirement? I'm betting there are a fairly large number of popular and high quality apps that don't fit into this prescribed tool-chain.


I never got excited by the iPhone OS, then I was a bit unsure for a while, but now I know again why I wanted to miss that boat.

Well, more land for Android.


In other words, you were never a developer/user for the iPhone, and now you still won't be.


Pretty much, yes. It never excited me and I never figured out why would it be cool to write iPhone apps. And that was at the time when iPhone was cool and Apple was still seen as benign.

I was never a developer/user/anything to Java either and I've only later learned that I certainly didn't miss anything. ;)


Is there anyone who actually makes a living off of iPhone development that was affected by any of this? Can anyone honestly speak to this being a problem?


Excerpt: 500 apps in the App Store are built on Mono and Unity3D alone. That's excluding non-3D apps. Source: http://www.mono-project.com/Software

Presumably these would all be affected.


Ironically, with the huge bevy of crap out on the store, I think the majority of cross platform library apps are likely currently higher average quality than the actual "Average App". Unity3D especially raises the bar there.

   --Actual Developer


I can't speak personally, but somewhere in this video http://live.visitmix.com/MIX10/Sessions/EX02 Miguel mentions the number of top 100 iPhone apps that use MonoTouch. I think it was about 10.

So based on that - yes, it will affect some iPhone developers, and the argument that this move by Apple is about quality is bogus.


If 10 .NET apps in the top 100, this is going to affect a lot of users as well.


If you have a top 10 app on the app store, it's likely that you'll probably do the legwork to port the app to whatever language is necessary to run on the platform. It's probably a poor business decision to just "give up" $5000 per day of revenue because you need to rewrite the app.

There are many developers that would love to take trade places with those 10 apps in the top 100. If I knew something like Doodle Jump was written on the .NET platform, I'd probably jump at the chance to make a similar clone in hopes of taking it's place.


> It's probably a poor business decision to just "give up" $5000 per day of revenue because you need to rewrite the app.

It's poor business to rewrite an app for no reason. How many months will it take to rewrite these apps just to achieve the exact level of functionality they have now? What if the developer has no Objective-C experience at all (which, given the choice of MonoTouch, might be likely). What a massive waste of time and money for nothing.

> I'd probably jump at the chance to make a similar clone in hopes of taking it's place.

On a forum full of developers, this attitude sort of disgusts me. Here are these poor developers having the rug pulled out from the under them but it doesn't matter because we're all replaceable cogs and someone will be there to take their place. That stinks.


>That stinks.

It sure does, but it's (unfortunately) probably reality in this situation.


If it is a simple GUI or 2D app, your ok. If you have something like unity3D and have to recreate an entire 3D & physics engine, learn openGL, and optimize it enough so it runs just as well as Unity3D thats a completely different story!


I do.

I was honestly looking at cost quotes to port a couple customers to a flash multi platform situation, but now that work is shot.

On the upside, quite a few HN people asked for quotes after having similar dreams shut down, but more work from old customers is almost always easier, more predictable and cheaper than dealing with a crop of new potential customers. A few weeks from now I might say different depending on how much we land.

I do think I will use Flash as an Android platform, especially if it has a Java plugin library. The lack of a visual designer on Android is one of it's biggest weaknesses.


A lot of game companies that have invested in Unity3D. Some of those games are are big sellers as well.


I'm an iPhone developer who lives and breathes ObjC. I've had two e-mails so far today from people who want to hire me now that their framework is banned.




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

Search: