什么样才算是走在前沿的Java开发者?他们只写Java或者能在JVM上运行的语言吗?Scala开发者或者Java开发者使用同样的JVM? 显然这里是有一些意见上的分歧,并且他们对于 JVM 社区也并不太积极。那么成为一个JVM 上的前沿开发者有什么意义?在JVM上已经有了很多语言像 Scala,Kotlin 和 Clojure,这些语言已经成了新的发展方向。 JVM 上的所有语言都受到欢迎? 你会同时写两种(或者两种以上)的语言吗?这样的评论算了吧。 …,相对用两个语言这么大的开销,Java 8其实也没有多大的问题。 忽略语法的问题,作者相信现在的开发者包括我自己不会去学一个新语言并且然后再去支持这个语言。 这个也出现在那些对让其他语言有和JVM速度一样不感兴趣甚至公开否定的人群中。 是Scala语言战争宗教原教旨主义的战斗。 或者你还痴心妄想主宰这场战争,不好意思兄弟.. 所以一个代码库当中为什么不能包含多种语言呢,而且开发人员同时能在代码库中支持所有语言。 Java生态系统是为实现功能使用正确的库,所以为什么总会有些人不允许使用正确的语言去编写软件呢? 近的工作描述 近收到一些招聘人员发来的招聘信息,我觉得很有意思。我阅读这些招聘信息,能够很好地了解到当地招聘市场的形势。为了保持简洁,我把重要的部分记录了下来。 JAVA工程师 … 技术 … 目前,正在寻求一名Java工程师 … Rest API 中间层 … 增强 ETL 流程 … 所需技能: 精通现代的Java技术: Scala, AKKA, Play Framework … 能够在快节奏的环境中茁壮成长 该描述列出了Java语言所需的技能,如Scala,Akka和Play Framework,这是 LightBend’s Scala-side Reactive Platform ,被称为“现代”的Java技术。“我知道这会使一些读者生气,好像 一个无名的Java 传教士在描述我使用的Scala,AKKA和Play为“晦涩难懂的技术”。 这让我笑得如此艰难 晦涩难懂的技术 有一些人认为JVM只用于Java语言和Java开发人员,并且会公开批评那些在”他们“的世界里谈论其他技术的人。我在DZone遇到过一些,在某种程度 上这种行为是很自然的,因为很多人会批评他们难以理解的东西,当他们看到自己的位置受到了威胁,会抵抗, 而他们只是想推动心中的FUD(恐惧,不确定性和怀疑)。 我曾经的一个同事,有一次他从读过的美国陆军生存训练手册中给了一个摘引。 这个摘引可以在网上找到几个版本,这是我喜欢的一个: 生存有两种严重的危险,是对舒适和被动前景的让步。这些危险必须被认为是其一般影响及其与特定生存压力关系的原因。 这两种危险都代表了遵循小阻力线的态度,并推翻你应付压力的努力或欲望。 这两种危险都代表了主要对当前情况的关注的态度,而不是生存的总体问题。 要成功地生存,你必须能够掌握这两种趋势。 我相信软件的发展是使原本不能视新科技为进步的人接受它,而不是去挑战那些深入人心的东西。我曾一直看着我们行业的变化,我看到他们每十年左右的变化。能够适应和改变,不仅让我这么多年生存下来,而且让我在软件开发的世界里繁华了四十多年。 结论 显然,Java是JVM上受欢迎的功能丰富的语言,但在过去的十年里,新特性发展速度慢。有人说这是因为Java语言是成熟和完整的,其实我们大多数人 比谁都明白。我认为许多新的JVM语言被发明出来,证明Java语言是不足的,Java语言将不再满足许多开发人员的需求。那么对于JVM的其余部分这意 味着什么呢? 插话 你认为在JVM上运行的所有语言都值得需要相同的时间和计算吗? 同时学习使用多种第一代语言,我们能成长吗?