热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

javascript_JavaScript已经赢了

javascript我在编程语言之间的战争中声称自己是“胜利者”,因此该帖子引起了极大的抗议。我承认,我的头衔可能是引起争议的,可能是“点

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



推荐阅读
  • 本文回顾了2017年的转型和2018年的收获,分享了几家知名互联网公司提供的工作机会及面试体验。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Android 渐变圆环加载控件实现
    本文介绍了如何在 Android 中创建一个自定义的渐变圆环加载控件,该控件已在多个知名应用中使用。我们将详细探讨其工作原理和实现方法。 ... [详细]
  • 本章将深入探讨移动 UI 设计的核心原则,帮助开发者构建简洁、高效且用户友好的界面。通过学习设计规则和用户体验优化技巧,您将能够创建出既美观又实用的移动应用。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文探讨了Java编程的核心要素,特别是其面向对象的特性,并详细介绍了Java虚拟机、类装载器体系结构、Java类文件和Java API等关键技术。这些技术使得Java成为一种功能强大且易于使用的编程语言。 ... [详细]
  • JavaScript 基础语法指南
    本文详细介绍了 JavaScript 的基础语法,包括变量、数据类型、运算符、语句和函数等内容,旨在为初学者提供全面的入门指导。 ... [详细]
  • 本文介绍了如何在React和React Native项目中使用JavaScript进行日期格式化,提供了获取近7天、近半年及近一年日期的具体实现方法。 ... [详细]
  • 深入剖析JVM垃圾回收机制
    本文详细探讨了Java虚拟机(JVM)中的垃圾回收机制,包括其意义、对象判定方法、引用类型、常见垃圾收集算法以及各种垃圾收集器的特点和工作原理。通过理解这些内容,开发人员可以更好地优化内存管理和程序性能。 ... [详细]
  • 在寻找轻量级Ruby Web框架的过程中,您可能会遇到Sinatra和Ramaze。两者都以简洁、轻便著称,但它们之间存在一些关键区别。本文将探讨这些差异,并提供详细的分析,帮助您做出最佳选择。 ... [详细]
  • YB02 防水车载GPS追踪器
    YB02防水车载GPS追踪器由Yuebiz科技有限公司设计生产,适用于车辆防盗、车队管理和实时追踪等多种场合。 ... [详细]
  • 本文深入探讨了JavaScript中实现继承的四种常见方法,包括原型链继承、构造函数继承、组合继承和寄生组合继承。对于正在学习或从事Web前端开发的技术人员来说,理解这些继承模式对于提高代码质量和维护性至关重要。 ... [详细]
  • 近期,谷歌公司的一名安全工程师Eduardo Vela在jQuery Mobile框架中发现了一项可能引发跨站脚本攻击(XSS)的安全漏洞。此漏洞使得使用jQuery Mobile的所有网站面临潜在的安全威胁。 ... [详细]
author-avatar
手机用户2502870105
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有