views:

125

answers:

2

Note:

The VM mentioned in here is not like in VMWare or VirtualBox, it is more like Java Virtual Machine (JVM), (as well as Python and Ruby). That is, the fact that objective c is an interpreted language, should make it easier.

For a long time I wondered if the following idea worth a nickel or just a waste of time and energy. I am willing to start a project which will provide a kind of a VM for all iPxxx apps - so developed once for iPxxx can run on a Macbook, iMac, Linux, Android and windows (desktop and mobile). You get the idea, right?

I want to do to the current iPhone SDK, the same as what Mono did to Microsoft .Net and perhaps a more complete set of implementation.

I tend to believe that if overnight all apps on appstore become available on the android market as well that would be a mini revolution. Think about running iPad apps on every tablet that will come out to the market in the future.

Wouldn't it be fantastic to all the developers, which from now on, can write once and sell everywhere?

The main questions which I ask myself repeatedly is: "Is This Legal?" - I mean, say I have done this, would apple's lawyers will start sending me all kinds of nasty emails?

I am willing to hear your opinion about this idea as well as if some of you willing and able to join forces and start this open source project.

A: 

I think this task is not a trivial one. Implementing a VM (Java?, Inventing your own language?) is not an easy task. Every VM implementation has tons of hours of design and development carried out by many skilled engineers. Even if you attach to standards (i.e. you could maybe implement a Python interpreter) instead of reinventing the wheel, this is sure a lot of work (at least for a one-person-project). Moreover if you try to implement a new approach (language?) you need to take programmers into account. How would you make your language/platform popular enough to let programmers create good applications?

On the other side (leaving legal issues out, that there surely be many), instead of thinking big, haven't you wondered how would you distribute your VM installer? I do not know iPhone very well, but as far as I know you can only install applications through iPhone Market. If your VM simply does not make fun to Apple it would be turned down with the ease of a click. No matter how many hours have you invested in your project. And no matter what you fight, if Apple doesn't like it, game over. Look at Flash for instance. They are just pushing to get what you are trying to do (or just already did) with Flash 11. What happened here? Apple doesn't want to let others take a slice of control of their platform. Game over Adobe on iPxxx. Do you think that what a big Corporation with gazillions of users, money and lawyers like Adobe couldn't do, would be feasible for a bunch of passionate programers employing a few hours of their spare time and little or no financial/legal support?

Fernando Miguélez
I think you've misunderstood this question a little. The idea is to create a VM which runs current iPhone applications on other platforms, not run new applications on the iPhone. The comment on effort required is still very valid though!
Adam Pope
+2  A: 

There is not much benefit in porting from phone to desktop. While that is essentially a freebie once you write the VM, it is not compelling in itself. The touch interface does not always work well with a mouse.

The reason to write it would be to add 100k free apps to android. I say free because there would be no reason to buy them, since you could just copy them. The VM would be equivalent to a jailbroken phone in terms of piracy.

Legally, I think you would have no better standing the psystar did. If you are making a pure VM, then you are installing Apple OS on unlicensed hardware. I am no lawyer, but I cannot imagine they would embrace the project. You could also try to be like Wine, implementing the entire OS from scratch.

As far as the actual feasibility of running apps in a VM on Android, I would have low expectations. Apple hardware is better than average, while Android hardware covers a wide range. Many apps would run poorly or not at all on a lot of the android hardware out there, even if there was no overhead for the VM. And there will be overhead for the VM.

drawnonward
benefit? is there a real reason why iPad apps won't run on a macbook?benefit? is there a real reason why iPad apps won't run on an android tablets?
Tzury Bar Yochay
iPad and iPhone apps do run on a macbook. It is called the simulator. If there was demand for such a things, people could easily ship simulator only apps.
drawnonward