Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Node.js 对 Java:一场史诗级的争夺开发者注意力的对决

Node.js 对 Java:一场史诗级的争夺开发者注意力的对决

作者头像
五月君
发布于 2019-09-04 08:35:12
发布于 2019-09-04 08:35:12
1.1K0
举报
文章被收录于专栏:Nodejs技术栈Nodejs技术栈

在计算机历史上,1995 年是一段疯狂的岁月。首先 Java 出现了,随后 JavaScript 也出现了。Java 和 JavaScript 的名字看起来像是一对双胞胎,但实际上它们差别巨大,Java 是被编写和静态定型的,而 JavaScript 则是被解释和动态定型的。但这仅仅是这两个完全不同的语言的技术差别的一个开始,Node.js 的出现使得两种语言经历了两条完全不同的发展轨迹。

如果你比较早的接触了 IT 技术,那么你或许记得 Java 曾经风靡一时,每个人都将其视为一项革命,认为它将完全替代计算。但事实证明,这一预测只有一部分是正确的,Java 统治了安卓手机、企业计算和一些嵌入式设备,如蓝光光碟。

虽然 Java 取得了一定的成功,但它从来没有统治过桌面或浏览器。人们曾尝试出售过小应用程序和 Java 工具的强大,但是表现平平。而服务器成为了 Java 的最佳领域。

同时,之前被程序员们错认为是 Java“双胞胎”的 JavaScript,如今也能独挡一面了。在 HTML 和 web 推出 Borg 的几年间,JavaScript 一直紧随其后,AJAX 的出现使得 JavaScript 突然之间拥有了力量,打破了之前的局面。

随后 Node.js 诞生了,大大提高了开发速度。JavaScript 不仅在服务器上比大多数人预期的要快,甚至与 Java 或者其它工具相比,速度也要快。JavaScript 能够更加稳定地处理小的、快速的和无休止的数据请求,因此,当网页变得更加动态时,Node.js 就变得更加常用了。

虽然这在 20 年前可能是无法想象的,但是现在 Java 和 JavaScript 正在争夺编程领域的“统治权”,它们一个强调以坚固的工程和架构为深层基础,另一个强调简洁和普遍性。到底是老式的编译器驱动的 Java 会立于不败之地,还是在 Node.js 帮助下的 JavaScript 将所向披靡呢?

Java 获胜之处:坚如磐石的基础

看到这个小标题,可能有些开发者会有质疑。当然,我们不否认 Java 还存在一些小 Bug,但是相对而言,Java 已经算是很“坚固”的了,Node.js 想要让我拥有这样的信心,还需要许多年。

事实上,要写出与 Sun/Oracle 在测试 Java 虚拟机时所写数量相同的回归测试,JavaScript 开发者或许要花上几十年。当你启动 JVM 时,你将获得来自一个质量可靠的管理者的 20 年经验,而这个管理者一直决心要统治企业服务器领域。

不过,JavaScript 也在迅速迎头赶上。当 web 的大部分依赖于 JavaScript 执行引擎时,开发者的时间大部分花在了打磨边边角角上面。然而,所有的创新都有一个缺点,那就是新的功能可能扩散太快,以至于开发者们来不及吸收这些功能。一些老派的开发者经常会对充斥着最新 ECMAScript 句法的增强特性感到困惑。另外,这些新代码可能还会导致某些旧版浏览器崩溃。

创新性的预处理器,如 CoffeeScript 和 JSX 等,源源不断地出现,对于需要这些功能的开发者来说是件好事,但是对于不需要的开发者来说增加了难度。

尽管 Java 也在不断推出新的功能和选项,但总体而言,它是一个稳定的平台,它给那些需要开发更长久的东西的开发者带来了便利。

Node.js 获胜之处:普遍性

多亏了 Node.js,JavaScript 在服务器以及浏览器领域找到了一席之地。你给服务器写的代码很可能在浏览器上也能运行。很明显,比起在 Java 和 JavaScript 中分别写代码,直接使用 JavaScript 更简单。

