在近日的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】
热 文推 荐
☞媲美Pandas?Python的Datatable包怎么用?
☞西交出身,辛书冕获CVPR 2019最佳论文,李飞飞团队获经典论文奖
☞倒计时10天 | 堪称年度中国最具影响力的以太坊技术盛宴,为何不容错过?
点击阅读原 文,输入关键词,搜索CSDN文章。
你点的每个“在看”,我都认真当成了喜欢
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Introduction to Computation and Programming Using Python
John V. Guttag / The MIT Press / 2013-7 / USD 25.00
This book introduces students with little or no prior programming experience to the art of computational problem solving using Python and various Python libraries, including PyLab. It provides student......一起来看看 《Introduction to Computation and Programming Using Python》 这本书的介绍吧!