Well... I'm going to use this post to talk a bit about Pharo in iOS, because it 
is more complex than "having a vm working"
But first, a summary of where we stand:
1) The Stack VM is working with iPhone/iPad, but needs some minor adjustments 
(some tuning). 
One problem here is that I didn't integrate it to CMakeVMMaker (and as a 
consequence, to hudson), so build it is not a trivial task. But I will, as soon 
as some one jump and say "hey, I'm going to use it, for real!"... or as soon as 
I can find a free afternoon... it is planned (and I worked a little on this), 
but it is not a priority right now :)
2) The Cog (I mean, the jitter) will never work on iPad/iPhone, because of the 
apple license (clause 3.3.2) and because of the security sandbox policy. But I 
think the Stack VM can do a pretty job. No, I'm not going to prepare this just 
for recreational purposes because I do not have the time, and the community 
work I do should be spent in things the community can use... and I think that 
Eliot (who is, in fact, the one who can do this, I'm just a builder) will think 
similar :)

So... if we have a vm running on iOS, why there is no a legion of fellow 
pharoers taking over the appstore? 

Well... because it is not enough. 
There are several problems, besides the vm working or not (to be fair, the 
interpreter vm works on iphone since at least two years, and John is the only 
one who succeed on pushing some nice smalltalk apps into the appstore). 
The main problem is that our morphic world is ok for desktop working, and some 
times for desktop commercial apps (like those of pinesoft), but it just can't 
be used to create real apps for the iPhone/iPad market. There are some 
exceptions, like some eToys work and probable the developing of games like 
"tic-tac-toe" or so... (I mean: graphic games who can be done with morphs). But 
as a general rule, you can't do a real app in pharo/squeak who runs in the 
iPhone/iPad and can be sold in the appstore.
To overcome this problem, what John does is to create the full view in Cocoa, 
and "plug" the model to pharo/squeak images, using pharo as a module of a cocoa 
application. This can be done for several apps (and the fraction calculator is 
an example), but fails when you want a deeper interaction (because of the cost, 
not just in "programming time" but also the "translation time" between the 
cocoa app and pharo: it is just not good enough to bring a cool user experience 
(at least in all my experiments it was the case)

There is another possible approach, who I think is the better in the long way, 
and that is what I was doing with Deimos project: using a bridge to construct, 
in pharo, real cocoa UI objects... the advantages with this are obvious. 
Nevertheless, there are also some problems with this approach: 
1) last year I was working on this, and apple changed a clause. The result can 
be expressed as if they executed: 'deimos become: shit'. Months after they 
review the policy, but I was concentrated on Mars (the desktop equivalent to 
Deimos). I will continue this, but first I want to finish Mars, and also I need 
to solve the problem below: 
2) there are also a performance problem with the ObjectiveC plugin and 
callbacks. In all my experiments, I never went below 70ms executing a callback 
from cocoa to pharo (and that's necessary, for example, to fill tables). The 
minimum time needed to have a cool "scroll" effect on tables is 40ms. Of 
course, iPhone 4 is better than 3gs... but the problem remains. The real thing 
is that ObjectiveC plugin relies on a semaphore communication model, and that's 
not good enough. So... I think the better approach here is to port FFI-Callback 
plugin (latest work of Eliot) to iOS. FFI-Callback plugin uses a whole 
different approach, who can overcome this performance issues (and some other 
who's not the case mention here). 

So... yes... I would love to finish this soon. But right now, other issues are 
top in priotity, and I just can't promise a release date. (Of course, the 
stackvm for iphone will be compiling on hudson some time soon... before ESUG 
for sure)

hope this can explain all the status... :)

cheers,
Esteban

El 25/05/2011, a las 11:56a.m., Igor Stasenko escribió:

> On 25 May 2011 16:22, Steve Wirts <stevewi...@gmail.com> wrote:
>> Hi All,
>> Sorry if this topic has been covered in a previous email, I couldn't find
>> anything conclusive so I'm posting it for my own clarity.
>> I am a smalltalk programmer at heart but have been working in java at a java
>> shop for sometime.  Recently there's been a very strong directive from
>> management to "get everything working on an iPad".
>> I see a great opportunity to introduce pharo at the moment but need a way to
>> deploy to iPad/iPhone devices.  I'm not a c programmer and am overwhelmed at
>> the thought of trying to build a cog vm for ios devices.
>> 
>> Is there a binary package of cog vm for iPad/iPhone available somewhere?
> 
> Ask Esteban! :)
> 
> -- 
> Best regards,
> Igor Stasenko AKA sig.


Reply via email to