Javascript
我在编程语言之间的战争中声称自己是“胜利者”,因此该帖子引起了极大的抗议。 我承认,我的头衔可能是引起争议的,可能是“点击行为”,但我仍然要强调一点, 这篇文章与JS如何成为“最佳”语言无关 。
它只是关于它所覆盖的纯粹领土,以及它曾经允许过的简单前端开发人员做更多事情的方式。 这是我在职业生涯中真正爱上的一种多功能性,我感到有必要鼓励。
所以…
在编程世界中,很久以前就发生过战争。 自计算机问世以来,科学家一直在寻找完美的编程语言。 一个接一个地创建了一种新的语言以适应某些目的。 伴随着这种新语言,出现了一个新的技术时代,一个强大的社区,一百万个图书馆和开放源代码的贡献,以及(不可避免的)新的局限性。 自从在Java小程序和Flash可憎性的汇编编程的古老时代(我曾经是Flash开发人员...)在网络中占据主导地位很长时间以来,我们已经看到语言来来去去的原因无非就是它们的用处累死了。
世界朝着另一个方向前进...
这种曾经崭新的语言现在变成了旧语言,开发人员逐渐减少,一个新手开始发出一些声音。
现在,Javascript已经存在了数十年。 因此,您可能想知道,“他要去哪里?” 好吧,这篇文章不是关于“ Javascript”的。 也没有关于它之前兴衰的许多语言的信息。 也不关乎Javascript如何“新颖而闪亮”。
这篇文章是关于Node的。
我们确实需要开始区别对待。 因为Node是别的东西。 它不仅是一种语言。 这是一个生态系统。
这就是这篇文章的主题。
好吧,不完全是。 我不会详细介绍百万个半原因,因为生态系统是全世界有史以来最创新的开源协作的推动者。 不,这是另一天的话题。 现在,我仅说明遍历现代编程的五个关键领域,从而Node已经赢得了一场争取完美语言的古老战争:
网络
React,Angular,Vue
React,Angular和Vue很容易成为当今最重要的前端框架。 Facebook,Google和FOSS社区共同开发了令人难以置信的高效工具,用于开发交互式用户界面。
因此,实际上,您今天在网络上所做的所有事情都可以通过高度交互,美观且易于使用的界面来实现。 这些框架的实现完全是由于您已经知道的Node生态系统。
您会看到,毫无疑问,Javascript一直统治着前端Web开发,但是React,Angular和Vue将其带入了另一个层次。
这是UI的时代。
前端开发人员不再回避构建复杂的单页Web应用程序和成熟的软件套件的时代。 曾经是Web开发人员的地方,现在是软件开发人员。
那样……Node赢得了网络。
移动
React本机
本部分不仅将说明Node在移动方面的成功,而且还将提出另一个关键点:
节点是跨平台的。
不只是在“哦,很酷,它可以在我的手机上工作!” 种方式。 甚至没有出现在“哇,我的手机,平板电脑,笔记本电脑和电视都可以使用YouTube!” 种方式。
节点以最重要的方式跨平台。 对于开发人员而言,它确实是跨平台的。 上面提到的实际构建“哦,很酷”和“哇”东西的人不屑一顾。
React Native只是Node生态系统中开发的框架的一个示例,该框架以以前没有其他框架的方式弥合了前端开发和移动应用程序开发之间的鸿沟。
移动开发的最大压力一直是网络的拉动。 但是,借助React Native和Node生态系统,开发人员可以构建一个与Web,iOS和Android兼容的应用程序。 没有其他语言可以提供这种多功能性。
那样……Node赢得了移动市场。
桌面
电子
当然,并非所有事情都在网络上发生。 桌面应用程序对于我们在当今技术依赖的世界中的运营方式也至关重要。
但是,当网络现在能够提供功能齐全的应用程序时,为什么我们应该对台式机进行任何处理呢?
实际上,Javascript赶上桌面的性能需求只是时间问题。
因此,电子诞生了。
当然,在为桌面编程时,仍然可以使用更有效的语言,但是对于我们今天使用的大多数应用程序来说,Javascript绰绰有余。
感谢Cheng Zhao和Github,创建了一个框架,该框架正在改变桌面计算的面貌。 Electron不仅将Web应用程序开发中已经添加了桌面应用程序的开发内容添加到Web开发人员中,而且以完全跨OS兼容的方式完成了此工作。
尽管Windows仍然是当今使用最广泛的OS,但Mac一直在稳定增长15年,并且每天都有越来越多的开发人员转向Linux(就像我刚才所做的那样) 。 此外,像Raspberry Pi这样的小玩具正在使Linux弹出,而不仅仅是少数几个以前只有Windows或Mac的家庭。 我认为您可以理解为什么跨OS开发具有如此巨大的优势…… 而这仅仅是开始 。
现在,Node生态系统已完全涵盖了Web,移动和桌面。 一种技能集,能够在所有这些地方构建相同的UI。
那样……Node赢得了桌面。
后端
ExpressJS
我不想在这里讨论NPM(节点软件包管理器)上可用的无数软件包,这些软件包可促进后端开发,因此,我只想提及ExpressJS,这是为了简化一个过程,但要点是:
Node是为后端构建的。
而且,Node生态系统中Javascript已成为一种通用工具,已被用来开发自己的服务器应用程序。 现在,这似乎并不是最令人印象深刻的壮举,但是让我们考虑一下,直到创建Node为止,Javascript几乎只限于浏览器。 它不需要执行复杂的服务器端操作,例如数据库获取,图像转换或压缩。 但是现在可以 ……
而且,与上面的几个示例一样,这种代码共享和重用的显着简化产生了一些显着的副作用。
这样的副作用之一就是服务器端 渲染 。
你明白了吗?
服务器端
渲染
这两件事有什么共同点?
传统上,没有。 这两个职责始终被委托给其“前端”(Javascript)或“后端”(PHP,Java,Python,Ruby等,等等)处理程序。 通常由两个完全独立的团队维护。
截然不同的人,后端和前端开发人员…
但是不再!
借助Node,我们现在能够在用户的浏览器需要渲染事物之前在服务器端组装复杂的用户界面。 这就是当今网络如此敏捷的原因。 因为Node 删除了后端和前端之间的边界。
那样……Node赢得了后端。
赌博
Unity 3D
我将其保存为最后一个,因为它实际上不是“ Node”,而是Javascript,因此我想在更广的范围内进行说明:
Javascript的成功并不是其优于其他语言的结果。 它的成功是它对几乎每个社区的适应程度的直接结果。
Javascript开发人员不是纯粹主义者。
我们喜欢我们的语言(不是); 版本碎片化,依赖于编译器的,跨平台的,前沿的,不断发展的,并且到达了以前没有语言的地方。
喜欢游戏开发!
当Unity 3D首次引入其基于Javascript的“ UnityScript”作为游戏开发手段时,我看到了,Javascript将做一些非常酷的事情。 这是它首次进入非Web开发领域,这是即将发生的事情的明显标志。
很明显,Javascript可以做的不仅仅是打开弹出菜单和调整页面上的字体大小。 它所要做的不只是让您喜欢这篇文章并喜欢这张照片。 它可以处理身临其境的跨平台游戏体验。 曾经只限于Chrome,Firefox和Internet Exploder的那些开发人员突然成为了游戏开发人员。
尽管Unity最近宣布将放弃对UnityScript的支持,但我仍然要说:
像那样……Javascript赢得了游戏。
好吧,也许不行。 但这还不是第十二轮吗?
威尼,维迪,维奇
我不知道什么时候征服会停止,但是Node横冲直撞。 它正在一个接一个地推翻开发难题,并为软件开发世界铺平了道路。 我确实觉得我需要在巨魔之前重申一下,以防万一它被忽略了:
Javascript并不是每项工作的最佳语言。
Javascript的优势来自其多功能性。 它来自开放武装的社区,该社区已经接受了这种无类的,小的,多态的脚本语言,并将其变成了当今最强大的开发生态系统。
不同意 ? 我希望在评论中听到它。
否则,请分享一些鼓掌,并表示支持世界上最具创新性的语言 !
我叫Jonny Asmar,衷心感谢您抽出宝贵的时间阅读我的帖子!
15年前,我开始在记事本中编写代码,但从未停止过。 虽然我主要从事React / Redux&Node的工作,但我对技术的热情远不止UI开发,这是我与您分享这种热情的努力。
您可以 在JonnyAsmar.com上了解有关我的更多信息 , 在GitHub上 查看 我的一些代码 ,或者通过 jonnyasmar@me.com 与我 联系 。
翻译自: https://hackernoon.com/Javascript-has-already-won-235b29ed126b
Javascript