The Future of Notebooks: Lessons from JupyterCon
At JupyterCon, I learned three things: reactive notebooks are the future, Jupyter is the new Bash, and data science is a gateway drug.
I do research primarily between PL and HCI . I build systems like program slicers , document languages , and type system visualizers . I develop theories like working memory for programmers , psychometrics for programming language learning , and typed templating for System F . I work on systems languages like Rust …
Visit willcrichton.net → On Hacker News Mar 2018 – Oct 2023
Software Engineering 7Programming Languages 3Systems & Performance 2Tools & Productivity 1Databases & Data 1
At JupyterCon, I learned three things: reactive notebooks are the future, Jupyter is the new Bash, and data science is a gateway drug.
I have a gripe with the phrase
How to hash, index, profile, multi-thread, and SIMD your way to incredible speeds.
Programming is a fundamentally incremental (or gradual) process, and our programming languages should reflect that. I show several ways in which program models transition over time and discuss how future research can further a human-centric vision for programming languages.
I show how two domain-specific type systems, information flow control and two-party communication protocols, can be implemented in Rust using type-level programming. I explain how interesting properties of these domains can be verified at compile-time. Finally, I construct a general correspondence between type…
I show how to use heterogeneous lists and traits to implement a type-safe printf in Rust. These mechanisms can ensure that two variadic argument lists share important properties, like the number of format string holes matches the number of printf arguments.
Jupyter presents a unique programming style where the programmer can change her code while it's running, reducing the cost of mistakes and improving the interactivity of the programming process. I discuss the benefits and limitations of this approach along with the related work.