skip to main content
10.1145/3133850.3133863acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Can we crowdsource language design?

Published:25 October 2017Publication History

ABSTRACT

Most programming languages have been designed by committees or individuals. What happens if, instead, we throw open the design process and let lots of programmers weigh in on semantic choices? Will they avoid well-known mistakes like dynamic scope? What do they expect of aliasing? What kind of overloading behavior will they choose?

We investigate this issue by posing questions to programmers on Amazon Mechanical Turk. We examine several language features, in each case using multiple-choice questions to explore programmer preferences. We check the responses for consensus (agreement between people) and consistency (agreement across responses from one person). In general we find low consistency and consensus, potential confusion over mainstream features, and arguably poor design choices. In short, this preliminary evidence does not argue in favor of designing languages based on programmer preference.

References

  1. 2017. Betteridge’s law of headlines. https://en.wikipedia.org/wiki/ Betteridge%27s_law_of_headlines . (2017). Accessed: 2017-04-20.Google ScholarGoogle Scholar
  2. Piraye Bayman and Richard E. Mayer. 1983. A diagnosis of beginning programmers’ misconceptions of BASIC programming statements. Commun. ACM 26, 9 (1983). DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Gary Bernhardt. 2012. Wat. A lightning talk from CodeMash. (2012). https://www.destroyallsoftware.com/talks/wat .Google ScholarGoogle Scholar
  4. Benedict Du Boulay. 1986. Some Difficulties of Learning to Program. Journal of Educational Computing Research 2, 1 (1986). DOI: Google ScholarGoogle ScholarCross RefCross Ref
  5. M.T.H. Chi. 2005. Common sense conceptions of emergent processes: Why some misconceptions are robust. Journal of the Learning Sciences 14 (2005), 161–199. Google ScholarGoogle ScholarCross RefCross Ref
  6. Jacob Cohen. 1960. A Coefficient of Agreement for Nominal Scales. In Educational and Psychological Measurement. SAGE. DOI: Google ScholarGoogle ScholarCross RefCross Ref
  7. Matthias Felleisen. 1992. The revised report on the syntactic theories of sequential control and state. Theoretical Computer Science 103, 2 (1992), 235–271. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Kathi Fisler, Shriram Krishnamurthi, and Preston Tunnell Wilson. 2017. Assessing and Teaching Scope, Mutation, and Aliasing in UpperLevel Undergraduates. In Special Interest Group on Computer Science Education. ACM, New York, NY, USA. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Matthew Flatt. 2002. Composable and compilable macros: you want it when? ACM, New York, NY, USA, 12. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Joseph L. Fleiss. 1971. Measuring Nominal Scale Agreement Among Many Raters. In Psychological Bulletin. APA. DOI: Google ScholarGoogle ScholarCross RefCross Ref
  11. Ann E. Fleury. 1991. Parameter Passing: The Rules the Students Construct. In Special Interest Group on Computer Science Education. ACM, New York, NY, USA. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. J. C. Gower. 1971. A General Coefficient of Similarity and Some of Its Properties. Biometrics 27, 4 (1971), 857–871. DOI: Google ScholarGoogle ScholarCross RefCross Ref
  13. R. W. Hamming. 1950. Error Detecting and Error Correcting Codes. The Bell System Technical Journal 29, 2 (1950), 147–160. DOI: Google ScholarGoogle ScholarCross RefCross Ref
  14. Björn Hartmann. 2010. What Would Other Programmers Do? Suggesting Solutions to Error Messages. In Special Interest Group on Computer–Human Interaction. ACM, New York, NY, USA, 1019–1028. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Antti-Juhani Kaijanaho. Evidence-Based Programming Language Design. (????).Google ScholarGoogle Scholar
  16. Leonard Kaufman and Peter J. Rousseeuw. 2008. Finding Groups in Data: An Introduction to Cluster Analysis. Wiley.Google ScholarGoogle Scholar
  17. Aniket Kittur, Ed H. Chi, and Bongwon Suh. 2008. Crowdsourcing User Studies with Mechanical Turk. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI ’08). ACM, New York, NY, USA, 453–456. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Sebastian Kleinschmager, Stefan Hanenberg, Romain Robbes, Éric Tanter, and Andreas Stefik. 2012. Do Static Type Systems Improve the Maintainability of Software Systems? An Empirical Study. In International Conference on Program Comprehension. IEEE, 153–162. DOI: Google ScholarGoogle ScholarCross RefCross Ref
  19. Andrew J. Ko, Brad A. Myers, and Htet Htet Aung. 2004. Six Learning Barriers in End-User Programming Systems. In Visual Languages and Human Centric Computing. IEEE, 199–206. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. L. Layman and G. Sigurđsson. 2013. Using Amazon’s Mechanical Turk for User Studies: Eight Things You Need to Know. In International Symposium on Empirical Software Engineering and Measurement. ACM, 275–278. DOI: Google ScholarGoogle ScholarCross RefCross Ref
  21. Martin Maechler, Peter Rousseeuw, Anja Struyf, Mia Hubert, Kurt Hornik, Matthias Studer, Pierre Roudier, and Juan Gonzalez. 2017. Package ’cluster’. https://cran.r-project.org/web/packages/cluster/ cluster.pdf . (2017). v2.0.6. Accessed: 2017-04-20.Google ScholarGoogle Scholar
  22. Guillaume Marceau, Kathi Fisler, and Shriram Krishnamurthi. 2011. Mind Your Language: On Novices’ Interactions with Error Messages. In Symposium on New ideas, new paradigms, and reflections on programming and software (Onward!). ACM. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Winter Mason and Siddharth Suri. 2012. Conducting behavioral research on Amazon’s Mechanical Turk. Behavior research methods 44, 1 (2012), 1–23. Google ScholarGoogle ScholarCross RefCross Ref
  24. Clemens Mayer, Stefan Hanenberg, Romain Robbes, Éric Tanter, and Andreas Stefik. 2012. An Empirical Study of the Influence of Static Type Systems on the Usability of Undocumented Software. In ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications. ACM. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Mark S Miller, Daniel Von Dincklage, Vuk Ercegovac, and Brian Chin. 2017. Uncanny Valleys in Declarative Language Design. In LIPIcs-Leibniz International Proceedings in Informatics, Vol. 71. Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik.Google ScholarGoogle Scholar
  26. Mathew Mooty, Andrew Faulring, Jeffrey Stylos, and Brad A. Myers. 2010. Calcite: Completing Code Completion for Constructors Using Crowds. In Visual Languages and Human Centric Computing. IEEE, 15–22. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Brad A. Myers, John F. Pane, and Andy Ko. 1976. Natural Programming Languages and Environment. Mathematisch Centrum, Afdeling Informatica (1976).Google ScholarGoogle Scholar
  28. Brad A. Myers, John F. Pane, and Andy Ko. 2004. Natural Programming Languages and Environment. Commun. ACM 47, 9 (2004). Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Seymour Papert. 1993. Mind-Storms: Children, Computers, and Powerful Ideas. Basic Books, New York, NY, USA.Google ScholarGoogle Scholar
  30. Justus J. Randolph. 2005. Free-Marginal Multirater Kappa: An Alternative to Fleiss’ Fixed-Marginal Multirater Kappa. In Joensuu Learning and Instruction Symposium. ERIC, 20.Google ScholarGoogle Scholar
  31. Amber Settle. 2014. What’s Motivation Got to Do with It? A Survey of Recursion in the Computing Education Literature. Technical Report at DePaul University 23 (2014).Google ScholarGoogle Scholar
  32. Juha Sorva. 2012. Visual Program Simulation in Introductory Programming Education. Ph.D. Dissertation. Aalto University.Google ScholarGoogle Scholar
  33. Guy L. Steele, Jr. and Jon L. White. 1990. How to Print Floating-point Numbers Accurately. In Proceedings of the ACM SIGPLAN 1990 Conference on Programming Language Design and Implementation (PLDI ’90). ACM, New York, NY, USA, 112–126. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Andreas Stefik and Susanna Siebert. 2013. An Empirical Investigation into Programming Language Syntax. In ACM Transactions on Computing Education. ACM, New York, NY, USA. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Robert E. Strom, David F. Bacon, Arthur P. Goldberg, Andy Lowry, Daniel M. Yellin, and Shaula Alexander Yemini. 1991. Hermes: A Language for Distributed Computing. Prentice-Hall, Inc., Upper Saddle River, NJ, USA.Google ScholarGoogle Scholar
  36. Phillip Merlin Uesbeck, Andreas Stefik, Stefan Hanenberg, Jan Pedersen, and Patrick Daleiden. 2016. An empirical study on the impact of C++ lambdas and programmer experience. In International Conference on Software Engineering. ACM, New York, NY, USA. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Can we crowdsource language design?

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        Onward! 2017: Proceedings of the 2017 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software
        October 2017
        261 pages
        ISBN:9781450355308
        DOI:10.1145/3133850

        Copyright © 2017 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 25 October 2017

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate40of105submissions,38%

        Upcoming Conference

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader