{"title":"How Developers Use Data Race Detection Tools","authors":"Caitlin Sadowski, Jaeheon Yi","doi":"10.1145/2688204.2688205","DOIUrl":"https://doi.org/10.1145/2688204.2688205","url":null,"abstract":"Developers need help with multithreaded programming. We investigate how two program analysis tools are used by developers at Google: ThreadSafety, an annotation-based static data race analysis, and TSan, a dynamic data race de- tector. The data was collected by interviewing seven veteran industry developers at Google, and provides unique insight into how four different teams use tooling in different ways to help with multithreaded programming. The result is a collection of perceived pros and cons of using ThreadSafety and TSan, as well as general issues with multithreading.","PeriodicalId":426815,"journal":{"name":"Proceedings of the 5th Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131293373","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":"Asking and Answering Questions during a Programming Change Task in Pharo Language","authors":"Juraj Kubelka, Alexandre Bergel, R. Robbes","doi":"10.1145/2688204.2688212","DOIUrl":"https://doi.org/10.1145/2688204.2688212","url":null,"abstract":"Previous studies focus on the specific questions software engineers ask when evolving a codebase. Though these studies observe developers using statically typed languages, little is known about the developer questions using dynamically typed languages. Dynamically typed languages present new challenges to understanding and navigating in a codebase and could affect results reported by previous studies. This paper replicates a previous study and presents the analysis of six programming sessions made in Pharo, a dynamically typed language. We found a similar result when comparing sessions on an unfamiliar codebase with the previous work. Our result on the familiar code greatly deviates from the replicated study, likely caused by different tasks and development strategies. Both missing type information and test driven development affected participant behavior and prudence on codebase understanding, where some participants made changes based on assumptions. We provide a set of questions that are useful in characterizing activity related to the use of a dynamically typed language and test-driven development -- questions not explicitly considered in previous research. We also present a number of issues that we would like to discuss during the PLATEAU workshop.","PeriodicalId":426815,"journal":{"name":"Proceedings of the 5th Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129159587","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}
Michael J. Coblenz, Jonathan Aldrich, B. Myers, Joshua Sunshine
{"title":"Considering Productivity Effects of Explicit Type Declarations","authors":"Michael J. Coblenz, Jonathan Aldrich, B. Myers, Joshua Sunshine","doi":"10.1145/2688204.2688218","DOIUrl":"https://doi.org/10.1145/2688204.2688218","url":null,"abstract":"Static types may be used both by the language implementation and directly by the user as documentation. Though much existing work focuses primarily on the implications of static types on the semantics of programs, relatively little work considers the impact on usability that static types provide. Though the omission of static type information may decrease program length and thereby improve readability, it may also decrease readability because users must then frequently derive type information manually while reading programs. As type inference becomes more popular in languages that are in widespread use, it is important to consider whether the adoption of type inference may impact productivity of developers.","PeriodicalId":426815,"journal":{"name":"Proceedings of the 5th Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"98 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122506322","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":"Session details: Research Papers","authors":"C. Anslow","doi":"10.1145/3255186","DOIUrl":"https://doi.org/10.1145/3255186","url":null,"abstract":"","PeriodicalId":426815,"journal":{"name":"Proceedings of the 5th Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127127252","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":"Usability Hypotheses in the Design of Plaid","authors":"Joshua Sunshine, Jonathan Aldrich","doi":"10.1145/2688204.2688219","DOIUrl":"https://doi.org/10.1145/2688204.2688219","url":null,"abstract":"Plaid is a research programming language with a focus on typestate, permissions, and concurrency. Typestate describes ordering constraints on method calls to an object; Plaid incorporates typestate into both its object model and its type system. Permissions, incorporated into Plaid's type system and runtime, describe whether a reference can be aliased and whether aliases can change that reference. Permissions support static typestate checking, but they also allow Plaid's compiler to automatically parallelize Plaid code. In this paper, we describe the usability-related hypotheses that drove the design of Plaid. We describe the evidence, both informal and scientific, that inspired and (in some cases) validated these hypotheses, and reflect on our experience designing and validating the language.","PeriodicalId":426815,"journal":{"name":"Proceedings of the 5th Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116711221","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":"Session details: Research Papers and Group Activity","authors":"Thomas D. Latoza","doi":"10.1145/3255188","DOIUrl":"https://doi.org/10.1145/3255188","url":null,"abstract":"","PeriodicalId":426815,"journal":{"name":"Proceedings of the 5th Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"31 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122550727","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":"Supporting Social Interactions and Awareness in Educational Programming Environments","authors":"C. Hundhausen, A. S. Carter","doi":"10.1145/2688204.2688215","DOIUrl":"https://doi.org/10.1145/2688204.2688215","url":null,"abstract":"Empirical evaluations of programming environments have traditionally focused on human performance measures such as task efficiency, error rates, and learnability. In addition to these effectiveness measures, we believe there is good reason to consider the ability of programming environments to promote social interactions and awareness during programming tasks. Indeed, especially in educational contexts, programming success and persistence in the computing discipline have been positively correlated with programmers' sense of community and ability to communicate with others. We introduce social programming environments as a new breed of educational programming environment designed to promote social interaction and awareness, and we propose a way to evaluate such environments relative to social learning theory.","PeriodicalId":426815,"journal":{"name":"Proceedings of the 5th Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126442816","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":"Session details: Research Papers","authors":"Joshua Sunshine","doi":"10.1145/3255187","DOIUrl":"https://doi.org/10.1145/3255187","url":null,"abstract":"","PeriodicalId":426815,"journal":{"name":"Proceedings of the 5th Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"26 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114390692","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":"EUKLAS: Supporting Copy-and-Paste Strategies for Integrating Example Code","authors":"Christian Dörner, A. Faulring, B. Myers","doi":"10.1145/2688204.2688208","DOIUrl":"https://doi.org/10.1145/2688204.2688208","url":null,"abstract":"Researchers have paid increasing attention in recent years to the fact that much development occurs though example modification. Helping programmers with some of the pit-falls and vagaries of working with example code is the goal of our tool, called Euklas. It helps developers to integrate JavaScript example code into their own projects by using familiar IDE interaction techniques of the Eclipse IDE. The Euklas plugin uses static, heuristic source code checks to highlight potential errors and to recommend potential fixes, when incomplete sections of code are copied from a work-ing JavaScript example and pasted into the program being edited. The most unique feature of the tool is the ability to automatically import missing variable and function defini-tions from an example file into a new project file. Our preliminary user study of Euklas suggests that it supports users in fixing errors more easily.","PeriodicalId":426815,"journal":{"name":"Proceedings of the 5th Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"41 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116344413","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}
Joel Galenson, Cindy Rubio-González, Sarah E. Chasins, Liang Gong
{"title":"Research.js: Evaluating Research Tool Usability on the Web","authors":"Joel Galenson, Cindy Rubio-González, Sarah E. Chasins, Liang Gong","doi":"10.1145/2688204.2688217","DOIUrl":"https://doi.org/10.1145/2688204.2688217","url":null,"abstract":"Many research projects are publicly available but rarely used due to the difficulty of building and installing them. We propose that researchers compile their projects to JavaScript and put them online to make them more accessible to new users and thus facilitate large-scale online usability studies.","PeriodicalId":426815,"journal":{"name":"Proceedings of the 5th Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"28 8 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133047613","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}