Łukasz Langa
👤 PersonAppearances Over Time
Podcast Appearances
This was theoretically possible in the past with already a ton of hacks that Russell Keith-Magee historically made for a project called Beware that is just running Python on mobile on both Android and iOS. But the Python source code, our source distribution was not making this easy.
This was theoretically possible in the past with already a ton of hacks that Russell Keith-Magee historically made for a project called Beware that is just running Python on mobile on both Android and iOS. But the Python source code, our source distribution was not making this easy.
There are plenty of changes that you have to make because the phone platform that Apple came up with is very limited. It is limited by design such that it's more secure and it doesn't waste your battery too much and it does a bunch of other things that make it easier for applications to be just swiped up to kill them and they don't run any runaway processes and whatnot.
There are plenty of changes that you have to make because the phone platform that Apple came up with is very limited. It is limited by design such that it's more secure and it doesn't waste your battery too much and it does a bunch of other things that make it easier for applications to be just swiped up to kill them and they don't run any runaway processes and whatnot.
So there are APIs there that are not allowed. There are others that are just not implemented, so they're not available. So you cannot run threads and so on. So this sort of thing causes embedding Python to be complex. Then there's the new and increasingly strict rules around when you're packaging some sort of binary blob and want to put it on the official app store for Apple,
So there are APIs there that are not allowed. There are others that are just not implemented, so they're not available. So you cannot run threads and so on. So this sort of thing causes embedding Python to be complex. Then there's the new and increasingly strict rules around when you're packaging some sort of binary blob and want to put it on the official app store for Apple,
They have this automated and sometimes in person, but mostly automated review process, whether what you're publishing is safe. So there's plenty of things that interpreted language like Python would do that would be flagged by those automated systems as unsafe, that this code is doing something fishy.
They have this automated and sometimes in person, but mostly automated review process, whether what you're publishing is safe. So there's plenty of things that interpreted language like Python would do that would be flagged by those automated systems as unsafe, that this code is doing something fishy.
So there are changes needed for those things to just pass review so that your application that embeds Python can successfully actually appear on the App Store. Like including until very recently, you couldn't really have just dynamic libraries lying around in your bundle that you're publishing on the app store.
So there are changes needed for those things to just pass review so that your application that embeds Python can successfully actually appear on the App Store. Like including until very recently, you couldn't really have just dynamic libraries lying around in your bundle that you're publishing on the app store.
Everything had to be statically compiled, which puts, depending on libraries like NumPy, into jeopardy because it is very hard for external C extensions to be built in a way that they are both all part of a single binary. Now this extension is lifted, however, you have to sign everything that you're publishing to the App Store separately.
Everything had to be statically compiled, which puts, depending on libraries like NumPy, into jeopardy because it is very hard for external C extensions to be built in a way that they are both all part of a single binary. Now this extension is lifted, however, you have to sign everything that you're publishing to the App Store separately.
So it has to be notarized by Apple, it has to be signed with your application developer certificate and so on. So you know when you're sending out this code to Apple that, okay, this is the code I built, nobody meddled with it. And then Apple notarizes it that, okay, this one is safe to be run by users' phones and so on. So all this infrastructure, it seems like
So it has to be notarized by Apple, it has to be signed with your application developer certificate and so on. So you know when you're sending out this code to Apple that, okay, this is the code I built, nobody meddled with it. And then Apple notarizes it that, okay, this one is safe to be run by users' phones and so on. So all this infrastructure, it seems like
something that shouldn't really be our concern. But all of this was making it hard for Python to just be embedded. And now with Russell's hard work, this is a platform that we support. So if you want to have a text editor that has automation in Python, if you do want to have an editor for Python source code, there's a few of those, like Pythonista, Pyto, and so on.
something that shouldn't really be our concern. But all of this was making it hard for Python to just be embedded. And now with Russell's hard work, this is a platform that we support. So if you want to have a text editor that has automation in Python, if you do want to have an editor for Python source code, there's a few of those, like Pythonista, Pyto, and so on.
Now it's going to be much easier for the authors of those to upgrade to a newer version of Python. This is why all those apps lagged behind and they were still on Python 3.8 or 3.10 because it was a ton of work to upgrade and redo all those hacks in the newer Python versions. So now, unnecessary, we support it.
Now it's going to be much easier for the authors of those to upgrade to a newer version of Python. This is why all those apps lagged behind and they were still on Python 3.8 or 3.10 because it was a ton of work to upgrade and redo all those hacks in the newer Python versions. So now, unnecessary, we support it.
What were you thinking about? Yeah, what were you thinking about?
What were you thinking about? Yeah, what were you thinking about?