What’s the Next GOTO?

by Paul Cantrell | at Minnebar 17

In 1968, the infamously grumpy computer scientist Edsger Dijkstra published a polemic called “Go To Statement Considered Harmful” in which he made a striking argument: GOTO, a programming language feature widely considered essential at the time, was such a bad idea that not only should programmers stop using it, but it should be removed from high-level languages altogether. A decades-long fight ensued, but Dijkstra essentially won the day: new languages now rarely support GOTO, and even when they do, programmers largely pretend they don’t.

The idea that removing features can make programming languages better is both surprising and exciting. What programming language features that we consider essential today might be the next GOTO, withering and vanishing from high-level languages of the future?

In this talk, we’ll look at several candidates: raw memory access, inheritance, reference types, and null. Drawing on examples from several programming languages, we’ll look at some of the problems with these features, the alternatives, and the tradeoffs.

This talk will be accessible to anyone with beginning programming experience. It will have some tasty tidbits for hard-core programming language nerds, but if you have some idea what variables, loops, and objects are, then you’ll be fine!

All levels

Paul Cantrell

Paul fell in love with programming at first sight on an Apple ][+ and never looked back. He teaches computer science at Macalester College and is a freelance software developer (often with the fine folks at Bust Out).

Living a secret double life as a classically trained composer and pianist and artistic director of The New Ruckus, he brings a musician's passion for aesthetics and nuanced detail to the craft of writing software, thus making his bio sound all fancy.