[Python-ideas] Fwd: Adding iOS/Android support to Python

Russell Keith-Magee russell at keith-magee.com
Sun Oct 26 01:32:30 CEST 2014


On Sat, Oct 25, 2014 at 3:36 PM, Todd <toddrjen at gmail.com> wrote:

> On Oct 25, 2014 4:22 AM, "Russell Keith-Magee" <russell at keith-magee.com>
> wrote:
> >  3) Disabling certain modules on mobile platforms. Supporting modules
> like linuxaudiodev, ossaudiodev, readline, curses, idle and tkinter on
> mobile platforms doesn't make much sense; modules likes bsddb and bz2 are
> difficult to support due to library dependencies; and the need for modules
> like multiprocessing is arguable (and difficult to support on mobile). Even
> providing a Python executable/shell is arguable for these platforms.
>
> I would definitely be extremely interested in a python shell in android.
> One thing I feel are lacking on android are good advanced mathematical
> tools and and python shell with appropriate libraries could make a very
> powerful open-source tool for that.  There have been some attempts at that
> already.
>
Yes - and (to the best of my knowledge) none of them provide the default
Python shell. They're custom user interfaces, using native system controls,
that provide a shell-like UI. What I'm talking about here is the literal
"python.exe" build target - the one that is an executable that starts and
expects to attach to stdin/stdout. *That* executable isn't practical on
Android *or* iOS, because neither platform has the concept of a "console"
in the traditional Unix sense of the word.

> I would also differentiate android and iOs more.  Android seems to be
> betting on multi-core performance while iOs seems to be betting on
> single-chore performance. So while multiprocessing may not make much sense
> on iOs, I think it may be more sense on Android, especially if they move
> from 4 to 8 cores.
>
Firstly - I don't know what gave you the impression Apple devices aren't
multicore - every Apple processor since the A5 (introduced in the iPhone 4S
and iPad 2) has been at least dual core, and the A8X in the newest iPads is
triple core.

Secondly, if you're assuming "multicore" automatically means "mathematical
powerhouse", you're mistaken. If you're planning on doing serious
mathematical heavy lifting on a phone... well, you've already made your
first mistake :-)

> Similarly, ultimately android is Linux-based, so things like readline
> should work, and it seems others have been able to get it to work, and bz2
> seems to work fine on third-party android file managers.
>
iOS is Posix under the hood as well. My point was that readline and curses
make a whole lot of assumptions about the type of terminal you're using,
and if you're writing a halfway decent UI for a mobile platform, you'd
probably be better served throwing those tools overboard in preference for
something that takes native UI controls into account.

As for bz2 - I can't think of any reason it wouldn't work on Android (or
iOS either, for that matter); I was more flagging the fact that it has
binary dependencies which need to be resolved, and external dependencies
complicate the cross-compilation process.

More broadly, as a result of both these points, I was trying to gauge the
extent to which "complete availability of all Python modules" would be
considered a requirement of any official effort to port Python to Android
and iOS.

Yours,
Russ Magee %-)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20141026/58b22865/attachment.html>


More information about the Python-ideas mailing list