未来物联网全栈开发的主流语言是什么?
CSDN推出的讨论话题是:未来物联网全栈开发主流语言是什么?
小虎老师,从考试角度来分析此题,也就是先要审题,抓住几个关键信息:
1.未来的
2.物联网
3.全栈式开发
4.主流语言
5.两个语言中,选一个,即JavaScript、Python;
小虎老师,尝试逐一分析,各个击破,所谓:系统分析法,即SA法。
一、未来开发有什么特点和趋势:
1.简单、快速、高效;
2.满足web开发,浏览器开发是基础;
3.面向对象语言、可以科学计算,能够大量计算复杂、大量的任务、更好融合人工智能框架、平台,总之要包罗万象,什么任务都能干,应用场景很宽泛,也要有深度;
二、物联网未来的特点和趋势是什么?
1.设备更小,速度运行更快,功耗更低,传感器精度更高,功能更强大;
2.会利用人工智能技术,如深度学习、机器学习等成熟技术,更加智慧;
3.会与市场上各种新技术快速融合,如人工智能、虚拟现实、区块链等;
4.物联网的安全性提上议事日程,迫在眉睫;
5.跟各个行业更加紧密结合,深耕细作来进一步发展,如汽车,跟无人驾驶,如医疗,如便携式医疗设备,医生远程诊疗患者等;
三、Python与JavaScript的区别:
1.学习成本
python语法简单,本身就容易上手。
2.语言优势
Python和Javascript都支持多种不同的编程范式,但是在面向对象的编程上面,它们有很大的区别。
Javascript的面向对象是基于原型(prototype)的,
对象的继承是由原型(也是对象)创建出来的,由原型对象创建出来的对象继承了原型链上的方法。
而Python则是中规中矩的基于类(class)的继承,并天然的支持多态(polymophine)。
Python写起来要比Javascript舒服很多。
2.线程模型
在Javascript的世界中是没有多线程的概念的,并发使用过使用事件驱动的方式来进行的, 所有的JavaScript程序都运行在一个线程中。在HTML5中引入web worker可以并发的处理任务,但没有改变Javascript单线程的限制。
Python通过thread包支持多线程。
4.与其他语言的交互
Python的特征之一:可以访问底层语言的,C/C++ DLL/so,Java类库,.net等。所以多用于整合旧有系统。
5.框架、库
Python的各种框架,库很多。
Python自由使用select,poll , epoll 等异步io方式。
6.技术覆盖面
node.js、Python都覆盖嵌入式、桌面、服务器,但是Python还覆盖到IC(VHDL),科学数据分析,金融数据分析。前端与UI渲染是Javascript的领域。此外,移动APP是JavaScript胜出。
7.代码维护
Javascript设计本身有许多缺陷,毕竟当时设计的时候只是作为在浏览器中做一些简单任务的script,所以代码一旦庞大,维护还是有困难。
8.扩展性
毫无疑问,除了lua,还没有别的语言可以说有python的扩展性便利了,对于计算密集型的业务或者功能可以轻而易举的使用C语言来自定义扩展。更何况python自身还存在几何倍数于npm的扩展包。并且你还可以直接对框架层面进行修改跟自定义(当然在许可证许可的条件下),重新定义引擎行为,eventloop行为,自由度高。
结论:
未来物联网全栈开发主流语言是Python,JavaScipt为辅。