如果你决定要把 Java 中的服务器业务逻辑迁移到浏览器中,或者老板会执意要你把给浏览器写的逻辑迁移到服务器上。在这两种情况下,Node.js 和 JavaScript 都能让代码迁移变得更简单。

不仅如此,Node.js 的领导地位似乎还在扩大,例如比较复杂的 Web 框架,类似 React,是要把代码运行在服务器还是客户端上呢?另外,还有可能出现这种情况,代码前一天是运行在客户端上的,但是后一天可能就运行在服务器上。某些智能的逻辑将在运行时根据负载、闲置 RAM 容量和其它因素来决定究竟代码运行在什么上面。有些框架会把 JavaScript 作为一条查询,输入到数据库,并在那里执行。你的代码可能在任何地方运行,所以,你很难了解究竟是在什么地方,因为代码根本不会返回任何东西。但是也无需担心,因为你不需要考虑太多细节。

Java 获胜之处:更好的集成开发环境 (IDE)

Java 开发者拥有三大 IDE,Eclipse、NetBeans 和 IntelliJ,这三个 IDE 是与调试程序、反编译器和服务器良好地集成的顶尖工具。每个工具都经过了数年的开发,拥有忠实的用户、坚固的生态系统和数不尽的插件。

大多数 Node.js 开发者会将文字输入命令行,再编码到他们最喜爱的文本编辑器中。诚然,市面上最好的一些文本编辑器,像 Atom,都拥有琳琅满目且几乎无所不能的插件,但如果和 Eclipse 进行比较,Node.js 给人的感觉要更老式一些。在不久的将来,Atari 操纵杆将代替我们的鼠标。

另外,有些 Node.js 开发者会使用 Eclipse 或 Visual Studio。开发者对 Node.js 突然激增的兴趣可能会有新工具诞生,例如 IBM 的 Node-RED 给我们提供了一些极具吸引力的方法,但是这些工具还远未达到像 Eclipse 或 IntelliJ 那样的完整度和统治地位。

但奇怪的是,开发者好像并没有使用这些工具。命令行本该在 35 年前 Mac 到来时就消失,但却没人把这个消息告诉 Node.js 的开发者们。但是选择一直都在那里。例如,WebStorm 就是一个可靠的由 JetBrains 开发的商业化工具,它集成了许多命令行构建工具。

当然,如果你正在寻找一款能够编辑和调整代码的集成开发环境,那么现在支持 Node.js 的新工具已经足够使用了。但如果你希望集成开发环境能够让你一边操作正在运行的源代码,一边编辑代码,那么 Java 的工具显然会更强大一些。

Node.js 获胜之处:数据库查询

一些较新的数据库,如 CouchDB 和 MongoDB 的查询是由 JavaScript 编写的。将 Node.js 和数据库调用合并不需要任何换挡,也不需要记住任何句法差异。

而许多 Java 开发者都在使用 SQL。即使是在他们使用 Java DB—前身是 Derby (一种由 Java 编写的数据库)时,他们的查询也是用 SQL 写的。你可能会以为他们会简单地调用 Java 方法,但其实没有,开发者必须要用 SQL 写数据库代码,然后再用 Derby 解析 SQL。虽然 SQL 是很好的语言,但是它与 Java 完全不同,许多开发团队需要有不同的人来分别写 SQL 和 Java。

更糟糕的是,许多 Java 程序员使用复杂的库和模式来将 SQL 查询数据转换成 Java 对象,目的是让自己能够将这些东西重新导入到模板中。这个过程非常疯狂,而且非常浪费。

Java 获胜之处:类型

许多入门级的编程课程都使用 Java,因为许多程序员都喜欢静态类型编码,静态类型编码很简洁而且安全。在编译器找出了一些明显的 bug 后,代码看起来更加严谨了。

不过,JavaScript 也在追赶,一些开发者已经转到 TypeScript。TypeScript 是一个静态类型的 JavaScript 超集,首先会应用所有的类型检查手段,然后剔除掉运行在浏览器上的 JavaScript 堆栈中的一些东西。

