Mathematics is In Everything

Source: Asian Scientist, Jan 2016

These days, Lamport wants to impart the following message to programmers: using mathematics allows you to approach coding in the way an architect would approach designing a building—both precisely and abstractly.

“Science requires precise thinking, and mathematics is what has developed over a couple of millennia as our best way of thinking precisely,” he said.

Programmers are taught to think about problems in terms of programming languages when instead, he maintained, problems should also be thought of at a more abstract level. “Most programmers who lack [the ability to think abstractly], they just sit down and write code and it’s like somebody trying to build a table [without first thinking of] the concept of the circle. Just think, well, just cut out a piece of wood that’s sort of like this, with no idea why would cutting it out this way be better than cutting it out in a different way,” he explained.

Indeed, Lamport is adamant that programmers should think about and write down what a program is meant to do—its ‘blueprint’ or specification—before they actually start coding.

A mathematics-based programming language that Lamport designed, TLA+, is based on the idea that the best way to describe things formally is by using simple mathematics.

And you don’t even need to be a mathematician to execute his programming language, he said. “The math you need is really very simple. Most people learn almost all of it in high school these days. But what you need to be taught is how to use that math to describe the systems you’re building.” 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s