views:

211

answers:

6

What programming languages can one use to develop iPhone, iPod Touch and iPad (iOs) applications?

Also are there plans in the future to expand the amount of programming languages that iOs will support?

+1  A: 

objective-c is the primary language used.

i believe there is a mono touch framework that can be used with c#

Adobe also is working in some tools, one is this iPhone Packager which can utilize actionscript code

Aaron Saunders
+4  A: 

Apple lifted the restrictions on non-Objective C/C/C++ apps -- you just can't load code that isn't in the app bundle.

MonoTouch lets you use .NET languages -- C# is directly supported, but if you have Windows, you can make assemblies in any .NET language and use it.

There are rumors that Apple is going to support other languages directly -- I keep hearing ruby, but they are just rumors.

I think Lua is being used for game logic on a lot of apps.

Lou Franco
What about Objective C++?
J3M 7OR3
Objective-C++ is the bridge between ObjC and C++, so it's fine.
Lou Franco
+1  A: 

The programming language of iOS(and Mac OS) is Objective-C and C. You have to use Xcode platform to develop iOS app, on the next version that is now available on beta release, Xcode 4 support also C++.

Mat
+1  A: 

only Objective-C is allowed by now...but since few month, you'are allowed to write script that will be interpreted in your application.

So you may be abble to write a LUA interpreter or a Python interpreter, then write some part of your application in this scripting language. If you want your application accepted on the App Store, this scripts have to be bundle with the application (your application cannot download it from the Internet for example)

see http://www.zdnet.com.au/what-apple-s-new-app-store-rules-mean-339305913.htm

dwursteisen
+1  A: 

What programming languages can one use to develop iPhone, iPod Touch and iPad (iOs) applications?

Ruby, Python, Lua, Scheme, Lisp, Smalltalk, C#, Haskell, ActionScript, JavaScript, Objective-C, C++, C. That's just the ones that pop into my head right now. I'm sure there's hundreds if not thousands of others. (E.g. there's no reason why you couldn't use any .NET language with MonoTouch, i.e. VB.NET, F#, Nemerle, Boo, Cobra, ...)

Also are there plans in the future to expand the amount of programming languages that iOs will support?

Sure. Pretty much every programming language community on this planet is currently working on getting their language to run on iOS.

Also, a lot of people are working on programming languages specifically designed for touch devices such as iPod touch, iPhone and iPad, e.g. Phil Mercurio's Thyrd language.

Jörg W Mittag
-1. Ruby, Python, and ActionScript don't yet work on iOS. In the past, there were attempts to get CL and Scheme running, but I don't think those are up to date. Same deal with Haskell. JavaScriptCore is a private framework right now; you can script Objective-C using JS in a webview, but that's really clunky.
Jonathan Sterling
@Jonathan Sterling: You should tell that to the developers who have been selling Ruby apps through the App Store for over a year now. I'm sure they would be very interested to learn that their apps don't exist.
Jörg W Mittag
Rhomobile doesn't count. Those aren't actual native apps. They are just stuck in a webview.
Jonathan Sterling
+2  A: 

The SDK agreement and App store guidelines were recently changed (Sept 2010).

You can now probably use any compiled language that will compile to the same static ARM object file format as Xcode produces and that will link to (only) the public API's within Apple's frameworks and libraries. However, you can not use a JIT compiled language unless you pre-compile all object code before submission to Apple for review.

You can use any interpreted language, as long as you embed the interpreter, and do not allow the interpreter or the app to download and run any interpretable code other than that built into the app bundle before submission to Apple for review.

Objective C and C will likely still be the most optimal programming language for anything requiring high performance and the latest API support, as those are the languages for which Apple targets its iOS frameworks and tunes its ARM processor chipsets. Apple also supports the use of Javascript/HTML5 inside a UIWebView. Those are the only languages for which Apple has announced support. Anything else you will have to find support elsewhere.

But, if you really want, there are at least 2 BASIC interpreters now available in the App store, so even "Stone Age" programming methodology is now allowed.

hotpaw2