对于喜欢类型的开发者来说,TypeScript 足以让你喜欢上 JavaScript 了。当然,你可以把 JavaScript 这种模仿视为是对 Java 最真诚的恭维,并且继续使用 Java,因为 Java 从一开始就是使用静态类型的。

Node.js 获胜之处:语法灵活性

JavaScript 曾经是一个简单的语言,用于弹出警示框和双重检查输入表。后来,开发者社区创造了 JavaScript 的许多不同版本,它们能够被转编译为浏览器可用的东西。例如,CoffeeScript 提供了一些不同的句法,旨在使标点符号更加清晰。React/Vue 群体将 HTML 和 JavaScript 混合。此外,还有针对类型爱好者的 TypeScript 和针对功能语言信徒的 LiveScript。

而在 Java 中,你会发现有很多创新,但这些创新由于某些原因,并未用预处理器进行表达。还有一些语言如 Kotlin、Scala 和 Clojure,为了 JVM 专门变成了字节代码,但不知为何,它们可以说是完全独立的语言。对于喜欢尝试不同的代码编写方式或标点符号的 JavaScript 程序员来说,所有的预处理器均使他们的生活变得更加有趣了。

Java 获胜之处:简单的构建流程

复杂的构建工具如 Ant 和 Maven 使 Java 编程发生了革命。但还是有一个问题,开发者需要将说明用 XML 写出来,而 XML 并不是一个支持编程逻辑的数据格式。

当然,使用嵌套标签来表达分支相对而言比较简单,但是仅仅是为了构建,就要从 Java 切换到 XML,有些令人讨厌。有了 JavaScript 后,你就不需要再切换。

之前,Node.js 的构建很简单,只需要编辑代码,点击“运行”就可以了。但是随着 Node.js 开发者不断改进流程,添加了一些预处理器来抓取你最喜欢的 JavaScript 方言,并将这种方言转换成可以运行的东西。然后,Node 包管理器需要找到正确的库,因为有时可能会找不到,所以需要花时间寻找某个工件正确的版本号,而这个工件必须在单独的步骤中自行构建。而且,如果你在工件库中引入了一些错误,那么,这个版本号便无效了,需要重新做。

Java 也有与 Node.js 方法类似的复杂的构建过程,但给人的感觉不会比 Node.js 更复杂,从某种意义上说,Maven 和 Ant 貌似已经成为了 Java 基础的一部分,许多粗糙的边角已经被去除了,因此构建的工作成功率更高了。

如果非要对它们的构建难度进行衡量的话,它们可能不分伯仲,但如果从 JavaScript 快速增加的复杂度的角度来看,Java 在这方面获胜了。

Node.js 获胜之处:JSON

当数据库给出答案时,Java 需要花费大量时间把结果变成 Java 对象。开发者会就 POJO 映射、Hibernate 和其它工具争辩上好几个小时。配置这些东西可耗费数小时甚至数天时间。最终,在所有的转换之后,Java 代码获得了 Java 对象。而来到配置阶段时,Java 使用的仍然是 XML,并且提供了 2 个主要的解析器,这给开发者带来了更多的烦恼。

如今,许多 Web 服务和数据库都以 JSON 的形式返回数据,JSON 是 JavaScript 天然的一部分。JSON 现在非常常见和有用,以至于许多 Java 开发者都在使用这种格式,而且还有一些非常好的 JSON 解析器可以作为 Java 库被使用。相比之下,JSON 本身就是 JavaScript 基础的一部分,不需要库,直接使用就可以了。

Java 获胜之处:远程调试

Java 拥有许多非常棒的监控机器集群的工具。JVM 有深层的钩子和精细的剖析工具来帮助我们识别瓶颈和故障。Java 企业堆栈上运行着全世界最复杂的服务器,而使用这些服务器的公司对遥测的要求非常之高,所有这些监控和调试工具都较为成熟,并且可以立即部署它们。

