User-driven Design and Evaluation of Liquid Types in Java
Catarina Gamboa, Paulo Alexandre Santos, Christopher S. Timperley and, Alcides Fonseca

TL;DR
This paper presents LiquidJava, a user-driven design and evaluation of Liquid Types in Java, demonstrating improved bug detection and debugging efficiency through a developer-centered approach.
Contribution
It introduces a new Java-based Liquid Types system, LiquidJava, designed with developer input to enhance usability and adoption in mainstream programming.
Findings
Developers found LiquidJava useful for bug detection.
LiquidJava helped users debug faster.
Participants expressed intent to adopt LiquidJava.
Abstract
Bugs that are detected earlier during the development lifecycle are easier and cheaper to fix, whereas bugs that are found during production are difficult and expensive to address, and may have dire consequences. Type systems are particularly effective at identifying and preventing bugs early in the development lifecycle by causing invalid programs to result in build failure. Liquid Types are more powerful than those found in mainstream programming languages, allowing the detection of more classes of bugs. However, while Liquid Types were proposed in 2008 with their integration in ML and subsequently introduced in C (2012), Javascript(2012) and Haskell(2014) through language extensions, they have yet to become widely adopted by mainstream developers. This paper investigates how Liquid Types can be integrated in a mainstream programming language, Java, by proposing a new design that aims…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Advanced Malware Detection Techniques · Software Testing and Debugging Techniques
