猿学-Java 已死?且听大佬们怎么说

2018-08-18  本文已影响0人  猿学

Java 已死?

java 9

在其发布之后的二十年,Java依然是开发人员的最爱。如果说这门编程语言正在死去,可以肯定地说它死过了。它死过又复活过的次数比我们所能统计的还要多,可是它仍然活着没有倒下。我们将在 9 月当Java 9发布时看到 Java 更多的内容。

迄今 Java 已经存在很长一段时间,有足够的时间为其建立优越的编写、维护和调试代码的工具。例如,各种开发环境像是 Eclipse 或 NetBeans 已经使得编写 Java 容易许多。它们甚至能够被用来编写基于 Java 的新兴语言的代码。为什么我们会一次又一次看到文章宣布 Java 即将来临的死亡?就像 Mark Twain 所说的,Java 之死被夸大其词了。Wayne Citrin 博士,JNBrideg 有限责任公司的 CTO和联合创始人

java9

大咖列表

谁在 Twitter 上影响力最大?JAX团队翻查了数千个技术账号并从中找出 20 个 Twitter 大号,这些大号被每个 Java 开发人员的 Twitter 所关注。如果你想听听他们对 Java 9 有什么想说的,他们希望在 Java 10 里看到什么,以及他们怎么看待 Java 的对手,你是幸运的!

请看这里的清单。

在这分为 3 部分的访谈系列中,10 位 Java 大咖将评论 Java 的人气、谈论其模块化生态系统,并展示他们对 Java 10 的愿望清单。

在这个访谈系列的第 1 部分,我们邀请了 Java 大咖来谈论 Node.js 超越 Java 的可能性,以及评论关于斯坦福大学决定以 JavaScript 取代 Java 来教授其CS 科系入门教程事件。

问题一:有些人似乎相信,Node.js可能在不久的将来有取代 Java 的机会。Java 真地可能被废黜吗?

Markus Eisele(Lightbend公司DeveloperAdvocacy 的负责人,Java 拥护者):

JavaScript革命清晰地表明了我们的世界将是多元化和多样化的。展望未来,我们将不再拥有只需学习单一语言的特权,而是依赖于在开发应用时平台和行业标准默认的(语言规范)。Java 这门语言仍然被广泛学习和传授。但某些部分也在快速变迁:集中的基础设施正在消亡,服务端渲染的全栈的 Java 应用在快速地步其后尘。现在首屈一指的前端语言是 JavaScript。在云环境和容器领域占据优势还有 Go 。在 Java 保持其主导地位再久一会儿的同时,这份清单还将会继续扩大。

gwt

Mario Fusco(在 Red Hat从事 JBoss 规则引擎 Drools开发的高级软件工程师,Java拥护者):

Node.js 会吸引那么多人真是超出我的理解。我们正处于多核 CPU 时代,连我的智能手机都有 8 核,而我们真的想在我们的服务器上运行一个单线程框架吗?在一个典型的 Node.js 应用运行于 8 核机器上时,经常发生的是,一个核始终是利用率 100% ,而其他核实际上闲置着。如果开发人员喜欢 Node.js 实现的事件循环模式,有许多别的 Java 框架能以更加强壮和稳健的方式提供同样的模式。我认为一些公司之所以采用 Node.js ,唯一可以理解的原因是,现在有更多的 JavaScript 开发人员,他们通常也更廉价。十年前,我看到了类似反向的趋势。那时有许多 Java 程序员被要求进行网页端的开发而他们不喜欢使用(或学习)Javascript。为此,有很少的类似 GWT 可以使用 Java 开发 web 系统的框架。 GWT 没那么不堪,但伸缩性不好,无法创建数百万并发用户的网站。Node.js是 GWT 的服务器端的对标技术,也会存在类似的问题。我的意见是我们应该总是使用合适的工具来完成手头的工作。Javascript 对于 Web 开发是可以的(即使不是很理想),但是对于后端,我可以想到很多更好的替代方案。

Marcus Biel(软件工匠、JCP成员和《整洁代码之道》的传道者):

对我来说,这个比较真的不重要,这是苹果和梨的比较。 Java最适合复杂的(多线程)业务系统, Node.js很适合实时 Web 应用程序。问一个 Java 开发人员,他或她当然将拥护 Java ;问一个 Node.js开发人员,他们自然会拥护 Node.js 。各有各的领域。

Lukas Eder(jOOQ 背后的公司 Data Geekery GmbH 的创始人及研发部负责人,Java拥护者):

说这些话的唯一人群就是 Node.js 背后的供应商。关于 Java 的长期未来(下一个 20 年)我们不能过于多说。但如果“不久的将来”意味着 2-3 年,那 Java 觉得是不会被任何人废黜的。Java在 Valhalla、Graal和 Truffle,以及许多其他项目中还很受欢迎,即将到来的改进也将确保 Java 会跟上形势。

Trisha Gee(JetBrains 的 DA、伦敦 Java 社区的核心成员, Java 拥护者)

我想我们是在这里比较桔子和苹果。 Java是极好的服务器端语言,出于很多理由被企业重度使用,包括稳固的向后兼容性、跨平台支持(在操作系统层面)、以及非常庞大的 Java 开发人才池(从初级到极为有经验的)可供聘请。Node.js 也被用在企业环境,但不是给相同类型的应用程序,我们更多地在初创公司中看到它,用于快速原型和敏捷应用开发(在各种规模的组织里)。我个人认为,考虑到可以用技术解决的大量问题,这两门语言以及许多其他语言和框架都有足够的应用空间。

Vlad Mihalcea(Hypersistence 的 CEO ,《高性能 Java 持久化》的作者)