Node.js 获胜之处:桌面也许有人在使用 Java 小程序,但我仍然保留了一些可以点击运行的 Java JAR 文件。总体来说,桌面领域大体上是不用 Java 的。另一方面,随着浏览器取代了桌面的大部分角色,JavaScript 的作用也越来越大。当微软重写了 Office 并使其能够在浏览器上运行时,一切就注定了。如果你还想了解更多,那么市面上还有许多有趣的选择,比如 Electron,它能够抓取你的 Web 代码,然后转换成独立的桌面 app。

Java 获胜之处:手持设备

安卓 app 大多都是用 Java 写的,而且 90% 的新手机都运行着各种版本的安卓系统。很多人根本就不使用桌面了,因为手机已经可以做任何事情了。

许多开发者都在编写 Node.js Web 应用,这些应用主要用在 iPhone 和安卓手机上的移动浏览器上。如果这些应用写得比较好,性能通常会比较好。但 Java 正以另外的一种方式入侵。最新的 Chromebook 将支持安卓应用,从而给 Java 开发者进入 Chromebook 用户的桌面开辟了道路。那么 Java 是否仍有机会征服桌面呢?

Node.js 获胜之处:库

Java 提供了大量的库,而且这些库做得都非常好,文本索引工具如 Lucene 和计算机视觉工具包如 OpenCV 都是非常好的开源项目,它们都将成为其它重大项目的基石。JavaScript 程序员也在追赶,创造出了很多了不起的项目。

然而,在某些领域,Java 就是一个远程的存储器,市场上可能有无数不同的 Web 框架,所以 Java 难以在这个新兴市场中参与竞争。

Java 获胜之处:坚固的工程

虽然这点很难量化,但是因为 Java 的数据基础非常强大,许多重大的科学工作中使用的许多复杂的程序包均是用 Java 写的。Sun 公司花了大量的时间来获取工具类的详情。市场上有 BigIntegers、精巧的 IO 例程和复杂的日期代码,它们均实现了格里高里和罗马儒略日历。

JavaScript 适合简单的任务,但是其内部有很多令人混淆的地方。举一个简单的例子,JavaScript 针对没有答案的函数会生成三种不同的答案,分别是:undefined、NaN 和 null。那么,哪一个是正确的呢?其实每个答案都有各自的作用,其中一个便是驱使程序员保持代码统一。JavaScript 更怪异的方面是虽然它在简单的表格工作很少出问题,但对于复杂的数学和定型工作而言,JavaScript 并不是一个好选择。

Node.js 获胜之处:速度

Node.js 的速度一直很受开发者的欢迎,数据输入和答案输出的速度如同闪电。Node.js 不需要单独设置线程,也没有上锁等令人头疼的问题,也没有拖慢速度的额外开销,只需要写一些简单的代码,Node.js 就会快速地采取正确的步骤。

Node.js 的回调模型已经改变了其编程方式,使程序员避免同时操作多个任务。JavaScript 引擎能够确定何时运行什么代码。因此,程序员可以编写更短和事件驱动的代码,并且关注重要的逻辑。

但是 Node.js 也存在一些问题,Node.js 代码要尽可能的简单一点且工作正常,因为如果它锁死了,整个服务器都可能锁死。操作系统开发者努力创建了许多安全网来抵抗编程错误,但 Node.js 会让这些安全网失效。

此外,当程序员将回调函数如俄罗斯套娃一层又一层不断地嵌套时,还会出现一个代码复杂性的问题。一个回调还好,但一系列的回调令人抓狂,好消息是 Promise 模型很容易读。但你需要记住,在执行代码行期间,许多事情都可能发生。

Java 获胜之处:线程

代码速度快虽然好,但更重要的是代码要准确,而使用 Java 可以享受到一些额外功能:

Java 的 Web 服务器是多线程的。创建多个线程可能要花费时间和存储,但这是值得的。因为,如果一个线程锁死了,其它的还可以继续用。如果一个线程需要很久的计算时间,那么其它线程可以分担。更重要的是,代码一直在掌管之下,并且能够进行调整。

