Are there any plans to release a Python 3.x variant of Pythonista?
Forum Archive
Pythonista for Python 3.x.
Not in the near future. There is Python 3.x for iOS though (I'm not affiliated).
Sadly it is a poor second to Pythonista in terms of stability, usability, functionality, documentation, etc.
I gave up on it once I tried Pythonista ;-)
Noob to Python that I am. I assumed that 3.3 would be better to learn than 2.7. After asking around it appears that 2.7 is just what I need.
Edit: Fixed in Pythonista3 version 3.0 (300001) (currently in beta) which is Python 3.5.1.
I also echo the request to move on up to Python 3.3.1...
Also, how about Python 2.7.3 instead of the current 2.7.0.
import sys
print(sys.version_info)
# ==> sys.version_info(major=2, minor=7, micro=0, releaselevel='final', serial=0)
print(sys.version)
# ==> 2.7 (r27:82500, Feb 18 2013, 15:52:51)
# ... [GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.24)]
UPDATE: Pythonista v1.4 now brings the Python version up to Python v2.7.5 which is the same version of Python installed by default on machines running Mac OS X Mavericks.
I agree about 2.7.3, I'm a little behind with that, though I don't think there are a lot of tangible benefits to get from that upgrade. Switching to Python 3.x is a lot more problematic because it's not backward-compatible. If I were to switch the current app to 3.x, a lot of scripts would simply not work anymore. There are also third-party libraries (like PIL, which Pythonista includes) that aren't yet compatible with Python 3.
I would also like a move to Python 3, because that is what we are moving to as our introductory teaching language and it would be fantastic to be able to recommend Pythonista to students. At the moment 2.7 is adequate. I don't know how Pillow would fit in as a replacement for PIL.
At this point 2.7.3 should not be your target because Python 2.7.4 was due to be released 10 days ago: http://www.python.org/dev/peps/pep-0373/#release-schedule
I don't want to switch to Python 3 simply because I have been practicing Python 2.7 for a long while, but if necessary I will adjust..
I'm a bit confused, i thought the majority of people were still on 2.7, whats better about 3?
Python 3 is the better language, however many libraries and tools are still not compatible with it. Fortunately it seems to get traction now.
is there any reason to it being better, as in is it faster, more powerful has clearer syntax?
Improved / cleaned up syntax, better string handling (no string vs. unicode, and a separate bytes type for binary data), views and iterators instead of lists in many places, integer types cleaned up, standard library cleaned up... You get the idea.
All this clean up not only means that the language is easier to learn, it also makes future development of the language easier, as the developer don't have to bother with legacy stuff anymore.
06 April 2013 -- Python 2.7.4 & Python 3.2.4 & Python 3.3.1
From: http://www.python.org ...
Saturday, April 6
Python 2.7.4
Python 3.2.4
Python 3.3.1
Hi Ole,
Given that tomorrow is such a big day for Python releases, it triggers the following questions? Just out of curiosity, how much work is it for you to convert a new Python release into a new version of Pythonista? Is it a simple (automated) process or is it cumbrsome and time consuming? Do you just drop cPython into your bigger XCode project and then compile and go? Is there a lot of debugging to do each time? Do you need to apply patches to a bunch of modules to shoehorn them into the iOS?
Curious minds want to know... Best of luck on upgrading us to 2.7.4. CCC
I was wondering if there's some technical/political reason not to include both Python 2.7 and 3.3. You could provide a switch in settings (set as default on 2.7)
@ccc It's mostly a manual process unfortunately, and as you're probably aware, I'm a little behind with the Python releases, but I hope to get 2.7.4 integrated relatively soon (not while it's still a release candidate though).
@lucasoldaini That's technically not possible. One of the restrictions of iOS apps is that everything has to be a single binary. Compiling multiple versions of Python into a single binary would lead to lots of duplicate symbols etc.
The three releases are now final on python.org
@omz ah, I see. I had no idea (I've never done any iOS development).
Well, if you ever decide to release a separate version of pythonista for python 3, I'd buy it in a hearthbeat.
@omz What are your thoughts on registering on http://www.gittip.com ? This is not the first that folks have offered to fund specific areas of development. What do you view as the pros and cons of this approach to folks voting for things that are important to them?
@pdxmisfit That's a possibility I'm thinking about. My primary concern is that it would result in two versions of Pythonista that would be incompatible with each other, which could be very confusing for new users ("which one should I get?"), and potentially annoying when sharing iOS-specific scripts that might be only compatible with one or the other version. To someone not familiar with the compatibility issues of Python 2 vs 3, it could also look like a cash-grab to have two nearly-identical versions of the same app.
There are technical issues too of course (e.g. some of the bundled third-party modules aren't compatible with Python 3), but this is really the main problem that I see. Your offer is very generous, and I appreciate the gesture, but funding isn't really a factor here.
@ccc I think platforms like gittip or flattr are more appropriate for open source projects. Voting on features (especially with your wallet) always carries the risk of missing expectations (because software development is often unpredictable), and as I said, I don't really need the funding.
Python 2.7.6 release candidate 1 and Python 3.3.3 release candidate 1 were posted last Sunday to fix a pile of bugs but principally to solve the tkinter issues on the Mac which become more evident because Mac OS X Mavericks installs Python 2.7.5 by default on all Macs.
Given that Python PEP 373 projects that Python 2.7.9 will be released in May 2015 and that Python PEP 404 makes clear that there will never be a Python v2.8, there are less than two years of Python 2 bug fixes.
Even the Python 2 or Python 3 page has changed in favor of encouraging people to move now to Python 3.
Given all the progress that the community has made towards Python 3, it would be good to see Pythonista move forward to Python 3 as well.
print(sys.version_info) # 2.7.0 in Pythonista v1.3
UPDATE: Pythonista v1.4 now brings the Python version up to Python v2.7.5 which is the same version of Python installed by default on machines running Mac OS X Mavericks.
Pythonista should eventually move over to Python 3. It has improved syntax, new features, and is the current standard. Python 2.7 will be phased out eventually. The only technical reason you mentioned, that lack of PIL on Python 3, is not much of a reason at all. PIL is essentially obsolete now. The Python community is largely moving to better maintained backwards compatible forks of PIL, such as Pillow, which has more features, fewer bugs, and is fully compatible with Python 3.
With that said, there is no urgency in moving Pythonista over to Python 3. I would welcome two separate versions of Pythonista for Python 2 and Python 3, but it isn't really necessary yet.
What I would really appreciate soon is a new version of Pythonista that includes Python 2.7.5 and is compatible with iOS 7. There are many bugs that significantly impair the usability of Pythonista on iOS 7, and roughly 3/4 of all iOS users are running iOS 7 now. If funding is an issue (though it doesn't seem to be), I and likely many other Pythonista users would be willing to help out.
Hi, I've purchased Pythonista today. I got to say it's the best Python IDE I've ever seen on iOS. However I'm very disappointed to see that it doesn't support Python 3. Is there something we as a community can do to help you update the current Pythonista app to Python 3?
I'm also willing to invest in any way that I can if the current app gets updated and not a new app released just for Python 3. As I do have a strong requirement for Python 3.
Python 3 is the future, Python 2 is phasing out there's no doubt about it.
Would second that as well. I've only just learned Python 3 and doesn't know anything about the previous Pythons. I bought Pythonista because everyone says it's best on the platform only to find I can't really use it. LOL
I am also a newbie, learning Python for a Bioinformatics Algorithms course. They reccommened Python 3, so that's what I started with. I'd be happy to pay again for a Pythonista 3 version, too. The cost is not a big issue if it works.
I'm also greedy for a python 3 version :-)
It's clear that python 3 is the future (and present) and python 2.7 is the past (and present).
At sometime the transition time will be almost over and everybody will use python 3, except for some legacy stuff.
Archlinux has python3 as default, fedora and ubuntu will follow next year.
Because we are in a transition time, a newbie needs to deal with this topic at the moment.
As long as he doesn't needs a library wich only is supported in python 2.7 it would be a bad idea to start a new project in python 2.7.
So I hope that after the big ios 7 update, python 3 is next for pythonista :-)
I don't mind to have two pythonista version in the appstore. A python newbie needs to be confronted with this version stuff, at the moment.
Or your could make an in-app purchase for python 3, and later on at some time you can switch to python 3 as the default a make python 2 an in app purchase.
In pythonista you could have to separate workspaces and environments one for python 2 and one for python 3.
Python 3 is now five years old!! https://mail.python.org/pipermail/python-dev/2013-December/130673.html
+1 for python 3.
please make it happen.
i also like the idea of an in app purchase.
I would be happy to pay all over again to get Python 3.
My guess would be that a single app that supports both Python 2 and 3 would be too big and confusing both for the developer and the user.
Remember that Python has all those "batteries included" standard library modules as well as extensive documentation so it would be a big executable. The current Pythonista is already a 40MB download from the App Store. Size matters but there is also the confusion factor...
The standard libraries are often the same but sometimes subtly different between Python 2 and Python 3. How does the user specify whether a particular script should be run as P2 or P3? What about text typed into the command line interpreter? Context sensitive help has a similar problem: Does help display the routine from the P2 docs or the P3 docs? Also, for the developer it is confusing to build and test all bugs in both P2 and in P3 in the same build. As bug reports come in, are the for P2 or P3, etc.
If OMZ were to dare to take on Python 3 then I would gladly purchase the new product from the App Store because it would be a very serious investment of his time and focus to deliver a great Python 3 to iOS developers.
For a cautionary tale about divided focus, see another Python app for iOS that put out 8 different versions of their Python app before abandoning its community at the beginning of this year. It is better to have a single great Pythonista that is updated and supported than divide focus too early.
New year! New hope for a python 3 version of pythonista :-)
@omz some new thoughts about this topic?
Python 3.4 has just been released https://www.python.org/download/releases/3.4.0 . It adds asyncio, enums, pathlib, statistics, etc.
Given that Python PEP 373 projects that Python 2.7.9 will be released in May 2015 and that Python PEP 404 makes clear that there will never be a Python v2.8, there are just one more year of Python 2 bug fixes. NOTE: This EOL deadline was later extended 5 additional years to 2020 as discussed later in this thread.
Given all the progress that the community has made on Python 3, it would be good to see Pythonista move forward to Python 3 as well.
I believe all the included third-party modules should now support Python 3, so they should no longer be a hold up.
With Python 3.4 now out and 2.7 approaching EOL (final maintenance release planned next year), I think it's a good time to start moving on to Python 3. Python 3 first came out in 2008 and is now the the default language for most new projects. All important libraries that one would want on Pythonista are available on Python 3, or have superior replacements available on Python 3. Switching to Python 3 will make it easier for those that are running Python 3 on the desktop.
The switch is inevitable and Python 3 has been out for 5.5 years now. It's time to move forward,
There's always 'Python 3.3 for iOS' which is $3 or 'Pythoni3.3' which is free.
Gonna put my word in. I don't really need Python 3, but it may be pretty nice to have Pythonista support Py3. Maybe you can make it so users can switch, which language they want to use (in one program), thought it might be pretty hard. Or (I think a better way) you can release another Pythonista for Py3. And yea, as ungaa said, Py3 was out for a Pretty Long Time...
I agree with ShadowSlayer that two separate apps woulde be most practical.
I am very well willing to pay for a Python 3.4 version.
When can we expect a new version (2.7 or 3.0)?
Python 2 End Of Life extended until 2020!! http://hg.python.org/peps/rev/76d43e52d978
Personally, I believe this is not a good idea because it will further slow Python 3 adoption. However, I do understand the pressure to go even slower than molasses.
Honestly my preference would be for a single app containing both 2.7 and 3.4, with a preference setting for which interpreter and lib directory gets used at startup. Yes, I'd have to pay for the extra 30+MB of iOS storage to hold that redundancy, but it means there's just one app, and it becomes possible (with an app restart potentially) to switch back and forth as needed.
Also I would happily pay $20 for Pythonista.
Z.
For those of us on slow "broadband" lines a double-sized binary would not be that welcome. I would think a separate app, with the old one disappearing over time and stabilised somewhere in between, would be best.
Honestly my preference would be for a single app containing both 2.7 and 3.4, with a preference setting for which interpreter and lib directory gets used at startup.
As I said before, this is technically not possible on iOS. The size of the app is not a factor here, but it has to be a single binary (statically linked) which wouldn't work with two different versions of Python.
To be more precise, it would technically be possible, but it requires dynamic linking, which is definitely not allowed by Apple. There is absolutely no chance this would get through review.
I haven't read the whole of this thread so I'm not sure if it's been raised already but is there any reason why you can't have a single 2.7 distribution and a 3.4 version that's only available via an IAP. It's a separate app but not one that's publicly available on the App Store. I recently looked into Python training courses at a number of UK colleges for a client of mine and they're still teaching 2.7 in the main but making students available ref the changes/differences/benefits of 3.4.
I'd expect that a good number of Ole's customers pick up Pythonista as a learning tool because is the superb built in documentation. With this being the case it's probably best if the main distribution mirrors what people are being taught in college. I'm not averse to two separate versions being available but it could prove very confusing for Python beginners so I fully understand and appreciate Ole's stance on this so far.
I haven't read the whole of this thread so I'm not sure if it's been raised already but is there any reason why you can't have a single 2.7 distribution and a 3.4 version that's only available via an IAP.
It's stated several places in this thread and others on the site that yes, there's a reason why he can't do Python 2.x and 3.x in the same app: iOS apps are required to contain a single executable with no dynamic libraries, and the two versions of Python would collide if they were not separate libraries (can't compile both into the same executable). We'd all love to have it, but it can't practically happen. (Uh, maybe with major hacking on both Python codebases, but it'd be sort of a Frankenstein-ian job of rewiring two brains to one body.)
The alternatives are: a) no Python 3.x ever; b) have a flag day and switch the app over to Python 3.x, dropping Python 2.x support - leaving a bunch of existing users scrambling; or c) release a Python 3.x version in parallel to the Python 2.x version.
Personally, since the next versions of Pythonista and Editorial are going to involve some radical changes anyway, I'd vote for making them "Pythonista2" and "Editorial2", with Python 3.x (only), and keep the existing versions around in maintenance mode.
@CarlRJ
Personally, since the next versions of Pythonista and Editorial are going to involve some radical changes anyway, I'd vote for making them "Pythonista2" and "Editorial2", with Python 3.x (only), and keep the existing versions around in maintenance mode
I would disagree with this as I still believe a version of Pythonista that supports 2.7 should be publicly available and this strategy will mean that only those that already own Pythonista will be able to access a version that supports Python 2.7. As I stated above, I understand and agree with Ole's fears about confusing potential new customers with two separate versions of Pythonista being available on the App Store (especially to those who are new to programming).
And to clarify my question above, I understand that the Pythonista app can't have both 2.7 and 3.4 Python distributions in the same app. My question was whether an IAP can direct the user to a fresh download that isn't publicly available. It's more a question of App Store policy as most IAP's I've encountered effectively switch on content/modules within an existing App.
In any case you'd call them Pythonista3 and Editorial3. :-)
Personally I wonder why @omz would continue with Pythonista now that Editorial is well established. Is there something I'm missing here?
I am a Python hacker... I use OMZ Software to hack on Python while on the move. I understand why other people get excited about Editorial but it is not my cup of tea. I have very little use for the workflows of Editorial and I find that most of its worldview and User Interface really just gets in the way when trying to write portable Python code. I own both Pythonista and Editorial as my way of supporting Ole's efforts but I rarely fire up Editorial. Different strokes for different folks.
Personally I wonder why @omz would continue with Pythonista now that Editorial is well established. Is there something I'm missing here?
You'll shake things up with that last comment @MartinPacker... :)
Different beasts I'd say. Editorial is fundamentally a plain text editor with extended functionality provided through automation workflows and Python scripting, whereas Pythonista is a full blown mobile Python IDE.
Pearsonally I'm only interested in the text manipulation stuff but that doesn't mean that there isn't a place for Pythonista in my IOS workflows, especially when tweaking/testing scripts.
Personally I wonder why @omz would continue with Pythonista now that Editorial is well established. Is there something I'm missing here?
In addition to what @ccc and @jonmoore said, Pythonista is actually more successful commercially than Editorial (currently about 2x-3x). Of course, part of that may be due to Editorial not being optimized for iOS 7 yet etc., but I still think Pythonista can appeal to a lot of people with a Python background that I couldn't easily reach with Editorial. While there's a lot of shared functionality, the focus of the apps is just very different, and I'd guess that a lot of folks find Pythonista just by searching for "Python" in the App Store.
I also have quite a lot of ideas to differentiate the apps a bit more going forward, starting with numpy/matplotlib in Pythonista...
And to clarify my question above, I understand that the Pythonista app can't have both 2.7 and 3.4 Python distributions in the same app. My question was whether an IAP can direct the user to a fresh download that isn't publicly available. It's more a question of App Store policy as most IAP's I've encountered effectively switch on content/modules within an existing App.
That's not possible. In-App-Purchases can basically just unlock existing functionality within the app or download content (e.g. new levels in a game, an e-book...), but not any kind of executable code. It's also not possible to have separate apps that are only downloadable via IAP in a different app.
I'm glad to read that Pythonista is more successful commercially than Editorial. I'm not a Python programmer, but I could use Pythonista for coding exercise and brainstorming, especially on the go, or while relaxing on the bed or couch. That really helps for my use case. :)
@omz, @ccc and @jonmoore I also have both but really only use Editorial. I guess my focus is text but could become more interested in Pythonista if I can fit it into my workflow which would, for example, feature graphics.
I still think Editorial needs better GUI components - such as a list picker - and that might be where Pythonista comes in. Dunno.
Anyhow I'd happily buy Version 2/3 of both.
I still think Editorial needs better GUI components - such as a list picker - and that might be where Pythonista comes in. Dunno.
Both will get better GUI components, but a list picker is already available Editorial (the "Select from List" workflow action). Or did you mean something different?
Thanks @omz I probably just failed to notice it :-) unless the list isn't programmatically generatable. In which case I didn't. :-( :-)
@MartinPacker β You can generate the list programmatically by using workflow variables. Because each list item is a separate line, individual items cannot contain linebreaks though.
@omz
For what it' worth, I love the simplicity of the existing 'select from list' action, especially when combined with the tab delimiting functionality. Simple but very useful for creating workflows that trigger other workflows. My whole bookmark bar is populated with 'select from list' workflows. :)
@omz so will python3 come some day? only to rule out "a) no Python 3.x ever" from @CarlRJ :-)
I'm really enjoying to code with my ipad mini retina on the go!
@omz Will play with it. I guess I'm too hung up on everything being a single Python script. Talking of which back to the Python 3 discussion. :-)
Gee, I go away for a little bit and miss all the fun...
@jonmoore
Personally, since the next versions of Pythonista and Editorial are going to involve some radical changes anyway, I'd vote for making them "Pythonista2" and "Editorial2", with Python 3.x (only), and keep the existing versions around in maintenance mode
I would disagree with this as I still believe a version of Pythonista that supports 2.7 should be publicly available and this strategy will mean that only those that already own Pythonista will be able to access a version that supports Python 2.7.
To be clear, by "maintenance mode" I wasn't suggesting pulling the current versions from the store, just not upgrading them beyond bugfixes. They both work fine on iOS 7 as is.
Short of "no Python 3.x ever", and given that both flavors can't run in the same executable, the remaining choices are either to switch both existing apps to Python 3.x at some point (leaving users with no choice), or to release new "v2" (or "v3", if you will) versions of the apps and keep the current (Python 2.x based) apps around, in which case Ole can either put extra work into keeping all four of the apps in sync, featurewise, or he can leave the current ones pretty much as-is (save for bugfixes) and concentrate new work and features on the Python 3.x versions going forward. I was voting for this latter case (and yes, I completely get that it's Ole's baby, this isn't a democracy, and we can only make suggestions / express preferences).
I was promoting the idea of doing the change at this point because (aside from "hey, more new toys for us"), Ole's recent work points towards releasing new versions of both apps simultaneously, with significant user-visible changes (sounds like Editorial's workflow entry has been "reimagined" because of the iPhone), and with Editorial going Universal.
If Ole doesn't hard-switch both apps (and all the users) over to Python 3.x at some point in the future, there will eventually need to be new Editorial3 / Pythonista3 apps, and casual users will want to see substantial user-visible changes when facing the prospect of paying for a brand new "edition" of an app (particularly on the Editorial side, since it presents to the casual user as "merely" a text editor - Pythonista users, on the other hand, will tend to see Python 3.x itself as a new major feature), and Ole's got those kind of changes in hand already, so it'd be a fitting time to make the jump.
And now I'll stop talking (sorry, I sometimes explain at length in cases where it looks like I'm arguing vigorously for or against something, when I'm actually just trying to clearly convey the precise "flavor" of my point - that's sort of what's going on here - sure, I'd like to see Python 3.x sooner vs. later, but what I'm most anxiously awaiting is the iPhone version of Editorial, so I'll be able to use the same text editor on both iPhone/iPad).
Python 2.7.7 was released today: http://hg.python.org/cpython/raw-file/f89216059edf/Misc/NEWS
That leaves just two remaining Python 2 releases: 2.7.8 in 6 months and 2.7.9 in 12 months.
Python 2.7.8 was released on 01 July 2014 so there is now just one remaining release of Python 2.
That's not quite true. Python 2.7 will be supported until 2020. See PEP 373
Nevertheless I would also like to see Python 3 support in Pythonista. Python 2 is in maintenance mode, Python 3 is where the cool new things are being developed.
I wouldn't mind paying anew for Pythonista 3. If it were possible to have both interpreters in one version, this would be even better, of course. To decide which interpreter to use, it could use the shebang line, if present, else a user preference.
Yes. That history is in my posts above but...
We are at Python 2.7.8 now and Python PEP 404 makes clear that there will never be a Python v2.8.
So, how many more release numbers can you fit into the formula: 2.7.8 < version_number < 2.8.0?
Python3 is the way to go.
As many as you like.
@ccc
2.7.10, 2.7.11, etc.
You are correct... http://legacy.python.org/dev/peps/pep-0373 now forecasts the following Python 2 releases:
Planned future release dates:
2.7.9 December 2014
2.7.10 June 2015
beyond this date, releases as needed
Hi
Has this discussion run out of steam. I am a hobbiest and a code for fun user of the iPad, a fairly recent acquisition. Apple seem to be determined to drive coders towards their Mac. products. The iPad certainly needs a functional coder app, As far as my searches go it would seem that Pythonista is top of the list. However it would seem that anyone starting now could well get nicely settled down, happily coding away when ' bang' , they find they are saddled with an outdated system.
We now have I0S-8.1 that won't accept SWIFT and Pythonista that doesn't like the look of Python 3.4. I was hoping to move up from playing around with BBC Basic for Windows. Perhaps I should buy a Raspberry PI to satisfy my fun to learn coding needs.
Steep - 86+ looking for enlightenment. π
Python 2 is highly functional. RPi is awesome but can you really take it with you in the same way that you do with your iPad?
Hi ccc. - My desktop PC and my laptop are in my home office. I practice my computer hobby from an armchair.π
I've got 'Python 3.4 for IOS' on my iPad but can't get IDLE. If push comes before pull, then suppose I will have to settle for 2.7 on Pythonista.
When I became a silver surfer and the proud owner of an iPad I thought that was it, but things do move on rather quickly in this day and age.
Just so we are clear, Python 3.4 for iOS is utterly useless.
It is based on Python 3.4.0__a0__ (which never existed) instead of the current Python 3.4.2. It does not support any of the new features of Python 3.4 (asyncio, etc.). Has not been updated in the past 20 months (as you say, things do move quickly these daze). Its author has not logged in its user forum in the past 20 months. It has no support for sound, graphics, UI, numpy, etc. And finally, it crashes left and right. In summary, it is not highly functional.
0k ccc - Pythonista it is. I'll be back π
@Steep I use RPi via prompt ssh client on ipad. I use a combination of pythonista and vim over ssh for my coding needs. It works really well. I use pythonista ui module for my ipad interfaces and tkinter for pc interfaces. To transfer projects back and forth I use shellistas, ssh/scp plugin. You can also run SimpleHTTPServer in pythonista and use wget on the rpi to grab files.
I'm going to add my request / vote / plea for a version of Pythonista that embeds Python 3. I've been developing some scripts, on my Macbook, with Python 3 and I quite like the language improvements over Python 2. I'd love to be able to use those same language features on my iPad as well. My credit card is out and I'm ready to buy "Pythonista 3" whenever it hits the app store.
IMO, I'd prefer Pythonista to stick with 2.7.x as long as that remains the default install on OS X. That way, scripts I write on my Mac or on my iPad are portable between the two systems with as little hassle as possible.
roosterboy: AgreedβI'm holding onto Python 2 as long as I can. Even if Python 3 is better, there are still things that don't support it, and I'd rather be consistent.
I mostly agree with @roosterboy - the preferred version for Pythonista should be what's included in the latest version of OS X. On the other hand, Python 3 is going to become more popular as time goes on, and eventually when we switch, a lot of things are going to break.
@omz, you mentioned you can't include two versions - is this an Apple limitation?
Here's what I'd like to see in the ideal case. First of all, Python 3 support should be a major paid release. That's a lot of work and you deserve the support. ;) I'd also be perfectly happy waiting for P3 support until Apple makes it the default. When you do, assuming it's possible to have both versions, include P3 and make it the default interpreter, but allow files to have a special comment that, included as the first line of the script, will make it use Python 2.x. You could even add that line to each file as part of the upgrade process, then warn users that new Python 3.x scripts won't be compatible with the old ones.
Most importantly, don't worry about moving along too quickly. I'd rather have an older, stable Pythonista than an unstable version with the newest language features. ;)
I too would be willing to pay for a version of python 3. I think there should be both 2.X and 3.X both sperate applications. That would allow those who have appliations in 2.X to continue to run their applications and allow those who want to write new applications in 3.x to do so. Going from 2.x to 3.x is a major upgrade and it's only fair that you should be conpensated for all your hard work.
Python v3.4.3 was released today. It is the last release listed in the Python 3.4 release schedule (PEP 0429).
The first alpha release of Python 3.5 was also released earlier this month. If releases continue to follow to the Python 3.5 release schedule (PEP 0478) then Python 3.5 will be released in September 2015.
Still no word on Pythonista moving to Python 3.
I have never used Python 3, so this isn't really a big concern of mine right now. Just thought I'd point out that apple made the concern about multiple apps less of a thing with the introduction of app bundles. You could give users free or discounted access to the second version once the first one is purchased.
How exactly do bundles work if you already own one or more of the apps in it? I know that bundles can have a lower price than the individual apps, and that there is a "complete the bundle" option to purchase all missing apps, but do the two work together? I wouldn't be surprised if Apple would make you pay the full price with the bundle completion option.
@dgelessus If you already have one or more apps in a bundle, the price you paid for them is subtracted from the bundle price. It is really the price you paid, not the current price in the App Store, so it makes a difference if you bought the other app(s) at a discount for example
That makes a lot of sense actually, otherwise you could get bundles for a lower price if you got one of the apps for free as "App of the Week" and such. Does that mean that you could even get bundles for free if you already have most of the apps?
dglessus: When I tried that (with the Mikey Shorts series), it bugged out and said "This item is not available in the US store."
I am also a newbie to Python and Pythonista (I also own Editorial, which I don't use). I was a C programmer many years ago (retired many years now). I am Learning Python as a hobby, and love I can do it on my iPad Air 2. So impressed with Pythonista, prefer using it over PyCharm on my desktop. (To be fair, maybe I have not configured PyCharm correctly as I am still learning).
But I have read most of the threads here. I concur with most about paying for a new version that somehow incorporates Python 3, in whatever way is technically possible/feasible! Also willing to open the pocket for funding, however according to @omz funding is not the issue. But still willing to do it. I would kick in 1,000usd or more! But my thoughts are that how long can @omz afford not to migrate the code. Does Python progress to a point were it becomes such a daunting task to get Pythonista up the the current version of Python? Of course I have no idea what's involved, but common sense tells me the bigger the gap between the implementations of versions the harder it will be to get Pythonista up to date, so to speak!
As a side note, I would love to see Pythonista's UI module/s ported to mac "OSX". So nice and easy to use for quick and nice GUI. I also would happily kick in for that project also! If it had a wrapper that allowed you to run the same code written on iOS to work on "OS X" that would be truly amazing in my view. Would also give us the ability to send the programs 2 ways. Final word, is I really love Pythonista, will support @omz in anyway I can
Ian
@Phuket2 - I certainly would love to have the ability to run either Python 2 or Python 3 code in Pythonista and think it would suck to have it as two seperate Apps. That would mean two seperate Document areas and lots of problems with shared code, etc.
It turns out that it IS technically feasible to use dynamic libraries on IOS but only as a developer. You have to be able to sign these components and bundle them and Apple will not do that. However as a "developer" you can do it with the available XCode tools. This makes me wonder if there would be a way to accomplish this if the user is also an Apple developer and capable of signing components from a desktop machine. This would certainly limit the market to people willing to pay the $100 to get a developer liscense, but most of users who desire 3.x support seem more then willing to pay that. You would also need to have a Mac desktop or laptop to sign and install the app. Just thinkin :-)
This makes me wonder if there would be a way to accomplish this if the user is also an Apple developer and capable of signing components from a desktop machine.
That's probably not possible, at least not without jailbreak β I would guess that all components of an app have to be signed by the same developer (or Apple).
Aside from that, bundling multiple Python versions might be a possibility on iOS 8 via dynamic frameworks (the same mechanism that Apple recommends for sharing code between apps and extensions). I haven't tried this at all, and frankly, it's unlikely that I'll get to it in the near future, but the way I imagine this could work would be by bundling two different frameworks and loading one or the other on startup, depending on a user setting. This would almost certainly require restarting the app to switch interpreters, but since it's not something that you're likely to do often, I think that would be acceptable... Again, this isn't something I'm actively working on, but it could theoretically be a way to avoid having multiple apps in the future.
@omz - I found this detailed article by a developer who was trying to find a way to implement plugins on iOS. He got it all working and found out that the only thing preventing it in production is Apple not being "able/willing" to code sign it. Have a look: http://realmacsoftware.com/blog/dynamic-linking
It is also worth noting that the developer thinks this a major issue that is holding back the iOS platform.
@wradcliffe, sorry for the delayed response. But I won't reply regarding your comments :) is over my head at this stage. I am too new to have any valid reply. As a newbie and wanting to learn Python on iOS got me searching here. Just see there are different syntaxs etc between 2 and 3. Just thought it would be more prudent for me to start on py3 giving I am just starting out. It from the little I have put together so far about what's available, I will certainly stick with Pythonista. As I said while I am not new to programming, it's just a long time ago. So many things have changed, and I find it is still a steep learning curve. Even though it's just a hobby for me, I still want to write Python properly. I see so many references to how easy Python is to learn, and to a degree, I agree. But when you take everything into account, regarding IDE's, all the different modules that can give you similar functionality etc... It's a little mind boggling. But fun. Ok, sorry I digresed!
Bottom line, would still love to see py3 in Pythonista, but it's not the end of the world if not. I am using PyCharm on my Mac, can switch between the 2 project by project as far as I can see.
@omz , really love your product. So stable and fast. I am on a iPad air 2. More stable a better than a lot of the other Mac Python apps I have used on the mac, with the exception of PyCharm (yes big cost difference also) I really wish you would consider a donate (PayPal) on your site. In all honestly, I think your product is too cheap. Thanks for a great product
@omz, thanks for all of the hard work on Pythonista. I'm currently using it to work through an edX course (MITx 6001x), which uses 2.7.x for their examples, and it works great!
I am, however, slowly working towards switching to Python 3.4 as my day-to-day desktop Python version, as well as upgrading my Django site to use Py3. Please count this as another vote to have some sort of Py3 option in the future. I'm really loving using it for the online course, and I'll really miss being able to work on some of my desktop scripts in it.
My day job is working for a Mac/iOS development company β as the video producer, not a dev, but I do understand a bit of the complexities of this kind of thing on the App Store. I realize it may be a while (and I'm happy to pay again), but just wanted to cheer you on. :) Thanks!
Python 3.5 was released today. https://www.python.org/downloads/release/python-350/
import platform ; print(platform.python_version()) # '2.7.5' on Pythonista :-(
https://docs.python.org
Looking for more chatter, it's been two months! This thread is 3 years old and no sight of Python 3.x for pythonista?
Out of curiosity, when folks complain about Py3 support, which features of Py3 are the feeling like they really use, that are not in futures ? Other than differences in how strings are handled, which can be simulated using six for programs that really need to distinguish between bytes and text, seems to me a lot of the Py3 changes are under the hood where most users won't really directly interact. I guess bugfixes might be important, but it is not like Pythonista was getting a new release for each Py version anyway.
Things that come to mind:
- Unicode handling that is not completely messed up. Even with enough future imports you cannot completely simulate Python 3, simply because the separation is not strictly enforced in Python 2 (you can
decodeaunicodestring, wtf?) and because half the code still uses 8-bitstr. Also, proper wide Unicode support, - Cleaned up stdlib names, e. g.
urllib2becomesurlliband has a cleaner structure. Minor things, but I like consistency. - New syntax, like type annotations. (That would make writing function stubs for
ctypesmuch cleaner.) - Less random language weirdness, like
printandexeckeywords, normal division on ints doing implicit flooring, etc. - Fancy metaclass features, like the
metaclasskwarg on class definitions, or__prepare__. - Chained starargs! This took way too long. Finally
func(*args, *moreargs)is allowed. - Keyword-only args in function definitions, which previously required ugly stararg hacks.
- Proper exception chaining (I think that's new in Python 3).
nonlocal.- I'm sure some people would find the
async/awaitstuff useful too.
How do the chained stargs work? If I have func(*args, *moreargs)
and I then put in func(1,2,3,4,5,6), how is it decided what goes into the list args and what goes into moreargs?
@Webmaster4o Not when defining functions, but when calling them. For example, this is how you could implement functools.partial:
def partial(callable, *frozen_args, **frozen_kwargs):
def _partial(*new_args, **new_kwargs):
return callable(*frozen_args, *new_args, **frozen_kwargs, **new_kwargs)
return _partial
Ah, ok. Now I get it.
I'm sure @ccc would point this out soon enough ;) but Python 2.7.11 was released today/yesterday: https://www.python.org/downloads/release/python-2711/
@dgelessus LOL... Yes. And Python 3.5.1 is due tomorrow: https://www.python.org/downloads/release/python-351
Brett Cannon - Where are we in the Python 3 transition? http://www.snarky.ca/the-stages-of-the-python-3-transition
@ccc , thanks. I subscribed to his blog. I read through quite a few of his blog entries. Really good info for someone like me (limited info on the history of Python and the future and more...) for one, I will start to look at Unicode seriously, it's good to do while I am still a beginner. Anyway, great info from this guy (Not just the mentioned blog entry here) and he has the credentials
Most of the posts here are 3 years old. More libraries are now available on Python 3 and it appears to be the clear direction forward for Python. My requirements are for Python 3.
Pythonista looks great and as soon as it is on Python 3 I will purchase it!
Just FYI to anyone who may have missed it - it's happening...