micropython性能低下_MicroPython可能潜在的一些缺陷

先说一下文件大小的问题,因为是要把整个python语法解析放在嵌入式板子上 ,固件至少100K以上,现在能跑都是esp8266(因为内存是在外置SPI上,存储可以做得很大),STM32F4xx这一类芯片,基本上所有10块RMB以内的的单片机都会被排除之外,但是要知道,现在市面上最大的都是些非常非常便宜的类似51这种便宜得不要不要的单片机,这导致那些对成本很敏感的嵌入式设备厂家拒绝使用MicroPython,因为省下的几块钱都是利润,比如51,一大批Contex-M0 ARM的便宜芯片都跑不了,而MicroPython目前只支持下面这些:

另外MicroPython的接口设计风格也更像是C代码风格,你看下面这种函数命令接口,很'C'对不对

而对于在PC端开发时间长的老码农,驼峰式的命令规范看上去更舒服些,当然我发现python库的命名也是C代码风格的,所以这个不算是个问题

但是MicroPython的模块没有想办法去兼容Python库模块名称和方法名称,比如说串口的包,python有pyserial,完全可以照搬pyserial的接口,操作系统完全可以套用thread,时间可以用time,这样可以PC和嵌入式编程的统一,但对不起,它另外搞了一套,学完嵌入式编程再学PC编程还要熟悉一套新的接口,心得有多累

另外如果用pycharm这种集成环境的话,编辑器没办法给你做更多的检查,甚至会给你报错

因为MicroPython包里面也没有提供machine的包(暂时没找到),所以所有的名称及相关帮助都必须查看相应的帮助文档,其实在写代码的时候,是一个很不方便的地方,有时候想看看函数定义和帮助的时候,还要去看帮助文档,而不是直接跳转到包里面就可以看到所要的一切。

而对于那些各种MicroPython编辑器,像什么notepad++,文本编辑器之类,我就不想说什么了,根本没有项目管理能力,要么连个语法检查和跳转的功能都没有,这也能算是21世纪的编程?python的快速开发的优势一下就没有了

python拥有很多的现成的资料和库可以调用,开发非常快,这是python能够火起来的一个很重要的原因。但是MicroPython有一个很重要的环节没有去做,就是开发板的模拟器,这造成了针对MicroPython开发的python代码根本没有办法在PC上跑,不仅不能看到运行结果,可能还会因为类似'machine'这种包不存在而无法在PC机上编译通过,只能下载到板子上才能调试和查看运行结果

另外再就是MicroPython是在运行时解析Python,速度肯定快不起来,所以最好不要在代码里面做很多的计算,会很慢,做流程控制还是可以的

以上种种,可以算得上MicroPython在设计之初就可以存在的缺陷。

----------------------------------漂亮的分割线-------------------------------------------

不过我们目前在设计一种新方案,我们目前称为uPython,语法规则和库都会做得和原生的python一样

设计思路上和MicroPython不一样,为了适配更小ROM和RAM的单片机,我们会把python代码先编译成uPythonObj的伪机器代码,板子上只要解析一下这个伪机器代码就行,所有的语法解析工作都在PC机上完成,在单片机上的执行效率会高很多,对内存的需求也会小得多。

另外会有计划做开发板的模拟器,这样就可以在脱离板子的基础上也能跑python代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值