A Pilot Study of the Safety and Usability of the Obsidian Blockchain Programming Language

Authors Gauri Kambhatla, Michael Coblenz , Reed Oei, Joshua Sunshine , Jonathan Aldrich , Brad A. Myers



PDF
Thumbnail PDF

File

OASIcs.PLATEAU.2019.2.pdf
  • Filesize: 384 kB
  • 11 pages

Document Identifiers

Author Details

Gauri Kambhatla
  • Electrical Engineering & Computer Science, University of Michigan, Ann Arbor, MI, US
Michael Coblenz
  • School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, USA
Reed Oei
  • Department of Computer Science, University of Illinois, Urbana, IL, USA
Joshua Sunshine
  • School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, USA
Jonathan Aldrich
  • School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, USA
Brad A. Myers
  • School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, USA

Cite As Get BibTex

Gauri Kambhatla, Michael Coblenz, Reed Oei, Joshua Sunshine, Jonathan Aldrich, and Brad A. Myers. A Pilot Study of the Safety and Usability of the Obsidian Blockchain Programming Language. In 10th Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU 2019). Open Access Series in Informatics (OASIcs), Volume 76, pp. 2:1-2:11, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2020) https://doi.org/10.4230/OASIcs.PLATEAU.2019.2

Abstract

Although blockchains have been proposed for building systems that execute critical transactions, security vulnerabilities have plagued programs that are deployed on blockchain systems. The programming language Obsidian was developed with the purpose of statically preventing some of the more common of these security risks, specifically the loss of resources and improper manipulation of objects. The question then is whether Obsidian’s novel features impact the usability of the language. In this paper, we begin to evaluate Obsidian with respect to usability, and develop materials for a quantitative user study through a sequence of pilot studies. Specifically, our goal was to assess a) potential usability problems of Obsidian, b) the effectiveness of a tutorial for participants to learn the language, and c) the design of programming tasks to evaluate performance using the language. Our preliminary results tentatively suggest that the complexity of Obsidian’s features do not hinder usability, although these results will be validated in the quantitative study. We also observed the following factors as being important in a given programmer’s ability to learn Obsidian: a) integrating very frequent opportunities for practice of the material - e.g., after less than a page of material at a time, and b) previous programming experience and self-efficacy.

Subject Classification

ACM Subject Classification
  • Software and its engineering → Domain specific languages
  • Human-centered computing → User studies
  • Human-centered computing → Usability testing
Keywords
  • smart contracts
  • programming language user study
  • language usability

Metrics

  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    0
    PDF Downloads

References

  1. Celeste Barnaby, Michael Coblenz, Tyler Etzel, Eliezer Kanal, Joshua Sunshine, Brad Myers, and Jonathan Aldrich. A User Study to Inform the Design of the Obsidian Blockchain DSL, 2017. Google Scholar
  2. Michael Coblenz. Obsidian: A Safer Blockchain Programming Language. In Proceedings of the 39th International Conference on Software Engineering Companion, ICSE-C '17, pages 97-99, Piscataway, NJ, USA, 2017. IEEE Press. event-place: Buenos Aires, Argentina. URL: https://doi.org/10.1109/ICSE-C.2017.150.
  3. Stefan Hanenberg. Faith, Hope, and Love: An Essay on Software Science’s Neglect of Human Factors. In Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA '10, pages 933-946, New York, NY, USA, 2010. ACM. event-place: Reno/Tahoe, Nevada, USA. URL: https://doi.org/10.1145/1869459.1869536.
  4. B. A. Myers, A. J. Ko, T. D. LaToza, and Y. Yoon. Programmers Are Users Too: Human-Centered Methods for Improving Programming Tools. Computer, 49(7):44-52, July 2016. URL: https://doi.org/10.1109/MC.2016.200.
  5. Vennila Ramalingam, Deborah LaBelle, and Susan Wiedenbeck. Self-efficacy and mental models in learning to program. In Proceedings of the 9th annual SIGCSE conference on Innovation and technology in computer science education - ITiCSE '04, page 171, Leeds, United Kingdom, 2004. ACM Press. URL: https://doi.org/10.1145/1007996.1008042.
  6. Anthony Robins, Janet Rountree, and Nathan Rountree. Learning and Teaching Programming: A Review and Discussion. Computer Science Education, 13(2):137-172, June 2003. URL: https://doi.org/10.1076/csed.13.2.137.14200.
  7. M. A. D. Storey, K. Wong, and H. A. Müller. How do program understanding tools affect how programmers understand programs? Science of Computer Programming, 36(2):183-207, March 2000. URL: https://doi.org/10.1016/S0167-6423(99)00036-2.
  8. Dmitrii Suvorov and Vladimir Ulyantsev. Smart Contract Design Meets State Machine Synthesis: Case Studies. arXiv:1906.02906 [cs], June 2019. arXiv: 1906.02906. URL: http://arxiv.org/abs/1906.02906.
  9. Edward Zimudzi. Active learning for problem solving in programming in a computer studies method course. Educational Sciences, 3(2):9, 2012. URL: https://ubrisa.ub.bw/handle/10311/1170.
Questions / Remarks / Feedback
X

Feedback for Dagstuhl Publishing


Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail