A declarative enhancement of Java']JavaScript programs by leveraging the Java']Java metadata infrastructure

被引:2
|
作者
Wang, Yuchen [1 ]
Cheng, Kwok Sun [1 ]
Song, Myoungkyu [1 ]
Tilevich, Eli [2 ]
机构
[1] Univ Nebraska, Dept Comp Sci, Omaha, NE 68182 USA
[2] Virginia Tech, Dept Comp Sci, Blacksburg, VA USA
关键词
Software reuse; Code enhancement; Metadata; Annotations;
D O I
10.1016/j.scico.2019.05.005
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Web browsers have evolved into indispensable software platforms for modern applications. Although JavaScript has become a de-facto lingua franca for developing web applications, the JavaScript software development tools and methodologies lag behind those of languages such as Java and C#. In particular, to enhance JavaScript programs with non-functional concerns (e.g., persistence, security, transactions, and logging) JavaScript developers need to modify the source code by hand. Developers then often end up having to maintain the resulting modified version separately for reasons that include poor design, the complexities of program evolution, and fundamental language limitations. The necessity to modify code by hand could be avoided if JavaScript had metadata facilities for developers to specify non-functional concerns declaratively. To address this problem, we present a novel declarative approach, Transparent Automated Enhancement for JavaScript (TAE-JS) that enhances JavaScript programs with the ability to use declarative metadata. The metadata is expressed by means of Java annotations. We have implemented our technique in an open-source plug-in for the Eclipse IDE. This plugin allows a developer to enhance the original version of a JavaScript program by specifying concerns declaratively using Java annotations. It then analyzes an original version of the program to automatically generate enhanced program versions by adding the declared concerns. We evaluated TAE-JS with four practical examples that enhance JavaScript programs by declaratively adding concerns such as persistence, security, transactions, and logging. In a user study with ten student developers and three professional engineers at PayPal, the participants viewed favorably TAE-JS's flexible declarative enhancement capabilities, seeing them as a valuable mechanism for implementing non-functional concerns in JavaScript programs. Our evaluation results are promising in demonstrating the potential benefits of our approach to complement existing JavaScript development tools. (C) 2019 Elsevier B.V. All rights reserved.
引用
收藏
页码:27 / 46
页数:20
相关论文
共 50 条
  • [1] Declarative metadata processing with XML and Java']Java
    Guillaume, D
    Plante, R
    [J]. ASTRONOMICAL DATA ANALYSIS SOFTWARE AND SYSTEMS X, 2001, 238 : 221 - 224
  • [2] Converting Physlets and Other Java']Java Programs to Java']JavaScript
    Christian, Wolfgang
    Belloni, Mario
    Hanson, Robert M.
    Mason, Bruce
    Barbato, Lyle
    [J]. PHYSICS TEACHER, 2021, 59 (04): : 278 - 281
  • [3] Jivin' with (Java']Java and) Java']JavaScript
    Beck, CO
    [J]. 45TH ANNUAL CONFERENCE ON IMAGINATION, INNOVATION AND COMMUNICATION, 1998, : 331 - 333
  • [4] Flow Java']Java: Declarative concurrency for Java']Java
    Drejhammar, F
    Schulte, C
    Brand, P
    Haridi, S
    [J]. LOGIC PROGRAMMING, PROCEEDINGS, 2003, 2916 : 346 - 360
  • [5] Declarative concurrency in Java']Java
    Ramirez, R
    Santosa, AE
    [J]. PARALLEL AND DISTRIBUTED PROCESSING, PROCEEDINGS, 2000, 1800 : 332 - 339
  • [6] Towards Specializing Java']JavaScript Programs
    Thiemann, Peter
    [J]. PERSPECTIVES OF SYSTEM INFORMATICS, PSI 2014, 2015, 8974 : 320 - 334
  • [7] Java']Java, Java']JavaScript, network computers and healthcare
    Smith, MF
    Maclean, IW
    [J]. CURRENT PERSPECTIVES IN HEALTHCARE COMPUTING, CONFERENCE, 1997, : 219 - 226
  • [8] Identifying Utility Functions in Java']Java and Java']JavaScript
    Mendes, Tamara
    Valente, Marco Tulio
    Hora, Andre
    [J]. PROCEEDINGS OF 2016 X BRAZILIAN SYMPOSIUM ON SOFTWARE COMPONENTS, ARCHITECTURES AND REUSE (SBCARS), 2016, : 121 - 130
  • [9] Web applets: Java']Java Java']JavaScript and ActiveX
    Stein, L
    [J]. TRENDS IN GENETICS, 1996, 12 (11) : 484 - 485
  • [10] JAVA']JAVACOP: Declarative Pluggable Types for Java']Java
    Markstrum, Shane
    Marino, Daniel
    Esquivel, Matthew
    Millstein, Todd
    Andreae, Chris
    Noble, James
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2010, 32 (02):