Python 之父:移动设备中的 Python 应用“又大又慢”!

整理 | 郑丽媛
出品 | CSDN(ID:CSDNnews)

近年来,随着机器学习的兴起,有一门编程语言逐渐变得火热——Python。得益于其针对机器学习提供了大量开源框架和第三方模块,内置大量机器学习算法,Python 在开发者中逐渐流行起来。

尽管如此,我们却很难在移动设备中看见用 Python 开发的应用程序

基于此,Python 之父 Guido van Rossum 和部分 Python 开发者都希望未来有天能看见用 Python 编写的应用能在 iOS 和 Android 设备上运行。其中 Russell Keith-Magee 发起了 BeeWare 项目,该项目旨在将 CPython 移植到 Android,即用 Python 编写的应用可以在 Android 上本地运行。

按理说,在 BeeWare 项目取得了初步成功后应值得庆贺,但 Guido van Rossum 却清晰地认识到:Python 移动设备和浏览器领域中都存在“痛点”。


在 Android 上运行纯 Python 应用障碍重重


BeeWare 项目成立的目标是让开发者能用 Python 编写应用程序,而在去年 2 月,这一目标初步实现了第一个里程碑:一个纯 Python 应用程序在可以在 Android 设备上运行!

(视频来自 BeeWare 项目)

彼时,Russell Keith-Magee 就指出:“这不是项目的结束——而是开始。”如他所说,BeeWare 项目的追求,绝对不仅仅是 Python 应用可以运行在 Android 上就满足了。

BeeWare 的目标是让开发者能用 Python 编写的应用程序,在包括 iOS、Android、Windows、macOS、Linux、浏览器和 tvOS 上都能很好地运行。但问题在于,Python 无法像台式机系统那样应用于移动设备

为了解决这个缺点,Python 软件基金会去年向 BeeWare 项目给予了 50000 美元的资助,以使其对 Android 的支持水平有所提高,而 CPython Android 端口必须支持运行 4.4 或更高版本的大多数现代 Android 设备。  

对此,MongoDB 工程师兼 Python 贡献者 A Jesse Jiryu Davis 表示:“BeeWare 的策略是将 Python 编译为 Java 字节码,但如今 Android 设备足够快,并且 Android 内核足以运行 CPython 本身。”

不过 Davis 指出这项计划的一个主要障碍就是用 Python 编写的 Android 应用程序的规模。因为 Python 应用需要自己的运行环境副本,所以这就意味着 Python 需要缩小规模以顺利运行在移动设备。对此,有些人建议可以通过创建一个简化内核版本的 Python 以解决该问题。

另外,构建 Python 应用程序对普通的 Python 开发者而言也是完全陌生的领域Davis 解释道:“没有子进程;套接字和信号行为都与常规 Unix 有所不同;并且禁止许多 syscall。”

除此之外,资金和人才也是一大难题。Python 软件基金会中的 Ned Deily 认为相比许多其他 Python 计划,提供移动支持需要更多的资金和人力。Davis 也表示,由于 Python 不支持移动设备,因此没有公司为移动设备上的 Python 提供资金,也没有人愿意依靠移动设备来为 Python 筹集资金。


Python 在浏览器和移动设备上不成功的原因


对于 Python 在移动设备上艰难的发展,近日 Python 之父 Guido van Rossum 也给予了正面回应:“许多人都觉得,如果移动应用程序可以用 Python 编写,那就太好了。实际上也有一些人在为此努力实现,但 CPython 已有 30 年的历史了,它最初是为工作站、台式机和服务器环境而诞生的。

他补充道:“但那些设法让 CPython 能在移动设备上运行的人们发现,Python 消耗了太多的资源。”

Guido van Rossum 指出,与期待中在移动操作系统运行的情况相比,Python 又大又慢:运行 Python 编写的应用会迅速消耗电池电量和内存

不仅如此,他还承认 Python 在浏览器中可能也没有前途。

