我有幸采访了 Isomorphic Software 的创始人兼首席技术官 Charles Kendrick,了解 Java 生态系统的现状和未来发展方向。这是我们 2015 年 Java 生态系统 指南 系列访谈的一部分,该指南将于 10 月发布。
Charles 的观点比我采访的其他一些人更独特,我认为 Java 专区的追随者希望看到他的观点,并让我们知道您将如何回答这些问题。
您从事过哪些类型的 Java 项目?
Isomorphic 产生了 SmartClient 和 SmartGWT HTML5/Ajax 框架。两者都使用 Java 服务器,而 SmartGWT 通过 GWT 在客户端使用 Java。
您认为 Java 生态系统中最重要的部分是什么?
有用库的巨大范围往往意味着任何企业项目都需要使用 JVM,即使选择了 Java 以外的语言。
谁是 Java 生态系统中最重要的参与者?
甲骨文和谷歌(谷歌因为安卓)。
您使用哪些资源来了解行业趋势?
DZone、StackExchange、SDTimes 和各种 TechTarget 站点。
今天在 Java 中看到的最大价值在哪里?
企业中的服务器端使用,特别是涉及多个服务或平台以及分布式事务之间集成的大规模、面向数据库的系统。
作为描述UI的语言,使用Java是因为它很流行,知名度很高,但是它的表达能力很差,其他语言往往是更好的选择。
谁在贵公司负责不同的 Java 相关项目?
我们有多个团队使用 Java 实现框架功能和客户项目。
使某人擅长于此的技能是什么?
我们不会雇用任何只会 Java 的人,我们认为这是一个非常糟糕的迹象。相反,我们寻找的是聪明能干的人。
您或您的公司使用哪些其他编程语言和框架?
主要是 JavaScript、Perl、Ruby、PHP、Python、C# / .NET。
在您使用 Java 生态系统的过程中,它是如何发展的?
不好。 Sun 缺乏领导力和重大失误(例如 JavaFX、JSF)导致在 Java 平台的基本领域(如 UI 和数据绑定)出现大量相互冲突的方法。
公司基于 Java 的计划取得成功的障碍是什么?
Java 语言的表达能力差意味着代码编写时间更长,更难阅读,并且在面对新需求时往往僵化而不是灵活。
Java 继续与 .NET 多年前通过 .NET 程序集解决的“罐子地狱”(类似于 DLL 地狱)作斗争,并且不断推出各种解决方案(“Project Jigsaw”现在计划用于 Java 9)。
您对 Java 生态系统有任何顾虑吗?
甲骨文愿意起诉创新不存在,特别是他们对 Android 的诉讼,很容易导致许多合作伙伴跳槽到另一个平台,导致 Java 停滞不前。
从您的角度来看,Java 生态系统的未来是什么——最大的机会在哪里?
更好的核心 Java 语言表达能力。我们实际上有数百个产品示例,它们在 JavaScript (SmartClient) 和 Java (SmartGWT) 中并行实现。将代码并排放置可以看出 Java 与其他语言的表现力相差甚远。 Oracle 需要在更积极地追求和支持改进和简化 Java 语法的 JSR 方面发挥领导作用。
在 JVM 中进一步包含非 Java 语言。 Java 8 在使 JavaScript 更多地成为 JVM 的一部分方面取得了一些进展,但使用其他语言仍然很困难,在错误报告和调试方面存在很多问题。
开发人员在使用 Java 时需要注意什么?
Java 的静态类型检查能力需要被看作是另一种形式的自动测试,并且结构化代码以允许更多的静态类型检查需要与其他形式的自动测试进行权衡。
具体来说,我们发现,如果开发人员花太多时间使用 Java 而排斥其他语言,他们往往会付出巨大的努力来构建代码,以便 Java 编译器可以检查更多的错误条件。这种努力通常最好花在自动化测试上,它可以捕获范围更广的错误情况。
您对 Java 生态系统的现状以及未来的看法是否与 Chuck 一致,或者您是否有不同的看法?