Amazing Grace

What began in childhood with his family’s Sinclair ZX81 home computer led to James Noble co-creating a new computer language called GRACE.

Professor James Noble sitting in a room with books on shelves in the background.

You won’t meet many people who can say they have invented a language but James Noble has exactly that claim to fame. A Professor of Computer Science in the School of Engineering and Computer Science at Victoria University of Wellington, he co-created Grace, a computer language designed to be simple, flexible and easy to use.

Like many great innovations, Grace’s origins can be traced back to a conversation in a bar. Professor Noble was having a drink with fellow computer science professors Kim Bruce and Andrew Black during a conference when they started musing on the number of new computer languages being created.

“We were talking about JavaScript, which we thought was badly designed, and then we said there was a gap in the market for a new language. We thought we should put up or shut up: if we couldn’t produce anything better, we shouldn’t criticise what was currently available,” says Professor Noble.

“We said it would be a five-year project, secretly hoped it would be a three-year project, and knew in our heart of hearts it was probably a 10-year project.”

The three began working on Grace in 2012 and the language has now evolved to the point where Professor Bruce and Professor Black both use it in their teaching classes. Professor Noble uses Grace in his general research into program design and is considering introducing it into his fourth-year course.

He hopes to see Grace taken up more widely in the future, especially in teaching.

“Some of the computer modelling concepts I teach are very abstract and are easier to learn through a language, particularly a relatively simple language like Grace that can be introduced to students in stages.”

Grace can be run inside a web browser and is open source, which means it’s free and can be used by anyone.

Professor Noble also had a hand in the theory underlying Rust, another practical, open source programming language. Rust is designed to make a web browser more responsive by giving programmers more control of how they use a computer’s memory.

All Professor Noble’s research centres around software design, which includes the design of the user’s interface (the parts of software users interact with) and the program’s interface (the internal structures and organisations of software programmers see when designing, building or modifying software).

Professor Noble was the first computer scientist to receive a James Cook Research Fellowship, awarded to New Zealand researchers who are leaders of science and innovation in their fields.

In 2016, he won the Association Internationale pour les Technologies Objets’ Dahl-Nygaard Senior Prize, a global award given annually to a researcher who has made an outstanding career contribution. The prize is considered one of the most prestigious of its kind in the world.

Professor Noble’s interest in computer science dates back to childhood, when his family bought a Sinclair ZX81 home computer. The ZX81 was hugely successful in its day, but had less processing power than a smartphone.

While Professor Noble says he’s not terribly good at computer games—he plays smartphone patience with a setting that says “every hand is winnable”—he was always interested in adventure games.

“With adventure games, you get a model of a world inside a computer. Grand Theft Auto has a map of the Pacific West Coast in it, so you can just drive from San Diego to San Francisco,” he says.

“All scientists create worlds to some degree. Whether we’re creating an accounting system or an air traffic control system, we’re building a computerised autonomous model of what’s going on in the world.”

Professor Noble’s early experience with the ZX81 convinced him computer science would probably give him a reasonable career, but he says he couldn’t have guessed how prevalent computers would become.

“In some ways, I’ve been surprised to see the way computers have eaten the world. You might think it’s a car, but it’s actually a computer on wheels. You might think it’s a plane, but it’s a computer with wings.”

He describes his career trajectory as stretching from one side of Victoria’s Cotton Building to another: he studied for his Honours degree and PhD at the University and returned to its School of Engineering and Computer Science after four years at a Microsoft-sponsored research institute in Sydney.

“Victoria’s a great place to work. It’s very supportive and there’s a high level of collegiality here,” he says.

In addition to computer languages, Professor Noble’s wide-ranging research interests include design patterns, agile methodology, visualisation and computer music, postmodernism and the semiotics of programming.

Winner of Victoria’s award for best supervisor in 2010, Professor Noble says working with “a bunch of very talented students” is one of the most enjoyable parts of his job.

One of his students, Sam Minns, creates and performs music by writing code in Grace live in front of an audience or on the dance floor. These types of events are called algoraves, or algorithmic raves, and involve people dancing to music generated from algorithms, often using living coding techniques. Algoraves have become a global movement and are now held around the world.

“People have thousands of years of experience of playing musical instruments and getting direct feedback on what they’re playing, so algoraves tap into that tradition,” says Professor Noble.

“In the United Kingdom, people are even using live coding techniques as a way of teaching programming.”