What’s wrong with blocks languages according to Ben Shapiro

Amy J. Ko
Bits and Behavior
Published in
2 min readOct 20, 2017
Ben Shapiro’s VL/HCC 2017 keynote.

Last week I was at VL/HCC 2017, catching up with friends and collaborators and learning about the latest on interactive developer tools. Unfortunately, I missed Ben Shapiro’s opening keynote because of a travel conflict, and so I encouraged him to record his talk so the rest of the world and I could see it.

And he did! And what an incredible talk: few people can weave together learning science, machine learning, distributed systems, identity development, computing education, and programming languages, while framing a coherent, actionable argument. But Ben did.

I won’t summarize his whole talk here, but instead give you a taste of some of the compelling critiques he made of modern computing education learning technologies:

  • Blocks editors and languages are little more than structured editors for textual programming languages, and because of this, do little more then prevent syntax errors. To truly help learners, we need environments that help teach semantics and prevent semantic errors. (Like our PLTutor work!)
  • There are countless innovations in programming languages and software engineering that could help with this, but few PL or SE researchers work on learning problems, and few computing education researchers have PL or SE expertise. We need more collaboration, or more students with interdisciplinary training applying program analysis and synthesis techniques to learning problems.
  • Blocks editors and languages are inferior environments for writing code because they lack the full range of tools and tooling provided by text-based IDEs, including support for testing, debugging, refactoring, etc. By creating standalone editors divorced from modern IDEs, we’ve lost all of these benefits, and only gained syntax-error prevention in return. We either need blocks editors embedded in IDEs or fully-realized block-based IDE.
  • Enough with the isomorphic blocks editors for existing languages. We need new languages that help learners better express what they want to create. That includes new languages like Ben’s Blocky Talky.
  • Learning a programming language is important, but does it really have to be the first thing people learn? Why not provide them rich environments for learning about our modern computational world, which includes networks, distributed systems, machine learning, uncertainty, and a host of other paradigms that are driving change in the world? These are not only more relevant to newcomers to computing, but also more powerful. They can learn general purpose languages later.

These are just a sampling of Ben’s critiques. I highly recommend watching his keynote to learn more about how his work is addressing these critiques and how you can help.

--

--

Amy J. Ko
Bits and Behavior

Professor, University of Washington iSchool (she/her). Code, learning, design, justice. Trans, queer, parent, and lover of learning.