Abstrakta programmeringsspråk och plattformar förbättras med tiden, ibland resulterar i nya språkfunktioner som erbjuder många fördelar. Men trots dessa fördelar, utvecklare kanske inte alltid är villiga att anta dem i sina projekt av olika skäl. I detta dokument beskriver vi en empirisk studie där vi bedömer antagandet av en särskild ny språkfunktion. Att studera hur utvecklare använder (eller inte använder) nya språkfunktioner är viktigt inom programmering av språkforskning och teknik eftersom det ger designers inblick i språkets användbarhet för att skapa meningsprogram på det språket. Denna kunskap kan i sin tur driva fram framtida innovationer inom området. Här utforskar vi Java standardmetoder, som tillåter gränssnitt att innehålla (intans) metodimplementeringar. Standardmetoder kan underlätta gränssnittsutveckling, göra vissa allmänt förekommande designmönster överflödiga, och förbättra både modularitet och underhållbarhet. Ett fokus i detta arbete är att genom ett vetenskapligt förhållningssätt och en ny teknik upptäcka situationer där utvecklare fann dessa konstruktioner användbara och där de inte gjorde det, och orsakerna till varje. Även om flera studier kretsar kring att bedöma nya språkfunktioner, så vitt vi vet, har denna typ av konstruktion inte tidigare övervägts. Trots deras fördelar, fann vi att utvecklare inte anta standardmetoder i alla situationer. Vår studie bestod av att skicka in pull-förfrågningar som introducerade språkfunktionen till verkliga, öppna Java-projekt utan att ändra ursprungliga programsemantik. Denna nya bedömningsteknik är proaktiv genom att antagandet drevs av en automatisk refaktoring strategi snarare än att vänta på utvecklare att upptäcka och integrera funktionen själva. På detta sätt presenterar vi bästa praxis och mönster för att använda språket funktionen effektivt tidigare snarare än senare och kan möjligen vägleda (nära) framtida språkutveckling. Vi förutser denna teknik för att vara användbar för att bedöma andra nya språkfunktioner, design mönster, och andra programmering idiomer. CCS för ACM
För att uppmuntra utvecklare att anta nya språkfunktioner, Khatchadourian och Masuhara lämnade in pull förfrågningar införa språkfunktioner till öppna källkodsprojekt REF.
Proactive Empirical Assessment of New Language Feature Adoption via Automated Refactoring: The Case of Java 8 Default Methods
{'venue': 'The Art, Science, and Engineering of Programming, 2018, Vol. 2, Issue 3, Article 6', 'journal': None, 'mag_field_of_study': ['Computer Science']}