我想不会。Node.js对于建立快速原型是很好,但缺乏像 Java 拥有的经受战斗考验的许多成熟的框架。

Jake Wharton(Square公司的安卓工程师)

JavaScript 社区一直支持其进攻 Java 真正主导的许多事情:静态类型、更强大的工具,以及具备广度和深度的库的生态系统。我认为这是朝正确方向迈出的一步,但从长远观点来看还有很多工作要做,才能在所有的三个领域真正取代 Java 。

Thorsten Heller(绿鸟集成技术公司 CEO ,该公司提供网格智能平台 Metercloud )

可能会,也可能不会。我相信在不久的将来 Java可能会被废黜或至少受到挑战,但我不会赌 Node.js 。如果要赌,我会押注在 Kotlin 上。它的简单性、精益语法、函数式方法 - 仅仅是它的部分特征 - 将提高它的流行性。好像还可以提高代码的整洁度?总的来说,我相信不久的未来将会更加异构:指定任务最合适的编程语言。对我来说,Java更多地是一个平台而不是一门语言。

Baruch Sadogursky(JFrog 的 DA )

Java对 JavaScript正如 ham(火腿)对 hamster(仓鼠)。编程语言有许多,而它们不一定相互竞争。JavaScript是一门惊人的前端语言和真正的浏览器之王,但总的 来说,在服务器端,JavaScript(尤其是 Node.js )是一个有趣的尝试,而不会取代一门合适的面向后端的语言,比如 Java 。

Quentin Adam(智慧云 CEO)

我认为这不会发生。Node.js 和 Java 是用途各异的不同工具。Node.js 及其工具套件正在凭借强大的构建工具,和一些小型服务器部件,促使 Web 前端成为一个真正的生态系统。然而 Java 有一个非常强大的生态系统和庞大的代码库,以 Node.js 完全取代 Java 的可能性渺茫。在某些领域,像大数据(Hadoop 生态系统或 Kafka ),JVM 是平台质量本身的首选,而 Node.js 在将来绝无可能驱动 Hadoop 。我们将会看到越来越多的项目同时使用 Node.js 和 Java 。Node.js 将经常在前端面向用户,但它不会处处取代 Java 。

问题二:今年,斯坦福大学著名的编程入门课程弃 Java而取 JavaScript。对于 Java 的相关性和流行度,该如何评价?

Markus Eisele:

Java 是企业中的头号编程语言,它带来了一个充满活力的工具、标准和方法学的生态系统。它不是最简洁或最漂亮的语言,但它可以扩展到大型团队,让我们学会了确保体面的质量。前端开发大多已经转向 JavaScript ,而我认为应用程序的可视化部分一直是编程的切入点。对我来说,这会是一个自然的过程,却并不一定要讲述一个 Java 的相关性或流行度的故事。更多地是关于它的可用性和学习曲线。

Mario Fusco:

我看了这则新闻感到惊讶,不是因为他们放弃了 Java 而是因为他们选择了 JavaScript 。从教学的角度来看,Java也许不是一门好语言,但在这方面 JavaScript 无疑还要糟糕得多,因为它会引诱(有时强求)一种不好的代码技巧,而不是促使开发人员以一种清晰的方式去思考。我认为一所大学不应该选择一门编程语言,只因为它在业界流行而且被广泛采用。Alan Perils曾说过:“一门不影响你的编程的思维方式的语言是不值得了解的。”不幸的是,我认为 Java 和 Javascript 都可以归于此类。我们学习它们更多是出于商业原因,而不是因为我们喜欢使用它们。在我看来,一门面向对象编程的语言如 Smalltalk,一门涵盖函数式方法的语言如 Haskell ,更不用说像 Clojure 这样的现代 Lisp 语言,都是更好的选择。

Marcus Biel:

对我来说,首要问题是:关于此事斯坦福大学是怎么说的?斯坦福认为作为第一编程语言学习 Java 并不好。这就如他们所说的,如果他们这样认为,那也没关系。

Lukas Eder:

绝对不会。当我在 EPFL( Scala 语言在此被创造)学习计算机科学时,我的编程课程包括当时时髦的语言如 Ada、 VSDL、 PL/SQL、 SQL、 Java、 XSLT、Scala、 Prolog、C++。假设我现在才开始学习,我敢肯定 JavaScript也会成为课程的一部分。我确实希望,作为一个行业,包括大学教师,需要意识到个别语言在大环境中并不重要。每一门语言都有其存在的空间和理由,而 Java 由于各种各样的原因一直是最流行的语言。个别大学并不会去改变这一点,他们为什么要这样做呢?

Trisha Gee:

同样,这是使用正确工具进行工作的情况。 JavaScript按理说是比较容易教给初学者。它轻仪式、样板代码少,而且你可以使用如 REPL(REPL是交互式解释器环境,R指Read,E指Evaluate,P指Print,L指Loop,因为交互式解释器会读取输入内容兵对其求值,再返回结果,并重复此过程)这样的工具快速获得反馈。虽然 Java 9将拥有 REPL,但整体而言 Java有相当多的仪式(设置你的环境、类路径、一个集成开发环境或编辑器),外加更多的样板代码,所有这些都是学习编程之路上的绊脚石。任何教编码的人都想要轻量级的、易于上手的语言,这是可以理解的。Java在斯坦福的更高级的课程中仍然被教授,这表明学习 Java 仍然是相应的和重要的。特别是,有些东西起初看起来碍事,如静态类型、更严格的结构(在类等方面),一旦他们掌握了基本编码的工作原理,似乎对开发人员来说更有用。

上一篇下一篇

猜你喜欢

热点阅读