热门标签 | 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



推荐阅读
  • React 小白初入门
    推荐学习:React官方文档:https:react.docschina.orgReact菜鸟教程:https:www.runoob.c ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • React基础篇一 - JSX语法扩展与使用
    本文介绍了React基础篇一中的JSX语法扩展与使用。JSX是一种JavaScript的语法扩展,用于描述React中的用户界面。文章详细介绍了在JSX中使用表达式的方法,并给出了一个示例代码。最后,提到了JSX在编译后会被转化为普通的JavaScript对象。 ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文提供了成为成功软件工程师的7条建议,包括不要低估自己、公司需要你、投资自己等。通过学习新技术、提升编码技能,软件工程师可以获得更好的职业机会和更高的薪水,同时也增强自信。投资自己是取得成功的关键。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 随着前端技术的发展,越来越多的开发者开始使用react、vue等web框架,但很少有人深入理解这些框架的源码。然而,这些框架底层都是由原生的javascript构建而成。对于初学前端的人来说,可能会认为javascript很容易上手,但实际上只是因为它被高度封装了。与能够使用封装类的人相比,能够理解框架原理的人则处于另一个层面。本文将深入剖析jquery源码,探寻框架底层的原理,帮助读者更好地理解web框架的运行机制。 ... [详细]
  • CentOS7.8下编译muduo库找不到Boost库报错的解决方法
    本文介绍了在CentOS7.8下编译muduo库时出现找不到Boost库报错的问题,并提供了解决方法。文章详细介绍了从Github上下载muduo和muduo-tutorial源代码的步骤,并指导如何编译muduo库。最后,作者提供了陈硕老师的Github链接和muduo库的简介。 ... [详细]
  • wpf+mvvm代码组织结构及实现方式
    本文介绍了wpf+mvvm代码组织结构的由来和实现方式。作者回顾了自己大学时期接触wpf开发和mvvm模式的经历,认为mvvm模式使得开发更加专注于业务且高效。与此同时,作者指出mvvm模式相较于mvc模式的优势。文章还提到了当没有mvvm时处理数据和UI交互的例子,以及前后端分离和组件化的概念。作者希望能够只关注原始数据结构,将数据交给UI自行改变,从而解放劳动力,避免加班。 ... [详细]
  • Question该提问来源于开源项目:react-native-device-info/react-native-device-info ... [详细]
  • 必须先赞下国人npm库作品:node-images(https:github.comzhangyuanweinode-images),封装了跨平台的C++逻辑,形成nodejsAP ... [详细]
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社区 版权所有