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

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



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

先来说说 Javascript

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

  前端开发人员都比较清楚 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 快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写。

  比如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基础架构等进行性能分析,再过来就是 图形渲染、科学计算、智能化、再到运行速度、快速处理、支持的扩展库,如果是你,你会选什么呢?

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

时间: 2024-11-30 18:38:25

未来物联网全栈开发 —— JavaScript OR Python?的相关文章

为什么未来是全栈工程师的世界?

技术在过去的几十年里进步很快,也将在未来的几十年里发展得更快.今天技术的门槛下降得越来越快,原本需要一个团队做出来的Web应用,现在只需要一两个人就可以了. 同时,由于公司组织结构的变迁,也决定了赋予每个人的职责将会越来越多.尽管我们看到工厂化生产带来的优势,但是我们也看到了精益思想带来的变革.正是这种变革让越来越多的专家走向全栈,让组织内部有更好的交流. 你还将看到专家和全栈的两种不同的学习模式,以及全栈工程师的未来. 技术的革新史 从开始的CGI到MVC模式,再到前后端分离的架构模式,都在不

Python 全栈开发 -- 开发环境篇

开发环境是一个文本编辑器和 Python 解释器的组合.文本编辑器用来写代码,解释器提供了一种方法来运行编写的代码.一个文本编辑器可以像 Windows 上的 Notepad 一样简单,或是一个复杂的完整的集成开发环境(IDE),如可以运行在所有主流操作系统的 PyCharm. 为什么开发环境这么重要? Python 代码需要编写,运行和测试,才能构建成应用程序.文本编辑器提供编写代码的方式,解释器来运行.可以手动或单元功能测试看代码是否是你想要的功能,开发调试不同的功能,当然要搭配不同的开发环

Tech Insight携阿里云Link物联网平台助力实现“IoT全栈开发”

       12月19日上午9点,Tech Insight·北京峰会,在2017北京云栖大会国家会议中心准时拉开帷幕.作为年内压轴技术论坛, 吸引了大量技术决策者,和一线的工程师.运维工程师等前来交流学习.继10月10日杭州Tech Insight后,北京各场再次爆满.而首次登录Tech Insight的物联网,更是坐无虚席. 万物互联,物联网快速掘起.设备数量爆发式增长,应用数量呈粉末化状态,市场研究公司Gartner称,2017年全球物联网设备数量将达到84亿,2020年物联网设备数量将达

Meteor:快到飞起来的全栈JavaScript开发平台

"meteor"这个单词的意思是"流星",流星的特点是快,一闪而过:同样,Meteor作为一个开源的全栈JavaScript开发平台,特点就是快,目标是为开发者提供一个快速开发的平台. 本文选自<Meteor全栈开发>一书,将向您介绍Meteor为何如此之快! Meteor是什么 Meteor是一个开源的全栈JavaScript开发平台,构建在 Node.js和 MongoDB 之上.全栈开发平台已经有不少了,Meteor有什么特色呢? 虽然Meteor

全栈 JavaScript 程序员的崛起

JavaScript 无处不在 在以前,JavaScript程序员就是前端开发者的同义词,永远与浏览器绑在一起.但那已是昨日往事.Node.js的崛起开启了一个新纪元,从此,JavaScript 程序员可能不再是被局限于浏览器的前端开发者了. 相比其他高级程序语言,作为一名 JavaScript 程序员,你可以在更多的平台上发挥才能.但是现在让我们将目光放在两大主流领域上:浏览器和服务端. 为什么我非要在这两者中做出选择呢? 做为一名全栈 WEB 开发人员需要面对的问题 有句古话说得好:"什么都

也谈基于NodeJS的全栈式开发

前言 为了解决传统Web开发模式带来的各种问题,我们进行了许多尝试,但由于前/后端的物理鸿沟,尝试的方案都大同小异.痛定思痛,今天我们重新思考了"前后端"的定义,引入前端同学都熟悉的NodeJS,试图探索一条全新的前后端分离模式. 随着不同终端(Pad/Mobile/PC)的兴起,对开发人员的要求越来越高,纯浏览器端的响应式已经不能满足用户体验的高要求,我们往往需要针对不同的终端开发定制的版本.为了提升开发效率,前后端分离的需求越来越被重视,后端负责业务/数据接口,前端负责展现/交互逻

基于NodeJS的前后端分离的思考与实践(一)全栈式开发_node.js

前言 为了解决传统Web开发模式带来的各种问题,我们进行了许多尝试,但由于前/后端的物理鸿沟,尝试的方案都大同小异.痛定思痛,今天我们重新思考了"前后端"的定义,引入前端同学都熟悉的NodeJS,试图探索一条全新的前后端分离模式. 随着不同终端(Pad/Mobile/PC)的兴起,对开发人员的要求越来越高,纯浏览器端的响应式已经不能满足用户体验的高要求,我们往往需要针对不同的终端开发定制的版本.为了提升开发效率,前后端分离的需求越来越被重视,后端负责业务/数据接口,前端负责展现/交互逻

基于NodeJS的全栈式开发

随着不同终端(Pad/Mobile/PC)的兴起,对开发人员的要求越来越高,纯浏览器端的响应式已经不能满足用户体验的高要求,我们往往需要针对不同的终端开发定制的版本.为了提升开发效率,前后端分离的需求越来越被重视,后端负责业务/数据接口,前端负责展现/交互逻辑,同一份数据接口,我们可以定制开发多个版本. 这个话题最近被讨论得比较多,阿里有些BU也在进行一些尝试.讨论了很久之后,我们团队决定探索一套基于NodeJS的前后端分离方案,过程中有一些不断变化的认识以及思考,记录在这里,也希望看到的同学参

为什么你不需要做一名全栈工程师?

对所有技术浅尝辄止的所谓「全栈工程师」已经OUT,那么现在,我们需要怎样的跨领域技术综合者呢? 我敢打赌,没有人可以凭借一己之力掌握下图这些领域不断更新的先进知识.单单是紧跟每个类别中的进化和新的编程接口,就几乎是一个全职的工作量. 在Web 2.0时代,全栈工程师是可能的,但是随着新一代创业公司的兴起,推动了各种技术的边际突破.从机器智能到数据分析.再到可穿戴/移动设备,让一个程序员个体实现跨全栈编程实际上变得不现实了. 在还没有移动和Web的上世纪七十年代后期,通常是一个人从头到尾写全部的程