Can Advanced Type Systems Be Usable? An Empirical Study of Ownership, Assets, and Typestate in Obsidian
Tue 17 Nov 2020 05:00 - 05:20 at SPLASH-I - M-6 Chair(s): David Grove, Ifaz Kabir
Some blockchain programs (smart contracts) have included serious security vulnerabilities. Obsidian is a new typestate-oriented programming language that uses a strong type system to rule out some of these vulnerabilities. Although Obsidian was designed to promote usability to make it as easy as possible to write programs, strong type systems can cause a language to be difficult to use. In particular, ownership, typestate, and assets, which Obsidian uses to provide safety guarantees, have not seen broad adoption together in popular languages and result in significant usability challenges. We performed an empirical study with 20 participants comparing Obsidian to Solidity, which is the language most commonly used for writing smart contracts today. We observed that Obsidian participants were able to successfully complete more of the programming tasks than the Solidity participants. We also found that the Solidity participants commonly inserted asset-related bugs, which Obsidian detects at compile time.
Mon 16 NovDisplayed time zone: Central Time (US & Canada) change
17:00 - 18:20 | M-6OOPSLA at SPLASH-I +12h Chair(s): Patrick Lam University of Waterloo, Konstantinos Mamouras Rice University | ||
17:00 20mTalk | Can Advanced Type Systems Be Usable? An Empirical Study of Ownership, Assets, and Typestate in Obsidian OOPSLA Michael Coblenz University of Maryland at College Park, Jonathan Aldrich Carnegie Mellon University, Brad A. Myers Carnegie Mellon University, Joshua Sunshine Carnegie Mellon University Link to publication DOI Media Attached | ||
17:20 20mTalk | Scalable and Serializable Networked Multi-actor Programming OOPSLA Bo Sang Purdue University / Ant Group, Patrick Eugster USI Lugano / TU Darmstadt / Purdue University, Gustavo Petri ARM Research, Srivatsan Ravi University of Southern California, Pierre-Louis Roman USI Lugano Link to publication DOI Media Attached | ||
17:40 20mTalk | Designing Types for R, Empirically OOPSLA Alexi Turcotte Northeastern University, Aviral Goel Northeastern University, Filip Křikava Czech Technical University, Jan Vitek Northeastern University / Czech Technical University Link to publication DOI Media Attached | ||
18:00 20mTalk | Geometry Types for Graphics Programming OOPSLA Dietrich Geisler Cornell University, Irene Yoon University of Pennsylvania, Aditi Kabra Carnegie Mellon University, Horace He Cornell University, Yinnon Sanders Cornell University, Adrian Sampson Cornell University Link to publication DOI Pre-print Media Attached |
Tue 17 NovDisplayed time zone: Central Time (US & Canada) change
05:00 - 06:20 | |||
05:00 20mTalk | Can Advanced Type Systems Be Usable? An Empirical Study of Ownership, Assets, and Typestate in Obsidian OOPSLA Michael Coblenz University of Maryland at College Park, Jonathan Aldrich Carnegie Mellon University, Brad A. Myers Carnegie Mellon University, Joshua Sunshine Carnegie Mellon University Link to publication DOI Media Attached | ||
05:20 20mTalk | Scalable and Serializable Networked Multi-actor Programming OOPSLA Bo Sang Purdue University / Ant Group, Patrick Eugster USI Lugano / TU Darmstadt / Purdue University, Gustavo Petri ARM Research, Srivatsan Ravi University of Southern California, Pierre-Louis Roman USI Lugano Link to publication DOI Media Attached | ||
05:40 20mTalk | Designing Types for R, Empirically OOPSLA Alexi Turcotte Northeastern University, Aviral Goel Northeastern University, Filip Křikava Czech Technical University, Jan Vitek Northeastern University / Czech Technical University Link to publication DOI Media Attached | ||
06:00 20mTalk | Geometry Types for Graphics Programming OOPSLA Dietrich Geisler Cornell University, Irene Yoon University of Pennsylvania, Aditi Kabra Carnegie Mellon University, Horace He Cornell University, Yinnon Sanders Cornell University, Adrian Sampson Cornell University Link to publication DOI Pre-print Media Attached |