Abstractionless Programming in App Inventor
App Inventor is a web-based blocks programming environment that allows people of all ages and experiences to build mobile apps, introducing new programmers to fundamental programming concepts such as variables, conditionals, iterators, and procedures. Past studies however show that programmers do not use procedures, App Inventor’s key means of abstraction for avoiding duplicate code, very often, which could suggest that App inventor programmers, instead of using procedures, merely duplicate their code. This research focused on detecting duplicated event handlers in two datasets of App Inventor code. I found that at least 18% of App Inventor event handlers are duplicates. Surprisingly, over 49% of this code cannot be extracted into a procedure without using the rarely used blocks for manipulating generic components, which could be further preventing App Inventor programmers from using procedures as abstractions. Therefore, more work needs to be done to make programmers more aware of generics and how to use them.