在计算的历史,1995年是一个疯狂的时候。首先Java的出现,然后关闭它的高跟鞋来的JavaScript。名字让他们看起来像新分离连体双胞胎,但他们不能更不同。其中之一编译和静态类型;其他解释和动态类型。这是唯一的有自转嫁到各种各样的碰撞过程中这两种截然不同的疯狂语言之间的技术差异之初,由于Node.js的
+也在网络世界足球竞猜app软件坚持使用Java的4个理由——以及抛弃Java的4个理由+
如果你的年龄足够大,曾经生活在那个年代,你可能会记得Java早期的、史诗般的巅峰。它离开了实验室,它的宣传指标被钉住了。每个人都把它看作是一场革命,它将以完全接管计算机业为终结。这个预测最终成为现实只是部分正确。今天,Java主导着Android手机、企业计算和一些嵌入式领域,比如蓝光光盘。
对于所有的成功,但是,爪哇从来没有在桌面上或在浏览器中建立多大吸引力。人们吹捧小程序和基于Java的工具的力量,但总是黏糊糊起来glitched这些组合。服务器成为Java的甜蜜点。
同时,什么程序员最初误判定为哑双胞胎已经进入了自己。当然,JavaScript的标记沿几年如HTML和对世界的网络拉着博格。但是,这改变了使用AJAX。突然,哑双胞胎有力量。
然后Node.js的被催生,与它的速度转向发展的头。不仅是JavaScript的比任何人预期的服务器上更快,但它往往比Java和其它选项更快。它的小,快,数据无休止的要求已经提出以来Node.js的较为常见的稳定的饮食,如Web页面已经发展更具活力。
虽然这在20年前是不可想象的,但这对准双胞胎现在陷入了控制编程世界的战斗中。一方面是坚实的工程和建筑的深厚基础。另一方面是简单和无处不在。老式的编译器驱动的Java世界会继续占据它的地盘吗?还是Node.js的速度和灵活性会帮助JavaScript继续吞噬它的道路上的一切?
Java赢在哪里:坚如磐石的基础
我能听到开发人员的笑声。一些人甚至可能死于心脏衰竭。是的,Java有小故障和bug,但相对而言,它是直布罗陀的岩石。对Node.js抱有同样的信心是很多年以后的事了。事实上,JavaScript团队要编写像Sun/Oracle开发的测试Java虚拟机那样多的回归测试,可能还要几十年。当您启动JVM时,您从一个决心主宰企业服务器的可靠管理者那里获得了20年的经验。当你开始使用JavaScript时,你会遇到一个脾气暴躁的联盟,他们有时想要合作,有时想要使用JavaScript标准来发起被动攻击。
Node在哪里胜出:普遍性
由于节点。js、JavaScript在服务器和浏览器中找到一个home。您为其中一个程序编写的代码很可能在两个程序上以相同的方式运行。生活中没有什么是有保障的,但这是在计算机行业中最接近的。更容易坚持JavaScript客户机/服务器的双方分歧比写点东西在Java和JavaScript后,你可能需要做的如果你决定将你写的业务逻辑的Java服务器向浏览器。或者老板会坚持让你为浏览器构建的逻辑转移到服务器上。无论从哪个方向看,Node.js和JavaScript都使代码迁移变得更加容易。
Java赢在哪里:更好的ide
Java开发人员拥有Eclipse、NetBeans或IntelliJ这三种顶级工具,它们与调试器、反编译器和服务器很好地集成在一起。每个插件都有多年的开发、专门的用户和充满插件的坚实生态系统。
同时,大多数Node.js开发人员在命令行中输入单词,并在他们喜欢的文本编辑器中输入代码。有些人使用Eclipse或Visual Studio,它们都支持Node.js。当然,人们对Node.js的兴趣激增意味着新的工具即将到来,比如IBM的Node-RED提供了一些有趣的方法,但是它们距离像Eclipse那样完整还有很长的路要走。例如,WebStorm是JetBrains提供的一个可靠的商业工具,它可以链接许多命令行构建工具。
当然,如果您正在寻找一个编辑和混合工具的IDE,支持Node.js的新工具已经足够好了。但是,如果您要求IDE允许您在操作运行中的源代码时进行编辑,就像心脏外科医生切开胸腔那样,那么Java工具就更强大了。都在那里,而且都是本地的。
Node在哪里胜出:使用相同语言简化构建过程
像Ant和Maven这样的复杂构建工具已经彻底改变了Java编程。但只有一个问题。使用XML编写规范,XML是一种不支持编程逻辑的数据格式。当然,用嵌套标记表示分支相对容易,但是仅仅为了构建一些东西而从Java切换到XML仍然有些烦人的地方。
Java在哪赢:远程调试
Java的拥有用于监控机器的集群不可思议的工具。有深钩到JVM和精心的分析工具,以帮助识别瓶颈和故障。Java企业栈运行这个星球上最先进的服务器,并使用这些服务器都要求在遥测最优秀的企业。所有这些监视和调试工具已经相当成熟,并为您准备部署。
Node在哪里胜出:数据库查询
对一些较新的数据库(如CouchDB)的查询是用JavaScript编写的。混合Node.js和CouchDB不需要换档,更不用说记住语法差异了。
同时,许多Java开发人员使用SQL。即使在使用Java DB(以前为Java开发人员使用Java编写的数据库)时,他们也使用SQL编写查询。您可能认为它们只是调用Java方法,但是您错了。您必须使用SQL编写数据库代码,然后让Derby解析SQL。它是一种很好的语言,但它是完全不同的,许多开发团队需要不同的人来编写SQL和Java。
Java在哪赢:库
有一个巨大的Java中可用库的集合,它们提供了一些最严重的变通的。全文索引工具,如Lucene和计算机视觉工具包OpenCV的一样是准备成为一个严重的项目的基础上伟大的开源项目的两个例子。有很多写在JavaScript库,其中一些是惊人的,但是Java代码库的深度和质量优越。
其中节点胜:JSON
当数据库吐出答案,Java的去阐述长度把结果转换成Java对象。开发者会认为约POJO映射,Hibernate和其他工具小时。配置它们可能需要数小时甚至数天。最终,Java代码后,所有的转换获得的Java对象。
许多Web服务和数据库的JSON,JavaScript的一个自然组成部分返回数据。格式是现在很常见的和有用的,很多Java开发人员使用JSON格式,因此一些好的JSON解析器可以作为Java库为好。但是JSON是JavaScript的基础的一部分。你不需要库。这一切都没有,蓄势待发。
Java赢在哪里:可靠的工程
这是一个有点难以量化,但多为严肃的科学工作的复杂包是用Java编写因为Java具有很强的数学基础。孙花了很长时间出汗的实用程序类的细节,它显示。有BigIntegers,精心IO程序,以及带格里高利历和罗马儒略历的实现复杂的日期代码。
JavaScript是简单的任务很好,但有很多混乱的胆量。一个简单的方法来看到这是在没有答案的功能JavaScript的三种不同的结果:未定义的
,南
,零
。哪个是正确的?好吧,每一个都有它自己的角色——其中一个就是让程序员抓狂,试图让他们保持直线。关于语言的奇怪角落的问题很少会对简单的表单工作造成问题,但是它们感觉不像是复杂的数学和类型工作的良好基础。
Node在哪赢了:速度
人们喜欢称赞Node.js的速度。数据来了,答案就像闪电一样闪了出来。js不会因为设置单独的线程而让人头疼。没有开销来减缓任何东西。您可以编写简单的代码,Node.js尽可能快地采取正确的步骤。
这种赞美伴随着警告。您的Node.js代码最好是简单的,并且最好能正确工作。如果它死锁,整个服务器就会锁定。操作系统开发人员竭尽全力创建能够抵御编程错误的安全网络,但Node.js抛弃了这些网络。
Java在哪赢了:线程
快速的代码很好,但通常更重要的是正确的代码。这就是Java的额外特性有意义的地方。
Java的Web服务器是多线程的。创建多个线程可能会花费时间和内存,但这是值得的。如果一个线程死锁,其他线程将继续执行。如果一个线程需要更长的计算时间,那么其他线程(通常)并不迫切需要关注。
如果一个Node.js请求运行得太慢,那么一切都会变慢。Node中只有一个线程。当它准备好了,它就会到达你的活动。它可能看起来超级快,但实际上它使用了与圣诞节前一周的单窗口邮局相同的结构。
几十年来,人们致力于构建能够同时处理多个不同进程的智能操作系统。为什么要回到计算机只能处理一个线程的60年代呢?
Node在哪赢了:势头
是的,我们所有的祖父母对节俭的教训是真实的。不浪费;想不。它可以是痛苦的看硅谷的愚蠢难舍难分的“新”和“破坏性的”,但有时清理出克鲁夫特是最有意义的。是的,Java可以跟得上,但有旧代码随处可见。当然,Java有新的IO程序,但它也有老套路IO。大量的小应用程序
和UTIL
上课可能会成为障碍。
其中双赢:从一个交叉编译其他
在服务器上使用Java还是Node.js的争论可能会持续很多年。然而,与大多数辩论相反,我们可以两全其美。Java可以交叉编译成JavaScript。谷歌经常使用谷歌Web Toolkit来实现这一点,它的一些最流行的网站在其中运行Java代码——Java被翻译成JavaScript。
还有另一条路。JavaScript引擎喜欢犀牛在您的Java应用程序中运行JavaScript,您可以在其中链接到它。如果你真的有野心,你可以做到链接在谷歌的V8引擎。
瞧。所有的代码可以链接到彼此和谐,你不需要选择。
相关文章
- PHP VS的Node.js:史诗般的战斗为开发者心中的那份
- 评论:比较了四大Java ide
- 下载:使用10个JavaScript编辑器和ide
- 下载:Apple Swift,编程入门
- 下载:一个明星显影剂的照料和喂养
- 我们希望在HTML6中看到的10个功能
- 攻击单字母编程语言
- 现在值得学习的9种前沿语言
- 激烈的争夺开发者的心和思想
- 15项技术改变了开发人员的工作方式
- 12个预测编程的未来
这个故事,“Java vs. Node”。《开发者思想共享的史诗之战》最初由InfoWorld的 。