如果某一个 Node.js 请求运行速度过慢,其它请求的速度也会降下来。Node.js 只有 1 个线程,因此只有它准备好了,事件才能被处理。或许它看起来超级快,但是本质上它的架构就如同春节的时候,邮局只开一个办理窗口一样,即它不能同时处理多个请求。

人们花了几十年构建智能的操作系统,能够同时处理许多不同进程的操作系统。那为什么还要回到那个电脑只能处理单线程的年代呢?的确,处理多个线程意味着要做更多的工作,但是多线程更强大,不是吗?

Node.js 获胜之处:势头

看见硅谷的开发者总是积极献身于最新和最具颠覆性的东西,但有时清理掉遗毒也很重要。Java 有新的 IO 例程,但是它也有一些旧的代码,例如许多小程序和 util 类会阻挡你前进的道路。Node.js 在 Git 库中也留下了很多垃圾,但是由于 Node.js 出现的比 Java 晚几十年,且 Node.js 开发者还在研发许多针对 Web 堆栈软件的增强功能,所以,Node.js 动力十足。

两方不分伯仲之处:Java 和 Node.js 之间的交叉编译

服务器到底是用 Java 还是 Node.js 的辩论可能还会持续很多年,但与其它辩论不同的是,这场辩论可能会是双赢的局面。Java 可以交叉编译到 JavaScript 中去,谷歌就经常在 Google Web Toolkit 中这么做,而且谷歌最受欢迎的网站也运行着 Java 代码,这些代码就是从 Java 翻译为 JavaScript 的。

