Dynamic programming languages have been embracing gradual typing, which supports optional type annotations in source code. Type-annotating a complex and long-lasting codebase is indeed a gradual and expensive process, where two issues have troubled developers. First, there is few guidance about how to implement type annotations due to the existence of non-trivial type practices; second, there is few guidance about which portion of a codebase should be type-annotated first. To address these issues, this paper investigates the patterns of non-trivial type-annotation practices and features of type-annotated code files. Our study detected six patterns of type-annotation practices, which involve recovering and expressing design concerns. Moreover, we revealed three complementary features of type-annotated files. Besides, we implemented a tool for studying optional typing practice. We suggest that: 1) design concerns should be considered to improve type annotation implementation by following at least six patterns; 2) files critical to software architecture could be type-annotated in priority. We believe these guidelines would promote a better type annotation practice for dynamic languages. Our work benefits type annotation practices and tools in the optional typing— 1) architecture concerns should be considered to improve the effectiveness and efficiency of non-trivial type practices; 2) the files critical to software architecture could be type-annotated in priority for gradual migration from un-annotated codebases to annotated ones. We believe that such guidance would promote the balance between the benefits of optional typing and the expense required by them.
Wed 17 NovDisplayed time zone: Hobart change
19:00 - 20:00 | |||
19:00 20mTalk | Finding the Missing Piece: Permission Specification Analysis for Android NDK Research Papers Hao Zhou The Hong Kong Polytechnic University, Haoyu Wang Beijing University of Posts and Telecommunications, Shuohan Wu The Hong Kong Polytechnic University, Xiapu Luo Hong Kong Polytechnic University, Yajin Zhou Zhejiang University, Ting Chen University of Electronic Science and Technology of China, Ting Wang Pennsylvania State University | ||
19:20 20mTalk | Characterizing and Detecting Configuration Compatibility Issues in Android Apps Research Papers Huaxun Huang Hong Kong University of Science and Technology, Ming Wen Huazhong University of Science and Technology, Lili Wei Hong Kong University of Science and Technology, Yepang Liu Southern University of Science and Technology, Shing-Chi Cheung Hong Kong University of Science and Technology | ||
19:40 20mTalk | Where to Start: Studying Type Annotation Practices in Python Research Papers Wuxia Jin Xi'an Jiaotong University, Dinghong Zhong Xi'an Jiaotong University, Zifan Ding Xi'an Jiaotong University, Ming Fan Xi'an Jiaotong University, Ting Liu Xi'an Jiaotong University |