F. Olivero, Michele Lanza, Marco D'Ambros, R. Robbes
{"title":"Tracking human-centric controlled experiments with biscuit","authors":"F. Olivero, Michele Lanza, Marco D'Ambros, R. Robbes","doi":"10.1145/2414721.2414723","DOIUrl":"https://doi.org/10.1145/2414721.2414723","url":null,"abstract":"Software is created by humans, for humans. For this reason, software engineering is---above all---a human activity. Acknowledging this fact, many researchers perform controlled experiments with human subjects to evaluate the performance and usability of novel approaches and software engineering tools. However, the intrinsically non-deterministic nature of humans introduces a number of threats to the validity of such experiments. One of them concerns how to record information without influencing the behavior of the subjects involved. Another one relates to providing means to assure the correctness of the gathered data, for further pristine analyses and replication.\u0000 We present Biscuit, a tool that silently records relevant pieces of information regarding an experiment performed with human subjects. We present the main features and benefits of Biscuit by showcasing a controlled experiment of Gaucho, a next generation IDE. Based on our experience, we discuss the potential of Biscuit and outline future research in this direction.","PeriodicalId":217446,"journal":{"name":"Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"57 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125945048","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Comparative language fuzz testing: programming languages vs. fat fingers","authors":"D. Spinellis, Vassilios Karakoidas, P. Louridas","doi":"10.1145/2414721.2414727","DOIUrl":"https://doi.org/10.1145/2414721.2414727","url":null,"abstract":"We explore how programs written in ten popular programming languages are affected by small changes of their source code. This allows us to analyze the extend to which these languages allow the detection of simple errors at compile or at run time. Our study is based on a diverse corpus of programs written in several programming languages systematically perturbed using a mutation-based fuzz generator. The results we obtained prove that languages with weak type systems are significantly likelier than languages that enforce strong typing to let fuzzed programs compile and run, and, in the end, produce erroneous results. More importantly, our study also demonstrates the potential of comparative language fuzz testing for evaluating programming language designs.","PeriodicalId":217446,"journal":{"name":"Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"68 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124023565","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Programming language evolution via source code query languages","authors":"Raoul-Gabriel Urma, A. Mycroft","doi":"10.1145/2414721.2414728","DOIUrl":"https://doi.org/10.1145/2414721.2414728","url":null,"abstract":"Programming languages evolve just like programs. Language features are added and removed, for example when programs using them are shown to be error-prone. When language features are modified, deprecated, removed or even deemed unsuitable for the project at hand, it is necessary to analyse programs to identify occurrences to refactor.\u0000 Source code query languages in principle provide a good way to perform this analysis by exploring codebases. Such languages are often used to identify code to refactor, bugs to fix or simply to understand a system better.\u0000 This paper evaluates seven Java source code query languages: Java Tools Language, Browse-By-Query, SOUL, JQuery, .QL, Jackpot and PMD as to their power at expressing queries required by several use cases (such as code idioms to be refactored).","PeriodicalId":217446,"journal":{"name":"Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"262 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129103272","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"How not to survey developers and repositories: experiences analyzing language adoption","authors":"Leo A. Meyerovich, A. Rabkin","doi":"10.1145/2414721.2414724","DOIUrl":"https://doi.org/10.1145/2414721.2414724","url":null,"abstract":"We present cross-sectional analyses of programming language use and reflect upon our experience in doing so. In particular, we directly analyze groups of 1,500-13,000 developers by using questionnaires and 260,000 developers indirectly so by mining 210,000 software repositories. Our analysis reveals programming language adoption phenomena surrounding developer age, birth year, workplace, and software repository preference.\u0000 We find that survey methods are increasingly accessible and relevant, but there are distinctive problems in examining developers and code repositories. We show that analyzing software repositories suffers from sample bias problems similar to those encountered when directly polling developers. Such bias limits the general validity of research claims based on analysis of software repositories. We aid future empirical researchers by describing concrete practices and opportunities to improve the results of developer and software repository surveys.","PeriodicalId":217446,"journal":{"name":"Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116504898","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Peer code review in open source communitiesusing reviewboard","authors":"Amiangshu Bosu, Jeffrey C. Carver","doi":"10.1145/2414721.2414726","DOIUrl":"https://doi.org/10.1145/2414721.2414726","url":null,"abstract":"Peer code review is an effective method to reduce the number of defects and maintain source code integrity. Peer re-views in most of the Open Source Software (OSS) communities are conducted via mailing list, which are difficult to manage at times. Code review tools aim to ease the review process and keep track of the review requests. In this paper, we describe preliminary results of our study to evaluate code review process using a popular open source code review tool (ReviewBoard) in OSS communities. Some of our study findings are similar to the findings of previous studies on code reviews. In the projects under our study, we found that, most of the revisions are not submitted for peer review. More than 80% of the review requests are responded by two or less number of reviewers. Top committers of the projects are also top contributors of code reviews. Most of the review requests get prompt feedback within a day; however, some requests might wait for feed-back for a long time. Most importantly, we have identified some interesting directions for future research.","PeriodicalId":217446,"journal":{"name":"Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"248 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134217959","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Mohsen Vakilian, Nicholas Chen, Stas Negara, B. Rajkumar, Roshanak Zilouchian Moghaddam, Ralph E. Johnson
{"title":"The need for richer refactoring usage data","authors":"Mohsen Vakilian, Nicholas Chen, Stas Negara, B. Rajkumar, Roshanak Zilouchian Moghaddam, Ralph E. Johnson","doi":"10.1145/2089155.2089164","DOIUrl":"https://doi.org/10.1145/2089155.2089164","url":null,"abstract":"Even though modern Integrated Development Environments (IDEs) support many refactorings, studies suggest that automated refactorings are used infrequently, and few developers use anything beyond Rename and Extract refactorings. Little is known about why automated refactorings are seldom used. We present a list of challenging questions whose answers are crucial for understanding the usability issues of refactoring tools. This paper argues that the existing data sources - Eclipse UDC, Eclipse refactoring histories, version control histories, etc. - are inadequate for answering these questions. Finally, we introduce our tools to collect richer usage data that will enable us to answer some of the open research questions about the usability of refactoring tools. Findings from our data will foster the design of the next generation of refactoring tools.","PeriodicalId":217446,"journal":{"name":"Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-10-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128362775","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
A. Stefik, Susanna Siebert, Melissa Stefik, Kim Slattery
{"title":"An empirical comparison of the accuracy rates of novices using the quorum, perl, and randomo programming languages","authors":"A. Stefik, Susanna Siebert, Melissa Stefik, Kim Slattery","doi":"10.1145/2089155.2089159","DOIUrl":"https://doi.org/10.1145/2089155.2089159","url":null,"abstract":"We present here an empirical study comparing the accuracy rates of novices writing software in three programming languages: Quorum, Perl, and Randomo. The first language, Quorum, we call an evidence-based programming language, where the syntax, semantics, and API designs change in correspondence to the latest academic research and literature on programming language usability. Second, while Perl is well known, we call Randomo a Placebo-language, where some of the syntax was chosen with a random number generator and the ASCII table. We compared novices that were programming for the first time using each of these languages, testing how accurately they could write simple programs using common program constructs (e.g., loops, conditionals, functions, variables, parameters). Results showed that while Quorum users were afforded significantly greater accuracy compared to those using Perl and Randomo, Perl users were unable to write programs more accurately than those using a language designed by chance.","PeriodicalId":217446,"journal":{"name":"Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"114 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-10-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128162771","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Inherent vs. accidental vs. intentional difficulties in programming","authors":"B. Myers","doi":"10.1145/2089155.2089157","DOIUrl":"https://doi.org/10.1145/2089155.2089157","url":null,"abstract":"It is the conventional wisdom that some aspects of programming are difficult to learn, and some aspects are error-prone even for experts. Is it possible to separate what is inherently difficult, and therefore most appropriately dealt with through education, versus what is just accidentally difficult, so a new design for a language or development environment might be able to \"fix\" the problem? And are there aspects that a designer makes difficult \"on purpose\"? For example, compare recursion, the syntax for switch statements in C, and how unification works in Prolog, respectively. It is not clear that the conventional wisdom on this topic can be trusted. For example, whereas most argue that concurrency is inherently difficult, the creators of the Alice language argue that they have found a way to make it understandable to novices. This talk will explore some HCI research on this topic, and approaches for identifying the differences.","PeriodicalId":217446,"journal":{"name":"Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-10-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131448046","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Designing useful tools for developers","authors":"Thomas D. Latoza, B. Myers","doi":"10.1145/2089155.2089166","DOIUrl":"https://doi.org/10.1145/2089155.2089166","url":null,"abstract":"Designing useful tools for developers requires identifying and understanding an important problem developers face and designing a solution that addresses this problem. This paper describes a design process that uses data to understand problems, design solutions, and evaluate solutions' usefulness.","PeriodicalId":217446,"journal":{"name":"Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-10-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114099359","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Heuristic evaluation of programming language features: two parallel programming case studies","authors":"Caitlin Sadowski, S. Kurniawan","doi":"10.1145/2089155.2089160","DOIUrl":"https://doi.org/10.1145/2089155.2089160","url":null,"abstract":"Usability is an important feature for programming languages, and user evaluations can provide invaluable feedback on language design. However, user studies which compare programming languages or systems are often very expensive and typically inconclusive. In this paper, we posit that discount usability methods can be successfully applied to programming languages concepts such as language features. We give examples of useful feedback received from applying heuristic evaluation to two language features targeted at parallel programming.","PeriodicalId":217446,"journal":{"name":"Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"47 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-10-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116987475","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}