通过自动化重构主动评估新语言特性的采用:以 Java 8 默认方法为例
编程语言
2018-03-29 v1 软件工程
摘要
编程语言和平台会随着时间的推移而改进,有时会产生提供诸多好处的新语言特性。然而,尽管有这些好处,开发者可能并不总是愿意出于各种原因在其项目中采用它们。在本文中,我们描述了一项实证研究,我们在其中评估了对某一特定新语言特性的采用。研究开发者如何使用(或不使用)新语言特性在编程语言研究和工程中很重要,因为它能让设计者深入了解该语言在创建有意义的程序方面的可用性。这一知识反过来可以推动该领域的未来创新。在这里,我们探讨了 Java 8 默认方法,它允许接口包含(实例)方法实现。默认方法可以简化接口演进,使某些无处不在的设计模式变得多余,并提高模块性和可维护性。本工作的一个重点是通过科学方法和一种新技术,发现开发者发现这些构造有用或无用的情境,以及各自的原因。尽管有几项研究以评估新语言特性为中心,但据我们所知,这种构造以前并未被考虑过。尽管默认方法有好处,我们发现开发者并未在所有情况下都采用它们。我们的研究包括向 19 个真实的开源 Java 项目提交引入该语言特性的拉取请求,且不改变原始程序语义。这种新颖的评估技术是主动的,因为采用是由自动重构方法驱动的,而不是等待开发者自己发现并集成该特性。通过这种方式,我们尽早提出了有效使用该语言特性的最佳实践和模式,并有可能指导(近)未来的语言演进。我们预见该技术在评估其他新语言特性、设计模式和其他编程惯用法时将非常有用。
引用
@article{arxiv.1803.10198,
title = {Proactive Empirical Assessment of New Language Feature Adoption via Automated Refactoring: The Case of Java 8 Default Methods},
author = {Raffi Khatchadourian and Hidehiko Masuhara},
journal= {arXiv preprint arXiv:1803.10198},
year = {2018}
}