为什么使用JavaScript和物联网?

在Web应用程序的客户端和服务器端世界中,JavaScript已证明自己很有价值,但为什么它在不断扩展的物联网(IoT)中具有潜力?

在过去的两年中,我介绍了JavaScript开发人员可以参与的越来越多的技术,这些技术涉及我在2014年 SitePoint上发表的文章《我的JavaScript超越网络》和《 JavaScript超越网络》以及会议和聚会上的各种演讲中。 对JavaScript和IoT的热情很高,这非常好(很高兴知道我并不孤单),但是许多开发人员提出了一个非常合理的问题–为什么选择JavaScript? 在物联网中使用JavaScript有什么优势? 我认为,更详细地探讨这个主题并以书面形式写下我的许多想法将很有用。

互联网上的许多人已经在讲JavaScript

物联网的整个想法很简单。 我们希望将一系列新设备连接到Internet,以便它们可以与世界各地的服务器和设备对话。 虽然下一个改变世界的大型物联网设备可能不会出现(这仅仅是技术的本质吗?),但我们知道它可能站着的技术Struts-将设备连接到Web API以新的和出乎意料的方式(希望)造福社会。 我们的网页和Web应用程序现在可以说什么语言? JavaScript。 将相同的标准平台扩展到物联网,并使用相同的语言与更大范围的设备进行通信是有意义的。

我们可以共享功能

JavaScript的无处不在的能力是巨大的。 将设备网络连接到服务器时,让它们都使用相同的语言可以使生活更轻松。 如果您拥有大量都可以理解JavaScript的不同连接的设备,并且您的服务器运行的是Node.js,那么您可以降低复杂性,并且可以共享在不同设备上执行相似功能的功能。 假设您的应用程序中包含业务逻辑,您需要将其重新用于不同的设备和服务器响应。 使用JavaScript,您可以轻松地将相同的函数重用以调用不同的设备-一次构建并重用。

现有的库,插件和API

JavaScript具有一系列现有的库,插件和API,其中许多可以在物联网中使用。 尽管旧版的jQu​​ery插件对于非客户端代码并不是最可重用的,但JavaScript中的npm模块正在不断发展,这些模块可在客户端,服务器以及其他方面的多种解决方案中重用。

像JavaScript工具库Underscore.jslodash横移异步可以完美的范围在不同设备共同的情况下使用。 以上模块中有一些非常强大的功能,这些功能对于物联网项目很有用。

完美适用于IoT的出色JavaScript模块的另一个示例是Socket.io ,该模块可在多个设备之间提供基于事件的实时通信。

无需为其中的一些基本内容构建一系列新的库和插件,我们可以重复使用并进一步开发当今在网络上使用的现有解决方案,以实现全新的实现。

JavaScript非常适合事件驱动的应用程序

JavaScript非常适合事件驱动的应用程序。 这些类型的应用程序中,每个设备都侦听各种事件,并在其关心的事件发生时做出响应。 Socket.io擅长于此。

节点具有“事件循环”。 尽管实际上并不在这里进行详细说明,但它使我们能够执行许多任务,而无需等待每个任务完成才移至下一个任务。 我们可以接收事件并对其进行响应,然后等待每个事件的回调,一旦完成就通知我们。 这意味着我们可以在事件发生时做出响应,同时处理许多任务,因为它们可以同时处理。多个设备也可以响应同一事件。 这在物联网中效果很好。

假设您有一个启用了Internet的家庭,该家庭带有一个智能热水浴缸,当您回家时,热水桶注满了水。 这是一个相当随机的例子,但让我们继续吧! 您的手机发出信号,表示您离家大约五分钟路程。 浴缸会看到此事件,并自动开始加水。 您也想赶上Gotham的最新剧集,因此打开手机应用程序,然后选择下载并在到达时在浴室热水浴缸上方的大显示屏上播放该季的最新剧集。 是的-这是一个非常漂亮的热水浴缸。 浴缸会收到此事件,并开始查找您观看了该节目的哪些节目。