虽然 Python 在后端 Web 开发中很流行,但的确 JavaScript 在前端 Web 开发中占主导地位。”他表示,越来越多的 Web 开发人员都在使用微软的 JavaScript 超集——TypeScript。

Guido van Rossum 总结为:“Python 是一种非常流行的后端语言。在谷歌,我从事的项目都基于 Python 构建;在 Dropbox,整个 Dropbox 服务器都是基于 Python 构建的。但你如果看浏览器中运行的是什么代码,那必然是 JavaScript 的世界。”

不过对此 Guido van Rossum 并不气馁,他认为 Python 应该专注于有利的应用领域,包括后端网络和科学数据处理

除此之外,Python 之父也对 Julia(一种可能在科学计算和机器学习领域跟 Python 竞争的编程语言,但没有如 Python 那般丰富的机器学习和数据科学库)发表了一些看法:Julia 是一种非常像 Python 的有趣作品。

他认为,Julia 在很多的细节上与 Python 非常相似,并且在其编译器优化代码方面更胜 Python 一筹。但总体看来,Julia 还颇有不足,属于一种“小众语言”。

参考链接:

  • http://www.zdnet.com/article/python-programming-why-it-hasnt-taken-off-in-the-browser-or-mobile-according-to-its-creator/

  • http://www.zdnet.com/article/programming-languages-python-apps-might-soon-be-running-on-android/

  • http://beeware.org/news/buzz/python-on-android-its-alive/

华为将正式发布鸿蒙手机操作系统;清华成立量子信息班;美团:外卖是微利业务,直接降低抽成无法持续|极客头条

谁将开发软件 2.0 时代的首款 IDE?

库克:苹果收取 30% ..很合理!


标签:
CSDNnews
CSDN 微信号:CSDNnews 扫描二维码关注公众号
优质自媒体

小编推荐

  1. 1 落造句(落叶造句)

    大家好,小伟今天来为大家解答落造句以下问题,落叶造句很多人还不知道,现在让我们一起来看看吧!1、20、雨落在小草上,看,草儿轻轻地在微

  2. 2 离家出走怎么生存(离家出走该如何生存)

    大家好,小美今天来为大家解答离家出走怎么生存以下问题,离家出走该如何生存很多人还不知道,现在让我们一起来看看吧!1、问题二:离家出走

  3. 3 怎么查公积金账户余额(苏州怎么查公积金账户余额)

    大家好,小娟今天来为大家解答怎么查公积金账户余额以下问题,苏州怎么查公积金账户余额很多人还不知道,现在让我们一起来看看吧!1、查询这

  4. 4 喜鹊寓意(喜鹊寓意)

    大家好,小美今天来为大家解答喜鹊寓意以下问题,喜鹊寓意很多人还不知道,现在让我们一起来看看吧!1、喜鹊的寓意有喜事到家、吉祥如意等,

  5. 5 就在今晚!怀化这些地方有暴雨→

    湖南省景象台估计今晚至来日湖南中南部局地有暴雨、大暴雨并伴有雷暴大风、冰雹等强对流天色湖南最新天色预告今天白日到晚上,湘西、湘南有

  6. 6 莱商银行网银助手下载(莱商银行网银助手下载官网)

    大家好,小豪今天来为大家解答莱商银行网银助手下载以下问题,莱商银行网银助手下载官网很多人还不知道,现在让我们一起来看看吧!1、首先,

  7. 7 机械制图符号大全(机械制图符号大全及含义)

    大家好,小豪今天来为大家解答机械制图符号大全以下问题,机械制图符号大全及含义很多人还不知道,现在让我们一起来看看吧!1、GB/T 4459.5-

  8. 8 什么叫ka经理ka是什么意思(ka经理具体工作流程)

    大家好,小乐今天来为大家解答什么叫ka经理ka是什么意思以下问题,ka经理具体工作流程很多人还不知道,现在让我们一起来看看吧!1、冠以KA经理

Copyright 2024 优质自媒体,让大家了解更多图文资讯!