If We Could Get a Virtual Lego
Imagining the Infinite Possibilities of Building with Lego-like Software
Anyone who grew up with Lego is sure to appreciate how innovative it is. Now imagine the application of lego-like mechanics to the software world. The fragmentation and inconsistency of our current digital landscape can only be overcome with a truly universal, modular software system. What if we could combine individual software Legos to create a consistent digital universe?
One of the first toys I was introduced to as a kid was Lego. And like many of us, I became deeply fascinated with it from an early age. As I got older, my fascination with these precisely crafted plastic bricks and plates continued to grow. I had collected many different themed sets—Lego Castle, Lego Trains, Lego City, Lego Technic and my all-time favorite, Lego Space. The limitless possibilities contained within those small plastic bits captured and expanded my imagination. I used to wonder, what can I build with a thousand Lego pieces, or ten thousand?
I’m not the only one whose imagination was sparked by Lego. I recently read about EverBlock Systems, a company that offers a universal modular building system of oversized Lego-like plastic blocks to construct all types of full-scale objects. The founder of the company is one of the many people who have been inspired by Lego, a passion that eventually lead him to create something new.
Along with Lego, another thing that fascinated me growing up was computer sciences. I loved gaming. And by the time I was in my teens, I wasn’t just playing computer games, I was developing them. When I looked at physical objects in the world, I tried putting them into a digital perspective. The idea of combining software programming and physical objects into a universal, modular Lego-like paradigm captivated my imagination. And even though I wasn’t sure what exactly I was trying to get at with this line of thinking, my thoughts remained transfixed with these ideas.
What Makes Lego Unique
Lego is made for building stuff. And it allows users to build things in an incredibly unique way that is granular as well as grand. It is the versatility of these small building blocks that makes Lego so extraordinary. As a young person considering the Lego system from a software development perspective, I wondered if the approach of building just about anything from small modular pieces could be applied to the world of software. This idea transcends simply digitally designing objects. It implies the creation of an entire digital universe that is consistent, fluid and limitless—a digital universe that can encompass our entire physical universe, wherein each physical object is represented by a unique building block. This would only be possible if we could create virtual Legos with their own unique identity that seamlessly integrate with one another to form limitless combinations, creating a universal, modular digital paradigm.
Modularity Is Key
Modularity has been applied to many fields, such as software design, biology, cognitive science, ecology, industrial design, robotics and many others. I discussed in an earlier paper my views on the necessity of modularity in all operations—whether technical or nontechnical—to optimize outcomes. Lego embodies this concept, as its modularity is what makes it capable of creating a limitless variety of structures. Its independent building blocks can be combined to create a number of components, which themselves can be combined in a variety of configurations. The same development principles can be applied to software programming.
In software programming, modularity enables the decomposition of complex problems by breaking them down into smaller, manageable, traceable and achievable tasks and subtasks. This type of distributed development approach makes complex and otherwise unachievable tasks feasible. It allows programmers to expand the scope of development, while at the same time shortening the development lifecycle.
Why Don’t We Create Lego-Inspired Software?
An obvious question arises: If it really does make perfect sense to create software in the most modular, distributive manner possible, then why isn’t it done that way? The answer is that our current digital landscape has become so fragmented that developers simply cannot create software in a Lego-like fashion. The pieces just won’t fit together. Think of the software world that we live in today. We carry powerful computing devices in our pockets, but as incredibly smart as our smartphones are, most apps running inside them work in complete isolation from one another. One app doesn’t know what the other is doing, let alone have the capacity to work cooperatively. Our everyday computing experiences are not fluid because commodity software applications lack any common framework.
Giving Developers Virtual Legos to Build Incredible Apps
To build software in a modular fashion, we need a set of unique and independent virtual Legos. A virtual Lego would be the digital equivalent of a single piece of plastic Lego, that is, the basic, essential building block. But a virtual Lego is more robust than a plastic Lego because a digital universe is far more complex than any physical Lego structure. A digital universe would combine billions of objects, and unlike the current digital paradigm, the objects would have to be universal and not restrained by different hardware vendors.
Of course an expansive digital universe cannot be created overnight. But if we gave such a development paradigm to the developer community, a tremendous evolutionary journey would begin. All sorts of cool stuff would be created for people to use. Imagine all the incredible things developers could build, if only they could get a virtual Lego.