突然,您意识到自己忘了在回家的路上捡些牛奶。 与所有喜人的技术突破一样,您的待办事项应用程序仍然容易出现用户错误。 您已经设置了提醒,以防偶然获取明天的牛奶,并且不得不在最后一刻依靠人类原始的大脑! 您转过身去最近的超市。

您的电话会注意到方向的变化,并表示您不再回家。 浴缸看到了这个事件,暂时停止加水。 无需等待直到为您检索了最新的哥谭情节列表,然后再响应此更改,浴缸即可立即处理此请求并停止加水。 一旦找到了看不见的情节列表,浴缸就会发现我们已经有了该列表,并在您喝牛奶时下载了下一个情节。 一旦您再次回家,手机将再次发出信号。 浴缸会看到此事件,并在完成下载的同时重新打开水。 踏入浴室后,您就准备好热水浴缸回家,Gotham也在播放。

JavaScript已经成熟为一种语言

有一个普遍的误解,认为JavaScript仍然是一种杂乱的语言。 我不同意。 完全有可能使用现代JavaScript实践来构建非常稳定和可维护的代码库。 JavaScript是一种足够成熟的语言,其功能远比面向客户端的简单应用程序要多。 我们已经有了诸如JSHint之类JavaScript语言,以确保代码符合特定标准,并拥有诸如Mocha之类JavaScript测试框架,它们也有可能扩展为与IoT系统一起使用。

数据

每种语言都有其特质,在不同的设备上使用不同的语言意味着要处理这些语言。 通常,您必须将数据转换为其他语言所需的格式,然后再将其转换为相反方向的格式。 有些语言比其他语言处理得更好,并且通常有记录的数据传递方法,因此并非没有可能。 但是,如果您不必为此担心太多,那不是很好吗? 想象所有的设备都以相同的方式理解数据类型。

JavaScript已打开

不需要JavaScript开发人员使用特定的IDE或单个操作系统。 无需支付年费即可使用该语言发布应用程序。 没有一家封闭的大型公司从最黑暗的深度保护其语言及其发展。 JavaScript是一个开放标准,可以使用多种JavaScript引擎来实现。 我真的希望JavaScript的开放标准将导致许多开放的IoT设备可以相互协作并相互构建,从而使开放Web的理想始终存在并进入整个互联网的新时代。

对于新开发人员而言,JavaScript是更好的选择

我认为,当涉及使开发人员参与物联网的各种选择时,JavaScript的进入门槛最低。 对于初学者来说,这是一种较容易理解的语言,但是存在将结构构建和发展为真正可扩展系统的高级方法的整个领域。

一个不可思议的社区

JavaScript社区是一个不断发展且非常开放的社区。 令人振奋的新模块和技术无时无刻不在出现,并且开发社区正在以非常积极的方式不断发展。 我认为,仅此一个原因就是JavaScript非常适合于物联网中不断发展的技术的重要原因。

该社区中有一些相当聪明JavaScript开发人员,他们已经使用了该语言及其细微差别多年。 他们在建立测试驱动的模块化JavaScript应用程序方面具有专业知识。 还有许多JavaScript开发人员也非常热衷于提高和发展自己的技能。 我很乐意看到所有这些才华横溢的人们尝试着超越传统的网络,并尝试使用新设备编写交互式体验。

它已经开始了

免费学习PHP!

全面介绍PHP和MySQL,从而实现服务器端编程的飞跃。

原价$ 11.95 您的完全免费

已经有启用JavaScript的IoT设备。 有关其中一些内容的概述,请参阅2014年我的JavaScript超越网络JavaScript超越网络文章。

结论

您可能会说,我是JavaScript在这一领域发展的热心拥护者。 我希望在未来几年内在物联网中使用JavaScript有很多优点。

这些都是我自己的观点,但是我也很想在评论中听到您的想法。 我错过了优势吗? 我本来可以说的更好? 到目前为止,您是否想分享JS和IoT方面的经验?

JavaScript拥有一个庞大而充满激情的社区,我希望它将显示出同样的兴奋和激情,以无人能及的方式将他们的技能带入物联网。

当我在Twitter上提出问题时,感谢Phill FarrugiaJeremy Brown的想法。

翻译自: https://www.sitepoint.com/javascript-internet-things/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值