当然,反过来也是如此。JavaScript 引擎如 Rhino 和 Nashorn 同样在 Java 应用里面运行 JavaScript,然后你可以链接到这些应用。如果还不满足的话,你还可以链接到谷歌的 V8 引擎。所有的 Java 和 JavaScript 代码都可以和谐地彼此链接,因此,你不需要在两者之间选择。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Nodejs技术栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Node.js真的无所不能?那些不适用的应用领域分析
Node.js是一个服务器端JavaScript解释器,底层采用的还是libevent;它的目标是帮助程序员构建高度可伸缩的应用程序,目前对Node.js 的采用状况,Node.js 官方站点有一些罗列,但是相当不完整。如果你自己公司用到,也可以在 github 上提交自己的 pull-request 来更新这个文档。 http://nodejs.org/industry/ https://github.com/joyent/node/wiki/Projects,-Applications,-and-Com
李海彬
2018/03/19
1.5K0
Node.js真的无所不能?那些不适用的应用领域分析
【专业技术】PHP对战Node.js
整个故事正如好莱坞大片的经典剧情走向:两位昔日好友如今分道扬镳,甚至被迫陷入了你死我活的斗争当中。刚开始的分歧并不严重,无非是一位老友对于另一位伙伴长久以来占据、但又绝口不提的业务领域产生了点兴趣。而在现实版的这场编程语言决斗大电影中,Node.js成了那位成了好兄弟反目成仇的导火索,并由此引发一场势均力敌、旗鼓相当的大战:PHP与JavaScript,双方曾一度携手统治整个互联网世界,但如今却为了争夺开发人员的支持而向对方痛下杀手。 遥想当年,合作关系总是简单而纯粹。那时候JavaScript负责处理
程序员互动联盟
2018/03/16
1.1K0
【专业技术】PHP对战Node.js
Java与Node.js的较量--一场史诗之战
纵观整个计算机发展史,1995是疯狂的一年:这一年Java语言诞生,紧跟其后的是JavaScript。后者虽然含有java二字,实际和java并不沾亲带故。Java属于静态编程语言,需要编译;而JavaScript只是一个简单的解释性脚本语言,属于动态语言。 如果经历过早期java发展,我们不难忘记它曾经的空前巅峰:铺天盖地的推广,超大规模的JavaOne会议。很多人都认定,这种新型的编程语言必将不惜一切代价称霸计算机领域。然后这一预测最终证实只是部分准确。而今,安卓应用、企业级服务器应用程序和类似蓝光光盘
我是攻城师
2018/05/14
1.6K0
Node.js VS PHP:Web 开发的史诗级对决,你支持谁?
来自:开源中国社区 链接:https://www.oschina.net/news/91783/node-js-vs-php 现在,Web开发公司和开发人员可以选择多种技术栈来构建Web应用程序。早期网络发展,不同的技术被用于前端和后端开发。但是,随着Node.js的发布,布局发生了变化,因为它允许开发人员使用 JavaScript 编写后端代码。这最终催生了MEAN(MongoDB + Express +AngularJS + NodeJS )堆栈 web 开发框架,从前端到后端甚至是数据库(MongoD
前端教程
2018/03/05
1.1K0
Node.js 是什么?我为什么选择它?
当我们学习一项新的事物的时候,我们首先要知道它来自哪里?它是什么?能做什么或者换句话说,能解决什么问题?没有一样东西是最好的,是可以替代所有的,但在某一领域它是最适合的,正如 Node.js 它可能是某些程序员苦苦追寻的东西,也可能是某些程序员不会去关心的东西。本文主要为您介绍 Node.js 的背景及它能做什么,擅长什么,不会涉及到复杂的代码层面的知识讲解,如果你觉得自己很熟悉了,也可以忽略它。
五月君
2019/08/06
1.4K0
Node.js 是过去十年最具影响力的服务器技术吗?
摘要:众所周知,Node.js 具有独特的优势,可以让许多为浏览器编写 JavaScript 的前端开发者,无需学习不同的语言,即可编写除客户端代码之外的服务器端代码。在 Node.js 中,可以毫无
五月君
2022/12/12
7750
为何Node.js 能成为 Web 应用开发最佳选择?
一项颠覆性的技术进入技术市场总会带来一阵震惊,但随之而来往往是被放弃。然而,Node.js 当然不是这样的情况,它是一个开源的、跨平台的基于 Chrome 的 JavaScript 运行时。Node.js 由 Ryan Dahl 于 2009 年开发,该平台现在已成为实时 Web 应用开发的独特选择,通过提供高度交互的用户体验来提高 ROI。
一墨编程学习
2018/10/20
1.8K0
对决!PHP vs Node.js !
这是典型好莱坞情节:分道扬镳的两位老朋友间的战斗。摩擦经常开始于一位对另一位不言而喻的领域感兴趣。这部电影的编程语言版本是Node.js的引入将好友情节变成一场旗鼓相当的比赛。PHP和JavaScript,两个曾经一起统治互联网的合作伙伴现在为了开发者心中的份额开始一决雌雄。
疯狂的技术宅
2019/03/27
2.4K0
对决!PHP vs Node.js !
node.js进阶学习
简介 如果您听说过 Node,或者阅读过一些文章,宣称 Node 是多么多么的棒,那么您可能会想:“Node 究竟是什么东西?”尽管不是针对所有人的,但 Node 可能是某些人的正确选择。 为试图解释什么是 Node.js,本文探究了它能解决的问题,它如何工作,如何运行一个简单应用程序,最后,Node 何时是和何时不是一个好的解决方案。本文不涉及如何编写一个复杂的 Node 应用程序,也不是一份全面的 Node 教程。阅读本文应该有助于您决定是否应该学习 Node,以便将其用于您的业务。 Node 旨在解决
架构师刀哥
2018/03/20
1.2K0
前端科普系列(2):Node.js 换个角度看世界
本文为系列文章(2),主要介绍 Node.js 的前世今生、核心科技以及背后的故事。
2020labs小助手
2020/03/12
9820
Node.js 开发者需要知道的 13 个常用库
在网页开发领域,Node.js 被视为理想的运行环境。Node.js 是专为运行 JavaScript 编写的代码而设计的,而 JavaScript 是世界上最流行的编程语言之一。Node.js 使广大开发者社区能够构建服务器端应用程序。
前端达人
2023/12/13
1.2K0
Node.js 开发者需要知道的 13 个常用库
Node.js 基础知识与常用命令
🚀 Node.js 是一个基于 Chrome V8 JavaScript 引擎 构建的 服务器端运行环境 ,允许开发者使用 JavaScript 编写高性能的 后端应用程序 。其设计初衷旨在解决高并发问题,尤其擅长处理大量的输入/输出操作,适用于聊天应用、电商平台等场景。
空白诗
2024/06/14
1430
如何在2016年成为一个更好的Node.js开发者
本文主要讨论一些进行Node.js开发的最佳实践和建议,这些建议不仅仅适合开发者,还适合那些管理与维护Node.js基础架构的工作人员。遵循本文提供的这些建议,能够让你更好的进行日常的开发工作。 Statement 原文地址:https://blog.risingstack.com/how-to-become-a-better-node-js-developer-in-2016/ 译者:景庄,Web开发者,主要关注JavaScript、Node.js、React、Docker等。 使用ES2015 在201
春哥大魔王
2018/04/17
7190
如何在2016年成为一个更好的Node.js开发者
Node.js 十大常见的开发者错误
自 Node.js 面世以来,它获得了大量的赞美和批判。这种争论会一直持续,短时间内都不会结束。而在这些争论中,我们常常会忽略掉所有语言和平台都是基于一些核心问题来批判的,就是我们怎么去使用这些平台。无论使用 Node.js 编写可靠的代码有多难,而编写高并发代码又是多么的简单,这个平台终究是有那么一段时间了,而且被用来创建了大量的健壮而又复杂的 web 服务。这些 web 服务不仅拥有良好的扩展性,而且通过在互联网上持续的时间证明了它们的健壮性。
coder_koala
2019/08/28
1.3K0
Node.js能解决什么问题?
对于PHP、JAVA、Python等服务端语言中,为每个客户端连接创建一个新的线程,而每个线程需要大约2M的内存,理论上,具有8GB内存的服务器可以同时连接的最大用户数为4000个左右,要让Web应用程序支持更多的用户,就需要增加服务器的数量,这样硬件的成本就增加了。 服务器所支持的最大同时连接用户量是一个主要的瓶颈。
雪山飞猪
2019/08/29
1.2K0
每个Web开发者都应该知道的8个免费工具
从项目管理到代码编辑器,这些必要的免费工具帮助新手和经验丰富的 Web 开发人员简化工作流程并提高代码质量。
云云众生s
2025/01/21
1570
为什么要使用Node.js?
JavaScript的流行给它本身带来许多变化,Web开发的面貌也发生了巨大的改变。现在JavaScript不仅可以运行在浏览器上,甚至可以运行在服务器上,像Flash或者Java Applets那样被包装在沙盒环境中运行,这在几年前这是很难想象的。
疯狂的技术宅
2019/03/28
3.3K0
为什么要使用Node.js?
Node.js学习笔记(一)——Node.js概要、NPM与package.json
Node.js 是一个基于Google Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 npm,是全球最大的开源库生态系统。
张果
2022/09/28
2.6K0
Node.js学习笔记(一)——Node.js概要、NPM与package.json
Node.js 简介
Node.js 是一个开源与跨平台的 JavaScript 运行时环境。 它是一个可用于几乎任何项目的流行工具!
ccf19881030
2020/06/29
2.2K0
Node.js概述
最近几年,Web 领域出现了一个全新的 JavaScript 开发框架——Node.js。该框架一经问世,便以其独特的优势得到了广大开发人员的关注。以下主要从什么是 Node.js 框架,使用 Node.js 框架能够解决什么问题,为什么要用 Node.js 框架,在哪些场合下应该考虑使用 Node.js 来展开概述。
许都博客
2021/06/15
3.3K0
相关推荐
Node.js真的无所不能?那些不适用的应用领域分析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档