当前位置: 首页 > 科技观察

在Node的帮助下,跨多个平台的JavaScript赢得了

时间:2023-03-15 00:09:35 科技观察

编者按:很多人都在寻找一个能够统一编程语言世界的“老大哥”,战争从未停止过。JonnyAsmar在hackernoon上发表文章指出,因为Node的存在,JavaScript才具备了通用性,大有坐稳“头把交椅”的势头。文章由36氪整理。作者前言:这篇文章引起了很大的反响,因为很多人并不认为JavaScript是编程语言中的赢家。虽然我承认,我的标题可能会引起争议,而且可能更容易引起点击。但我还是要强调,这篇文章并不是说JS就是“***”语言。我只是在文章中简要描述了它涵盖的领域以及它使简单的前端开发人员能够做更多事情的方式。在编程的世界里,有一场旷日持久的战争。自计算机出现以来,科学家们一直在寻找一种完美的编程语言。为了满足某种目的,一种又一种新的语言被创造出来。新语言带来了新的技术时代、新的技术社区和大量的开源贡献。当然难免会有新的约束。自从Java应用程序和Flash长期统治互联网以来(我曾经是一名Flash开发人员),我们已经看到语言无缘无故地出现和消失,因为它们毫无用处。世界正在朝着不同的方向发展……那些曾经闪闪发光的新语言现在已经过时了,开发人员越来越少,新语言开始喧嚣。到目前为止,JavaScript已经有几十年的历史了。所以,你可能会想,“它去哪儿了?”本文并不是真正关于“JavaScript”语言的。它也不会讨论在它之前出现的许多语言的兴衰。此外,这与JavaScript有多“新鲜和闪亮”无关。这篇文章是关于节点的。确实有必要在一开始就区分这一点。因为Node不仅仅是一种语言。这是一个生态系统。这就是本文的主题。但不完全是。我不打算详细说明这个生态系统如何成为世界上最具创新性的开源协作的推动者。那是另一个话题。我要展示的是Node如何通过遍历现代编程的五个关键领域,赢得了一场由来已久的最佳语言之战。Web开发React、Angular、VueReact、Angular和Vue都是当今最重要的前端框架。Facebook、谷歌和FOSS社区共同合作开发了一个令人兴奋且富有成效的工具,用于开发交互式用户界面。因此,现在您在Web上所做的一切都是通过高度交互、美观且易于使用的界面完成的。这些框架之所以成为可能,是因为您已经了解了Node生态系统。你看,毫无疑问,JavaScript主导了前端Web开发,但React、Angular和Vue将它提升到了一个新的水平。这是用户界面的时代。前端开发人员不再回避构建复杂的单页Web应用程序和完整软件套件的时代。我曾经是一名网络开发人员,现在我是一名软件开发人员。就是这样……JavaScript赢得了Web开发。这部分移动开发(Mobile)ReactNative不仅仅是Node在Mobile领域的成功,还提出了另一个关键问题:Node是跨平台的。这不仅仅是“哦,太棒了,它也适用于我的手机!”,也不仅仅是“哇,YouTube适用于我的手机、平板电脑、笔记本电脑和电视!”。Node跨平台的方式是最重要的。对于开发人员来说,这是一个真正的跨平台生态系统。真正打造“哦酷”和“哇”的东西的人喜欢这个。ReactNative只是在Node生态系统中开发的框架的一个例子,它以其他框架所没有的独特方式弥合了前端开发和移动应用程序开发之间的差距。移动开发的最大压力来自网络的拉动。但是,借助ReactNative和Node生态系统,开发人员可以构建与Web、iOS和Android兼容的应用程序。没有其他语言提供这种级别的多功能性。就是这样......JavaScript赢得了移动开发。桌面开发(Desktop)Electron当然,并不是所有的事情都发生在Web上。桌面应用程序对于我们当前依赖技术的世界的运营也至关重要。但是,当Web现在可以提供功能齐全的应用程序时,为什么我们要开发桌面软件并区别对待它呢?事实上,JavaScript赶上桌面的性能需求只是时间问题。于是,Electron诞生了。当然,谈到桌面编程,还有更高效的语言可以使用,但对于我们今天使用的大多数应用程序来说,JavaScript已经绰绰有余了。感谢ChengZhao和Github创建了一个将改变桌面计算面貌的框架。Electron不仅让桌面应用程序的开发变得更简单,而且兼容Mac、Windows和Linux,它构建的应用程序可以运行在这三种操作系统上。虽然Windows仍然是当今最普遍的操作系统,但Mac已经稳步增长了15年,并且每天都有越来越多的开发人员使用Linux。此外,像RaspberryPi这样的小玩具将把Linux带入许多以前只有Windows或Mac的家庭。我想您可以理解为什么跨操作系统开发会是一个巨大的优势……而这仅仅是个开始。截至目前,Node生态已经能够全面覆盖Web开发、移动开发和桌面开发。提供能够跨所有这些平台构建相同用户界面的技能集。就是这样......JavaScript赢得了桌面开发。后端开发ExpressJS我不想在这里介绍NPM(NodePackageManager)上无数个方便后端开发的包,因此,我只提到Expresssjs,一个简单而深刻的原因:Node是为后端构建的。此外,Node生态系统中的JavaScript已成为一种多用途工具,可用于开发自己的服务器应用程序。在创建Node之前,JavaScript基本上只在浏览器中得到支持。它不需要执行复杂的服务器端操作,例如数据库读取、图像转换或压缩。但现在它可以……而且,正如上面的几个例子一样,这种代码共享和重用的显着简化产生了一些显着的副作用。其中一个副作用是服务器端渲染。你明白了吗?服务器端渲染这两个东西有什么共同点?传统上,什么都没有。但“前端”(JavaScript)或“后端”(PHP、Java、Python、Ruby等)的开发通常由两个完全独立的团队维护。两支球队有非常不同的人。但现在不是了!多亏了Node,我们现在能够在用户的浏览器甚至需要呈现之前就在服务器端组装复杂的用户界面。这就是Web现在如此流行的原因。因为Node已经消除了后端和前端之间的界限。就是这样......JavaScript赢得了后端开发。GameDevelopmentUnity3D我把这个放在***里,因为它不是真正的“Node”,它是JavaScript的东西,我想说得更广泛一点:JavaScript的成功并不是因为它比其他语言优越。它的成功是其适应几乎每个社区的能力的直接结果。JavaScript开发人员不是纯粹主义者。我们喜欢我们的语言(它不是)、版本控制、转译、跨平台、尖端、不断发展,以及过去没有语言存在的地方。这就像游戏开发!当Unity3D推出基于JavaScript的“UnityScript”作为游戏开发工具时,我当时就意识到JavaScript将要做一些非常酷的事情。这是该公司首次涉足非网络开发领域。这是一个明显的迹象,表明JavaScript不仅可以打开“飞出”菜单和调整页面上的字体大小。它可以做更多,让你喜欢这篇文章或一张图片。它可以处理身临其境的跨平台游戏体验。曾经局限于Chrome、Firefox和InternetExploder的开发人员突然也成为了游戏开发人员。尽管Unity最近宣布他们将不再支持UnityScript,但我还是要说:就这样……JavaScript赢得了游戏开发。好吧,也许不是。结语我不知道这场征服何时会停止,但Node正在疯狂地爆发。它颠覆了一个又一个的开发难题,为一种语言统治一切的软件开发世界铺平了道路。我确实觉得我需要重申——以防它被忽视:JavaScript不是任何一个领域的首选语言。JavaScript的优势在于它的多功能性。它来自一个开放社区,该社区采用了这种无类别的多态脚本语言,并将其转变为当今最大的开发生态系统。如果您有不同的看法,欢迎在留言区进行互动。原文链接:编译组制作的https://hackernoon.com/javascript-has-already-won-235b29ed126b。编辑:郝鹏程