Researchers, students and practitioners often encounter a situation when the build process of a third-party software system fails. In this paper, we aim to confirm this observation present mainly as anecdotal evidence so far. Using a virtual environment simulating a programmer's one, we try to fully automatically build target archives from the source code of over 7,200 open source Java projects. We found that more than 38% of builds ended in failure. Build log analysis reveals the largest portion of errors are dependency-related. We also conduct an association study of factors affecting build success.
{"title":"A quantitative study of Java software buildability","authors":"Matúš Sulír, J. Porubän","doi":"10.1145/3001878.3001882","DOIUrl":"https://doi.org/10.1145/3001878.3001882","url":null,"abstract":"Researchers, students and practitioners often encounter a situation when the build process of a third-party software system fails. In this paper, we aim to confirm this observation present mainly as anecdotal evidence so far. Using a virtual environment simulating a programmer's one, we try to fully automatically build target archives from the source code of over 7,200 open source Java projects. We found that more than 38% of builds ended in failure. Build log analysis reveals the largest portion of errors are dependency-related. We also conduct an association study of factors affecting build success.","PeriodicalId":124643,"journal":{"name":"Proceedings of the 7th International Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"160 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122138510","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}
In computing, we usually take a technical view of programming languages (PL), defining them as formal means of specifying a computer behavior. This view shapes much of the research that we do on PL, determining the questions we ask about them, the improvements we make to them, and how we teach people to use them. But to many people, PL are not purely technical things, but socio-technical things. This paper describes several alternative views of PL and how these views can reshape how we design, evolve, and use programming languages in research and practice.
{"title":"What is a programming language, really?","authors":"Amy J. Ko","doi":"10.1145/3001878.3001880","DOIUrl":"https://doi.org/10.1145/3001878.3001880","url":null,"abstract":"In computing, we usually take a technical view of programming languages (PL), defining them as formal means of specifying a computer behavior. This view shapes much of the research that we do on PL, determining the questions we ask about them, the improvements we make to them, and how we teach people to use them. But to many people, PL are not purely technical things, but socio-technical things. This paper describes several alternative views of PL and how these views can reshape how we design, evolve, and use programming languages in research and practice.","PeriodicalId":124643,"journal":{"name":"Proceedings of the 7th International Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"434 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124161080","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}
Svetomir Kurtev, Tommy Aagaard Christensen, Bent Thomsen
This paper presents work in progress on developing a Discount Method for Programming Language Evaluation inspired by the Discount Usability Evaluation method (Benyon 2010) and the Instant Data Analysis method (Kjeldskov et al. 2004). The method is intended to bridge the gap between small scale internal language design evaluation methods and large scale surveys and quantitative evaluation methods. The method is designed to be applicable even before a compiler or IDE is developed for a new language. To test the method, a usability evaluation experiment was carried out on the Quorum programming language (Stefik et al. 2016) using programmers with experience in C and C#. When comparing our results with previous studies of Quorum, most of the data was comparable though not strictly in agreement. However, the discrepancies were mainly related to the programmers pre-existing expectations of a language. The results show that our evaluation method could serve language designers as a low-cost way for evaluating programming languages, especially in the early stages of the language design process. Future work includes adjusting and improving the method in such a way that it becomes usable to novice programming language designers.
本文介绍了受折扣可用性评估方法(Benyon 2010)和即时数据分析方法(Kjeldskov et al. 2004)的启发,开发一种用于编程语言评估的折扣方法的进展工作。该方法旨在弥补小规模内部语言设计评价方法与大规模调查和定量评价方法之间的差距。该方法被设计为甚至在为新语言开发编译器或IDE之前就可以应用。为了测试该方法,使用具有C和c#经验的程序员对Quorum编程语言(Stefik et al. 2016)进行了可用性评估实验。当将我们的结果与之前对Quorum的研究进行比较时,大多数数据是可比较的,尽管不是严格一致的。然而,这些差异主要与程序员先前对语言的期望有关。结果表明,我们的评估方法可以为语言设计者提供一种低成本的方法来评估编程语言,特别是在语言设计过程的早期阶段。未来的工作包括调整和改进该方法,使其对编程语言设计新手可用。
{"title":"Discount method for programming language evaluation","authors":"Svetomir Kurtev, Tommy Aagaard Christensen, Bent Thomsen","doi":"10.1145/3001878.3001879","DOIUrl":"https://doi.org/10.1145/3001878.3001879","url":null,"abstract":"This paper presents work in progress on developing a Discount Method for Programming Language Evaluation inspired by the Discount Usability Evaluation method (Benyon 2010) and the Instant Data Analysis method (Kjeldskov et al. 2004). The method is intended to bridge the gap between small scale internal language design evaluation methods and large scale surveys and quantitative evaluation methods. The method is designed to be applicable even before a compiler or IDE is developed for a new language. To test the method, a usability evaluation experiment was carried out on the Quorum programming language (Stefik et al. 2016) using programmers with experience in C and C#. When comparing our results with previous studies of Quorum, most of the data was comparable though not strictly in agreement. However, the discrepancies were mainly related to the programmers pre-existing expectations of a language. The results show that our evaluation method could serve language designers as a low-cost way for evaluating programming languages, especially in the early stages of the language design process. Future work includes adjusting and improving the method in such a way that it becomes usable to novice programming language designers.","PeriodicalId":124643,"journal":{"name":"Proceedings of the 7th International Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"49 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131200846","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}
Session types are a formalism used to specify and check the correctness of communication based systems. Within their scope, they can guarantee the absence of communication errors such as deadlock, sending an unexpected message or failing to handle an incoming message. Introduced over two decades ago, they have developed into a significant theme in programming languages. In this paper we examine the beliefs that drive research into this area and make it popular. We look at the claims and motivation behind session types throughout the literature. We identify the hypotheses upon which session types have been designed and implemented, and attempt to clarify and formulate them in a more suitable manner for testing.
{"title":"Benefits of session types for software development","authors":"A. Voinea, S. Gay","doi":"10.1145/3001878.3001883","DOIUrl":"https://doi.org/10.1145/3001878.3001883","url":null,"abstract":"Session types are a formalism used to specify and check the correctness of communication based systems. Within their scope, they can guarantee the absence of communication errors such as deadlock, sending an unexpected message or failing to handle an incoming message. Introduced over two decades ago, they have developed into a significant theme in programming languages. In this paper we examine the beliefs that drive research into this area and make it popular. We look at the claims and motivation behind session types throughout the literature. We identify the hypotheses upon which session types have been designed and implemented, and attempt to clarify and formulate them in a more suitable manner for testing.","PeriodicalId":124643,"journal":{"name":"Proceedings of the 7th International Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124362021","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}
Over the last years, a number of languages based on data flow abstractions have been proposed in different important areas including Big Data, stream processing, reactive programming, real time analytics. While there is a general agreement that the data flow style simplifies the access to such complex systems compared to low level imperative APIs, this design has been substantiated by little evidence. In this paper, we advocate a systematic investigation of the design principles of data flow languages and suggest important research questions that urge to be addressed.
{"title":"What do we really know about data flow languages?","authors":"G. Salvaneschi","doi":"10.1145/3001878.3001884","DOIUrl":"https://doi.org/10.1145/3001878.3001884","url":null,"abstract":"Over the last years, a number of languages based on data flow abstractions have been proposed in different important areas including Big Data, stream processing, reactive programming, real time analytics. While there is a general agreement that the data flow style simplifies the access to such complex systems compared to low level imperative APIs, this design has been substantiated by little evidence. In this paper, we advocate a systematic investigation of the design principles of data flow languages and suggest important research questions that urge to be addressed.","PeriodicalId":124643,"journal":{"name":"Proceedings of the 7th International Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"36 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123033663","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}
Miguel Ramos, M. T. Valente, Ricardo Terra, Gustavo Santos
To implement modern web applications, a new family of JavaScript frameworks has emerged, using the MVC pattern. Among these frameworks, the most popular one is ANGULARJS, which is supported by Google. In spite of its popularity, there is not a clear knowledge on how ANGULARJS design and features affect the development experience of Web applications. Therefore, this paper reports the results of a survey about ANGULARJS, including answers from 460 developers. Our contributions include the identification of the most appreciated features of ANGULARJS (e.g., custom interface components, dependency injection, and two-way data binding) and the most problematic aspects of the framework (e.g., performance and implementation of directives).
{"title":"AngularJS in the wild: a survey with 460 developers","authors":"Miguel Ramos, M. T. Valente, Ricardo Terra, Gustavo Santos","doi":"10.1145/3001878.3001881","DOIUrl":"https://doi.org/10.1145/3001878.3001881","url":null,"abstract":"To implement modern web applications, a new family of JavaScript frameworks has emerged, using the MVC pattern. Among these frameworks, the most popular one is ANGULARJS, which is supported by Google. In spite of its popularity, there is not a clear knowledge on how ANGULARJS design and features affect the development experience of Web applications. Therefore, this paper reports the results of a survey about ANGULARJS, including answers from 460 developers. Our contributions include the identification of the most appreciated features of ANGULARJS (e.g., custom interface components, dependency injection, and two-way data binding) and the most problematic aspects of the framework (e.g., performance and implementation of directives).","PeriodicalId":124643,"journal":{"name":"Proceedings of the 7th International Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-08-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123648963","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":"Proceedings of the 7th International Workshop on Evaluation and Usability of Programming Languages and Tools","authors":"","doi":"10.1145/3001878","DOIUrl":"https://doi.org/10.1145/3001878","url":null,"abstract":"","PeriodicalId":124643,"journal":{"name":"Proceedings of the 7th International Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125921269","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}