My research currently centers around the command line interface (CLI). Since the early days of computer science, the way we interact with computers has changed dramatically. Likewise, software development as an engineering discipline has evolved with time, and today's development tools, such as Integrated development environments (IDEs), are growing ever more sophisticated.
Yet, over several decades of change and progression, one element appears to remain stubbornly present: the command line interface - loathed by some, yet loved by others. Even with today's sophistication of software development tools, many of them visual, it appears that the command line still plays an important role.
In my research, I am attempting to understand why certain developers swear by the command line and prefer it over visual tools while others are prevented from enjoying the command line and leveraging it more effectively. This research encompasses reviewing existing literature, conducting surveys with developers to gather first-hand evidence, as well as developing new tools to assist in the usage of the command line.
During my fast-tracked Master's studies, I developed the first prototype of LISA, which I continued to work on all throughout my doctorate. LISA is a high-performance, language-independent library for formulating and running fine-grained historical software analyses on projects stored in Git repositories. The main advantage of LISA over traditional code analysis tools is the ability to analyze thousands of revisions in parallel, as opposed to one release at a time, like in most traditional approaches. More detailed information on LISA can be found in my doctoral thesis.
For my Master's project, I developed a debugging and introspection tool for Signal/Collect, now part of its mainline distribution, which allows users to visualize the graph they are working on and to step through computations one step at a time while observing changes in the graph.
Facets of Software Evolution
As part of my bachelor thesis, I developed an easy-to-use web front-end for running and viewing in-depth software quality analyses called Facets of Software Evolution. More information can be found in my Bachelor's thesis.