The indolent lambdification of Java

Author:

Petrulio Fernando,Sawant Anand AshokORCID,Bacchelli Alberto

Abstract

AbstractAs Java 8 introduced functional interfaces and lambda expressions to the Java programming language, the JDK API was changed to introduce support for lambda expressions, thus allowing consumers to define lambda functions when using Java’s collections. While the JDK API allows for a functional paradigm, for API consumers to be able to completely embrace Java’s new functional features, third-party APIs must also support lambda expressions. To understand the current state of the Java ecosystem, we investigate (i) the extent to which third-party Java APIs have changed their interfaces, (ii) why or why not they introduce functional interface support and (iii) in the case the API has changed its interface how it does so. We also investigate the consumers’ perspective, particularly their ease in using lambda expressions in Java with APIs. We perform our investigation by manually analyzing the top 50 popular Java APIs, conducting in-person and email interviews with 23 API producers, and surveying 110 developers. We find that only a minority of the top 50 APIs support functional interfaces, the rest does not support them, predominantly in the interest of backward compatibility. Java 7 support is still greatly desirable due to enterprise projects not migrating to newer versions of Java. This suggests that the Java ecosystem is stagnant and that the introduction of new language features will not be enough to save it from the advent of new languages such as Kotlin (JVM based) and Rust (non-JVM based).

Publisher

Springer Science and Business Media LLC

Subject

Software

Reference48 articles.

1. Goetz B (2013) State of the lambda. [Online]. Available: http://cr.openjdk.java.net/~briangoetz/lambda/lambda-state-final.html

2. Mazinanian D, Ketkar A, Tsantalis N, Dig D (2017) Understanding the use of lambda expressions in java. Proc ACM Programm Lang 1(OOPSLA):85

3. Lucas W, Bonifácio R, Canedo ED, Marcílio D, Lima F (2019) Does the introduction of lambda expressions improve the comprehension of java programs? In: Proceedings of the XXXIII Brazilian Symposium on Software Engineering, pp 187–196

4. Goetz B (2010) Project lambda. [Online]. Available: https://openjdk.java.net/projects/lambda/

5. Goetz B (2013) State of the lambda: Libraries edition. [Online]. Available: https://cr.openjdk.java.net/~briangoetz/lambda/lambda-libraries-final.html

Cited by 3 articles. 订阅此论文施引文献 订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献

1. METHODS: A meta-path-based method for heterogeneous community detection in the open source software ecosystem;Information and Software Technology;2023-10

2. Method Chaining Redux: An Empirical Study of Method Chaining in Java, Kotlin, and Python;2023 IEEE/ACM 20th International Conference on Mining Software Repositories (MSR);2023-05

3. An exploratory study on the predominant programming paradigms in Python code;Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering;2022-11-07

同舟云学术

1.学者识别学者识别

2.学术分析学术分析

3.人才评估人才评估

"同舟云学术"是以全球学者为主线,采集、加工和组织学术论文而形成的新型学术文献查询和分析系统,可以对全球学者进行文献检索和人才价值评估。用户可以通过关注某些学科领域的顶尖人物而持续追踪该领域的学科进展和研究前沿。经过近期的数据扩容,当前同舟云学术共收录了国内外主流学术期刊6万余种,收集的期刊论文及会议论文总量共计约1.5亿篇,并以每天添加12000余篇中外论文的速度递增。我们也可以为用户提供个性化、定制化的学者数据。欢迎来电咨询!咨询电话:010-8811{复制后删除}0370

www.globalauthorid.com

TOP

Copyright © 2019-2024 北京同舟云网络信息技术有限公司
京公网安备11010802033243号  京ICP备18003416号-3