User-centered Programming Language Design for Obsidian, a Safer Blockchain Programming Language

Michael Coblenz - University of Maryland

Jan. 22, 2021, 2:30 p.m. - Jan. 22, 2021, 3:30 p.m.

Zoom (see link below)

Hosted by: Jin Guo


Some blockchain programs (smart contracts) have included serious security vulnerabilities. To rule out some of these vulnerabilities, we were interested in using a strong type system. However, strong type systems can cause a language to be difficult to use. In particular, ownership, typestate, and assets, which we wanted to use provide safety guarantees, have not seen broad adoption together in popular languages and result in significant usability challenges. To create Obsidian, a new language that uses those concepts, we developed PLIERS, a design process that incorporates user data into the creation of programming languages. To evaluate our design, 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.

Michael Coblenz is a Basili Postdoctoral Fellow at the University of Maryland. His research focuses on techniques for designing and evaluating programming languages to make software engineers more effective. In the process, he creates and evaluates programming languages. Examples include immutability in object-oriented languages (Glacier) and on strong type systems in smart contract languages (Obsidian). He holds a Ph.D. in computer science from Carnegie Mellon University. Previously, he was a Senior Software Engineer at Apple.

Zoom link: https://mcgill.zoom.us/j/92616954585 (zoom login required)

Reception after the talk in gather town: https://gather.town/app/3qgGGqVmX8sDW2Zb/Reception