Curated by: Sergio A. Martínez
“He used to make his house out of whatever color [LEGO] brick he happened to grab. Can you imagine the sort of code someone like that would write?”— Daniel Underwood, “Microserfs”, 1995
It can’t be denied that computer programming is a very fascinating topic. There’s something undeniably appealing about the mix of creativity and logic it demands, allowing anyone to bring their ideas to life. Programming, essentially, is a puzzle where you can piece together code until everything works right, with the final result of a digital object that works tangibly, and there’s a great sense of satisfaction that comes with that. It’s no wonder that so many people find computer programming so captivating to learn.
Another thing that makes programming fascinating is the fact that it’s always evolving; there are always new languages to learn and new challenges to tackle. For many people, computer programming is the perfect blend of left-brain and right-brain activity, and it’s this balance that makes it so compelling. And whether you’re just getting started or you’ve been coding for years, there’s always something to discover. However, why is the idea of programming so seemingly exclusive to digital spaces? Or is programming, as a concept, beyond what we see on our screens?
Because, as we move towards a future where software and technology are involved in everything we do, the idea of “programming” seems less of an abstract concept, and more of a natural part of our reality, and the same principles can be found in the unlikeliest of places. But what is programming in the physical world? And why stuff like Lego is a great gateway to understanding and getting passionate about something as complex as programming?
Programming in physical spaces
“Have you ever noticed that Lego plays a far more important role in the lives of computer people than in the general population? To a one, computer technicians spent huge portions of their youth heavily steeped in Lego and its highly focused, solitude-promoting culture. Lego was their common denominator toy.”
These words come directly from the 1995 novel Microserfs by Douglas Coupland, which portrays the lives and concerns of various Microsoft programmers in the early 90s, prior to the release of Windows 95. The novel has been pretty popular since its original publication because it’s a very thorough look at the nascent class of “software people” that was quickly growing during this decade. Simply put, much of the modern software development culture, when early startups like Microsoft made the jump to a corporate existence, started at this time, and many of the insights exposed in the novel still resonate today.
For example, let’s see the main argument here, which comes from a character waxing poetic about these popular building toys. The core idea here is that Lego bricks are a binary system, where each of the studs in a brick is either connected to another or they are not, enabling anyone to build something concrete. In that sense, Lego bricks could be conceived as a programming language of sorts, with the resulting “application” being a tangible object, like a rocket ship, a house, or whatever you want. As the book explains:
“Lego is ontologically not unlike computers. This is to say that a computer by itself is, well… nothing. Computers only become something when given a specific application. […] To use an Excel spreadsheet or to build a race car, that’s why we have computers and Lego.”
That is not a far-fetched idea, mind you. More complex programs can involve hundreds or even thousands of lines of code, but they all operate on the same principle: single interconnected elements whose logic dictates the final result. And by providing a set of unambiguous instructions, programmers can get computers to perform virtually any task they can imagine. In that same sense, to build something with Legos, you need to have a clear understanding of how the individual pieces fit together; just as a programmer needs to have a strong understanding of syntax to write code, a Lego builder needs a strong understanding of how the pieces fit.
Of course, writing effective programs requires more than just a basic understanding of how to give instructions. It also requires an awareness of the many different ways that something can go wrong. A well-written program anticipates the needs of its users and anticipates the ways that the program might be misused. By anticipating these potential problems, programmers can write robust and user-friendly code. Some would argue that Lego is not a true programming language because it does not allow for abstraction or complex logic. However, there is no denying that Lego represents a powerful system for creating and manipulating physical objects. In many ways, it is similar to the way that code can be used to create and manipulate digital objects. As such, it is safe to say that Lego can indeed be considered a form of programming.
A world built on code
Now, when most people think of programming languages, they think of computer code like Java or Python. However, programming languages are not just limited to computers. Any system that uses a set of instructions can be said to use a programming language, and while computer languages may be the most common type of programming language, they are by no means the only kind.
Back in the day, for example, long before digital computers were a thing, people used analog machines for everything from navigation to weather forecasting. These machines were operated by physical variables like electrical current or fluid pressure, which could be used to represent, store, and process data. Analog computers were often used for agricultural applications, as they could predict things like sunrise and sunset times, moon phases, and tides. In some cases, they were even used to control irrigation systems. And while analog computers are no longer in widespread use, they did play an important role in the development of digital computing.
Analog computers were around for centuries, and although their use has declined in recent years, we can still learn a few tricks from them. For example, these computers are far better at handling continuous data than digital computers because they can represent it more directly, using physical quantities such as voltage or current. As a result, they are often used in scientific and engineering applications where continuous data is common. In addition, analog computers are usually much faster than digital computers when solving certain types of problems because they can perform many operations in parallel, whereas digital computers typically process information sequentially.
What we are getting at is that we have always lived in a world built on code, where even the simplest expressions of it, like Lego bricks, can have an impact on the way we see and interact with our reality. Although the insight of Microserfs about Lego being analogous to programming might seem odd on first viewing, considering how the field of software development is growing by the day, and evolving just as quickly. Our love of programming probably has a simpler origin than we thought.
“I think it is safe to say that Lego is a potent three-dimensional modeling tool and a language in itself. And prolonged exposure to any language, either visual or verbal, undoubtedly alters the way a child perceives the universe […] The charm and fun of Lego derives from reducing the organic to the modular: a zebra built of little cubes.”
And with the modern world increasingly reliant on computer code, from the websites we browse to the apps we use, there’s something special in seeing its magic present even in the simplest of things. To code, in simple terms, is human, becoming the main way we conceptualize our reality and build something on it. Be it a humble Lego brick or a complex chain of code, it’s difficult to overstate the presence of code in our modern lives. And as long as there are people who need to solve complex problems, programming will continue to cast its spell everywhere we look. In many ways, our future has always depended on it.
The Key Takeaways
- We always think of “programming” as something that only happens inside computers, but that might be far from the truth.
- If we look at the basic concept of programming, then it’s no surprise to see it everywhere else, and Lego is a great example of it.
- Lego can be conceptualized as a programming language, where each brick connects to build an application.
- That’s because programming goes beyond a computer, and our world has been built on analog machines that predate everything digital.
Scio is an established Nearshore software development company based in Mexico that specializes in providing high-quality, cost-effective technologies for pioneering tech companies. We have been building and mentoring teams of engineers since 2003 and our experience gives us access not only to the knowledge but also the expertise needed when tackling any project. Get started today by contacting us about your project needs – We have teams available to help you achieve your business goals. Get in contact today!