“Oracle 不会放弃 Java!”
在近日的TechRepublic和Packt Publishing榜单中,Java成了最受争议的编程语言:一方面,其常年雄踞最受欢迎的编程语言榜榜首;另一方面,它又因为代...
在近日的TechRepublic和Packt Publishing榜单中,Java成了最受争议的编程语言:一方面,其常年雄踞最受欢迎的编程语言榜榜首;另一方面,它又因为代码冗长、维护麻烦而成为大多数开发者最后悔学习的语言!但是本文的作者认为,无论开发者持怎样的观点,Java都只会越来越强大!
作者 | Simon Ritter
译者 | 弯月,责编 | 郭芮
出品 | CSDN(ID:CSDNnews)
以下为译文:
最近,TechRepublic发表了一篇文章讨论关于开发人员喜爱与讨厌的语言(https://www.techrepublic.com/article/5-programming-languages-developers-love-most-and-3-they-hate/)。结果却很意思:在最受欢迎的语言排行榜中Java名列第三,同时在最讨厌的语言中排在第二名的也是Java。显然,Java作为一门开发语言,人们对它的看法形成了两极分化。在我转发了这篇推文后,C++的创始人Bjarne Stroustrup回复说:“这个世上只有两种语言:人们抱怨的语言和没有人使用的语言。”我觉得他说得很对。
C++创始人Bjarne Stroustrup
第二篇文章来自Packt Publishing的开发者调查(https://hub.packtpub.com/containers-and-python-are-in-demand-but-blockchain-is-all-hype-says-skill-up-developer-survey/),这篇文章也注重给予了Java负面的评价(至少表面上如此)。从他们的结果来看,Java是大多数开发人员最后悔学习的语言。原文的数据显示,尽管Java排在第一位,但只有不到5%的受访者给出了这个答案。目前尚不清楚这5%是什么:参加调查的总人数(226名开发人员),后悔学习Java的人(102人),以Java为主要编程语言的人(38人)。无论怎样,我认为这并没有表现出开发人员的重要趋势。至于人们后悔学习Java的原因都是我们耳熟能详的托辞,比如“Java逐渐要被淘汰了”,“Java已经变成了现代编程界的COBOL”,以及“代码过于冗长,过于复杂,学习难度较高”等。
这篇报告的作者对这个结果的原因提出了大胆的看法:
“Oracle决定关注企业Java,并取消对OpenJDK的支持,这加剧了Java的不确定性。虽然红帽被收购为Java的未来奠定了基础,但对于依赖这种语言的人来说无疑是警告信号。”
然而,上述陈述并非实情,Oracle绝对不会取消对Java的支持。他们确实改变了提供Oracle JDK的方式,但你仍然可以免费下载和使用Oracle OpenJDK JDK。有几个提供商(包括Azul)提供了免费或通过付费商业支持更新JDK的旧版本。此外,红帽虽然是OpenJDK强大的支持者,但还没有正式接管。在红帽就职的Andrew Haley现在是OpenJDK 7、8和11的项目负责人,Oracle还在负责当前版本的OpenJDK项目。
即使在自诞生以来24年后的今天,在编程语言流行度的排名调查中,例如TIOBE指数和RedMonk编程语言排名等,Java的排名仍然很靠前。多年来,我们见证了很多语言的迅速崛起,声称很快就能取代Java。最突出的例子是Ruby on Rails(严格来说是一种框架,而不仅仅是一种语言)、Scala以及最近的Kotlin。
这不禁让我想到,对于那些管理Java平台的人来说这是多么艰难,比如Mark Reinhold、Brian Goetz和John Rose等。引用十四世纪的僧侣John Lydgate的一句名言:“你可以随时取悦一些人,你可以在某些时候取悦所有人,但你不能一直讨好所有人。”(上面这句话应该用vi命令替换一下,:/人/开发者/g)。
Java之父James Gosling将其形容为蓝领编程语言。其基本思想是提供一种语言,帮助开发人员完成工作。在这方面Java确实取得了很大成功。
难点在于如何发展平台。如何改变Java,简化Java,让一些开发人员满意,同时也不会让那些喜欢Java核心语法的人失望?
让我们回顾一下Packt开发者调查的最后一句话:“代码过于冗长,过于复杂,学习难度较高”。这是Java常见的批评,就因为Java的样板代码太多,太冗长了。
在过去的二十年中,我们已经看到了一些变化,就算解决不了这个问题,但至少可以有一些缓解。JDK 5中引入的注释开始支持依赖注入,因此简化了企业Java的开发。我相信今时今日所有人都会使用注释开发Web服务。Lambda表达式和JDK 8中的流API,让处理数据集合的工作变得更为简洁。甚至像Project Coin这样的变化也有细微的帮助(多个catch和try-with-resources都是很好的例子)。
与Kotlin等语言相比,Java仍然很冗长。Kotlin开发人员最开始就拥有的显著优势在于,他们不需要保持与几十年来的现有代码和应用程序的向后兼容性。而这是OpenJDK开发人员非常重视的问题。
从个人的角度来看,Java作为一种开发语言最强大的特性之一就是可读性。我想大多数开发人员都同意,代码的阅读次数远远超过编写的次数。所有开发人员随时随刻都需要维护其他人的代码,语言越容易理解,就越容易解决错误或改进。我曾经用Perl开发过应用程序,那个应用程序并不大,打印出来大约只有8页纸,但我很快就发现,Perl的语法密集度令人难以置信,它是一种只能编写无法阅读的语言。所以说冗长也不一定是坏事!
重要的是Java一直在不断发展。随着OpenJDK六个月一次的发布节奏,似乎变化的步伐已经放缓。我们看到不断涌现的新功能,其中许多功能非常小,但却可以减轻开发人员的工作负担。
Java增添大的新功能需要时间,因为最重要的还是保持Java的正确性。我们将在JDK 13中看到switch表达式的改动,该表达式作为JDK 12中的预览功能被引入。Java一改往昔直接设置语法(通过Java SE规范)的做法,而是采用了预览功能,所以开发人员可以尝试这些功能,并在最终确定之前提供反馈。
从长期来看,Amber项目将继续对Java语言的语法做出合理的改变,以解决开发人员有时会遇到的一些边缘情况。我们期待着在接下来的几个版本中看到Amber的更多成果。
好消息是,无论你是喜欢还是讨厌,由于OpenJDK架构师的辛勤工作,Java只会变得越来越好,而且Java也将继续保持地球上最受欢迎的开发平台之一的地位。
原文:https://www.azul.com/love-it-or-hate-it-java-continues-to-evolve/
本文为 CSDN 翻译,转载请注明来源出处。
【End】
热 文 推 荐
☞直接拿来用!Visual Studio 扩展工具利用 AI 强化你的代码
☞苹果召回6.3万台MacBook Pro;罗永浩回应“收购苹果”;新版Edge支持Windows 7/8 | 极客头条
☞媲美Pandas?Python的Datatable包怎么用?
☞西交出身,辛书冕获CVPR 2019最佳论文,李飞飞团队获经典论文奖
☞倒计时10天 | 堪称年度中国最具影响力的以太坊技术盛宴,为何不容错过?
点击阅读原文,输入关键词,搜索CSDN文章。
更多推荐
所有评论(0)