Meredydd Luff

Meredydd has been programming since the halcyon days of Visual Basic. He holds a PhD in the usability of programming systems from the University of Cambridge, and has a few years’ frustration with the Web platform to get off his chest. This led him to co-create Anvil.

He has contributed to open source since high school, and is currently a core maintainer of the Skulpt Python-to-Javascript compiler. In his spare time, he dances (he has competed for England) and flies light aircraft.

Speaker home page Follow @meredydd

Full Stack Web with Nothing but Python: How Anvil Works

Python & Libraries, Web, IoT, & Hardware, Intermediate
8/17/2019 | 11:45 AM-12:30 PM | Robertson 2

Description

Programming for the Web requires 5 languages and 5+ frameworks. Wouldn’t it be easier if we could do it all in Python?

Meredydd will discuss how he built Anvil, a tool for building full-stack web apps with nothing but Python. Topics include compiling Python to JS, how autocompletion works, capability-based security, and why true accessibility means more than “usable by beginners”.

Abstract

Modern Web programming is a usability nightmare. A typical web app translates every action, and every piece of data, into six different representations (Database, server-side model, JSON, client-side model, HTML DOM, and pixels). To navigate this complexity requires five different programming languages and five or more separate frameworks, just to get to “Hello, World”. And that’s before you fire up Webpack and friends! Is this complexity really necessary?

In this talk, Meredydd will discuss how he built Anvil, a system for web programming in which one language (Python) and one representation (Python objects) can express the entirety of a web app. This allows us to bring back lost luxuries from the 1990s, like drag-and-drop component design and end-to-end autocompletion.

He will discuss in detail why and how Anvil was built, including:

  • Why the modern Web is so hard to program for
  • How we compile Python to Javascript for front-end code
  • How capability-based access control lets you avoid plumbing every action through five layers of your stack
  • How Anvil’s end-to-end Python autocompleter works
  • Why code is good, and why true accessibility means more than just “usable by beginners”