近年来,随着机器学习的兴起,一种编程语言逐渐流行起来——Python。得益于其大量开源的机器学习框架和第三方模块,以及大量内置的机器学习算法,Python逐渐受到开发者的青睐。尽管如此,我们很少能在移动设备上看到使用Python开发的应用程序。基于此,Python之父GuidovanRossum和一些Python开发者希望在未来能看到用Python编写的应用程序运行在iOS和Android设备上。其中,RussellKeith-Magee发起了BeeWare项目,旨在将CPython移植到Android,即用Python编写的应用程序可以在Android本地运行。按理说,BeeWare项目取得初步成功后应该有庆祝活动,但GuidovanRossum清楚地认识到Python在移动设备和浏览器领域都有“痛点”。1、在Android上运行纯Python应用有很多障碍。BeeWare项目的目标是允许开发人员使用Python编写应用程序。去年2月,这个目标初步实现了第一个里程碑:Android设备上的Works中的纯Python应用程序!当时,RussellKeith-Magee指出:“这不是项目的结束——而是开始。”正如他所说,对BeeWare项目的追求,绝对不仅仅是让Python应用程序在Android上运行就足够了。BeeWare的目标是使开发人员能够使用Python编写在iOS、Android、Windows、macOS、Linux、浏览器和tvOS上运行良好的应用程序。但问题是Python不能像桌面系统一样在移动设备上使用。为了解决这个缺点,Python软件基金会去年向BeeWare项目拨款50,000美元,以提高其对Android的支持水平,并且CPythonAndroid端口必须支持大多数运行4.4或更高版本的现代Android设备。对此,MongoDB工程师和Python贡献者AJesseJiryuDavis表示:“BeeWare的策略是将Python编译成Java字节码,但如今Android设备已经足够快了,Android内核足以运行CPython本身。”该计划的一个主要障碍是用Python编写的Android应用程序的规模。由于Python应用程序需要自己的运行时副本,这意味着Python需要缩小规模才能在移动设备上流畅运行。作为回应,一些人建议可以通过创建一个简化的Python内核版本来解决这个问题。此外,构建Python应用程序对于普通Python开发人员来说完全是陌生的领域。“没有子进程;套接字和信号的行为与常规Unix不同;许多系统调用被禁止,”戴维斯解释道。除此之外,资金和人才也是一个挑战。根据Python软件基金会的NedDeily的说法,提供移动支持比许多其他Python计划需要更多的资金和人力。戴维斯还表示,由于Python不支持移动设备,所以没有公司会在移动设备上资助Python,也没有人愿意依靠移动设备为Python筹集资金。2.Python在浏览器和移动设备上不成功的原因对于Python在移动设备上的开发困难,Python之父GuidovanRossum最近也给出了正面的回应:“很多人觉得如果移动应用可以使用Python就可以了写它会很好。实际上有几个人在研究它,但CPython已经30岁了,最初是为工作站、桌面和服务器环境而生的。他补充说:“但是那些设法让CPython在移动设备上运行的人发现Python消耗了太多的资源。”GuidovanRossum指出,与人们期望在移动操作系统上运行的相比,Python庞大而缓慢:运行Python应用程序的目的是快速耗尽电池电量和内存。不仅如此,他还承认Python在浏览器中可能也没有未来。“虽然Python在后端Web开发中很流行,但JavaScript确实主导了前端Web开发。”他表示,越来越多的网络开发者正在使用微软的JavaScript超集——TypeScript。GuidovanRossum总结道:“Python是一种非常流行的后端语言。在谷歌,我从事的项目都是基于Python构建的;在Dropbox,整个Dropbox服务器都是基于Python构建的。但是如果你看看运行的是什么代码,那一定是JavaScript的世界。”但GuidovanRossum并没有因此而气馁,他认为Python应该专注于有益的应用领域,包括后端网络和科学数据处理。此外,Python之父也表达了对Julia(一种可能在科学计算和机器学习领域与Python竞争,但没有Python那么丰富的机器学习和数据科学库的编程语言)的一些看法:Julia是一个非常像Python的有趣创作。在他看来,Julia在很多细节上与Python非常相似,其编译器对代码的优化比Python更好。但总体来说,Julia还是有很大的不足,属于“小众语言”。
