未来物联网全栈开发 —— JavaScript OR Python?

未来物联网全栈开发 —— JavaScript OR Python?
物联网开发涉及面庞杂,开发周期长,所以我们必须寻找一种覆盖面广的编程语言和方法。
JavaScript 支持 HTTP 和 JSON 、支持函数式编程、可提供交互式环境等特点堪称适用于物联网全栈开发;
Python 作为一种胶水语言,可在物联网及嵌入式系统中承担大量任务,并部分替代以上语言。


  物联网是新一代信息技术的重要组成部分,也是“信息化”时代的重要发展阶段,不太清楚的可以看上篇文章《IoT领域的故事、经历、技术实战》,正所谓语言无国度,无论是 Js 还是 Python , 都有各自优点,最主要还是要看个人选择自身比较合适的语言。但是在未来物联网全栈开发的基础上,个人觉得 Python 作为主流且更具有优势,不信?请看文章最后的一句话。


未来物联网全栈开发 —— JavaScript OR Python?

先来说说 Javascript

  可能很少人知道 js 的前身,Javascript 的前身叫LiveScript,是Sun公司推出Java后 Netscape 公司引进的,当时因为某些原因,它将原有的 LiveScript 重新进行设计,参考了面向对象的概念,并更名为 JavaScript,据说是因为一位小职员在无聊时开发出来的自身版本 。
  之所以取名JavaScript,是因为JavaScript是作为一种嵌入HTML文档的、基于对象的脚本设计语言。其中很大一部分的语法同Java语言很相似,而且JavaScript的设计可以使它很容易地同Java语言一同工作,它可以充分支持Java的applet小应用程序,Java的 applet小应用程序也可以很方便地访问已有的JavaScript代码。所以,也可以JavaScript看成是Java语言的某种简化版本。

未来物联网全栈开发 —— JavaScript OR Python?

  前端开发人员都比较清楚 JavaScript 的优点,来排列下:

  1. JavaScript 可以减少网络传输。
  2. JavaScript 拥有跨平台性。
  3. JavaScript 简单、方便操纵HTML对象。
  4. JavaScript 支持分布式运算。
  5. JavaScript 简单弱类型,并且相对安全。

  可是它也有局限性,如各浏览器厂商对JavaScript支持程度不同,“Web安全性”对JavaScript一些功能牺牲,如 .NET 大多数攻击都是通过 Js 运行脚本注入。

目前在互联网上有很多浏览器,如Firefox、Internet
Explorer、Opera等,但每种浏览器支持JavaScript的程度是不一样的,不同的浏览器在浏览一个带有JavaScript脚本的主页时,由于对JavaScript的支持稍有不同,其效果会有一定的差距,有时甚至会显示不出来。


再来说说 Python

  胶水语言,同样的也是面向对象,但我更喜欢称它为“蛇”语言,一种 C 和 shell 之间的语言,功能全面,易学易用,可拓展的语言,为什么这么说,在你会 Java 的基础上,如果你同时学 Js 和 Python 的话,我想,Python 会更快胜任。

  开发游戏里有一种常见的应用情形,需要快速生成模型。如何操作?

  使用 Python 快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写
未来物联网全栈开发 —— JavaScript OR Python?
  比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。

Python 在吉多手中诞生了。实际上,第一个实现是在 Mac 机上。可以说,Python 是从 ABC 发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了 Unix shell 和C 的习惯。

  如果你使用过,应该对它所支持的扩展库印象会很深刻吧,它可扩展性和可嵌入性,包括实用性非常强。如著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK,还有最近在帮公司开发的高级反编译读取库(暂定命名YHK)。


未来谁是王者

  那对比优缺点和使用规则之后我们发现,两者各有千秋,未来物联网发展离不开一样东西,那就是智能化与科学计算,国外这几年比较主流的是 MATLAB,记得上家公司带领的团队里有个英国留学回来的哥们,和他聊过几次,了解到,其实在国外,MATLAB 一直都是比较主流的,但它是商用,和oracle一样,需要付费,且价格不菲。由此可见,国外走的不是“程序、产品、项目”,而是“机器人、智能、科学计算、图形、算法”这些,当然国内也有,却是非主流的趋势,今年才感觉到市场的趋势改变,也许未来会着重发展,所以单从这一点来看,科学算法占用了很大的比例。

用 Python 做科学计算有如下优点:

  • 首先,MATLAB 是商用的,且价格不菲。而 Python 完全免费,众多开源的科学计算库都提供了Python的调用接口。用户可以在任何计算机上免费安装Python及其绝大多数扩展库。
  • 其次,与MATLAB相比,Python是一门更易学、更严谨的程序设计语言。它能让用户编写出更易读、易维护的代码。
  • 最后,MATLAB主要专注于工程和科学计算。然而即使在计算领域,也经常会遇到文件管理、界面设计、网络通信等各种需求。而Python有着丰富的扩展库,可以轻易完成各种高级任务,开发者可以用Python实现完整应用程序所需的各种功能。


  由于Python语言的简洁性、易读性以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python来教授程序设计课程。例如卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学及编程导论就使用Python语言讲授。

  众多开源的科学计算软件包都提供了Python的调用接口,例如著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK。
  Python专用的科学计算扩展库就更多了,例如如下3个十分经典的科学计算扩展库:NumPy、SciPy和matplotlib,它们分别为Python提供了快速数组处理、数值运算以及绘图功能。因此Python语言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。



  电商、游戏、爬虫、数据分析等商业应用,再到 分布式系统、网络系统、大规模数据存储、web基础架构等进行性能分析,再过来就是 图形渲染、科学计算、智能化、再到运行速度、快速处理、支持的扩展库,如果是你,你会选什么呢?

未来物联网全栈开发 —— JavaScript OR Python?



|| 版权声明:本文为博主杜锦阳原创文章,转载请注明出处。http://blog.csdn.net/djy1992/article/details/71712628

上一篇:Silverlight 结合ArcGis 在地图上画线


下一篇:我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。