Captain's Log, supplemental.
Metaphors are a useful way to develop and present new data structures. The file folder metaphor is one of the more ubiquitous examples.
Here, I present a new abstraction that brings the irresistible thrill of science fiction - from starships to top secret labs to interdimensional travel - to the practical world of software development.
Breaking Through Boundaries
The first step toward bringing this fantasy to life is to tear down a familiar boundary: the wall between developing an application and using it.
Imagine a website with a reactive imperative framework whose entire source code is stored in your browser addressbar. As you browse, the URL changes and so does the app's behavior.
For a hint at how this could be accomplished efficiently, see this post:

The URL Space is Bigger than the Universe
Eric Augustinowicz ć» Jun 24
No matter what you do in an app like this, only one thing happens under the hood: the source code changes. This demolishes the boundary between browsing and coding.
Yet, it leaves us with a problem in cognitive ergonomics: how do you navigate in this app without breaking it?
Enter the Multiverse
Imagine that the app in question is an IDE that you're using to develop a second app. The source code for both the IDE and your own app will be mixed together.
We are now entering the untamed realm of a unified IDE or UIDE. We can unleash a hard science fiction abstraction to tame it.
Consider an empty document as the basis of all reality. It is lawless at first, but with each line of code we add, we're adding new laws of physics. The unified space containing all of the possible laws of physics that could ever exist is called the multiverse.
Any given document represents a point in that unified space. All at once, it includes both the laws of physics of a single universe and an observer's position in that universe. Everything you do in the UIDE is just motion within the unified space.
With that in mind, we can design a user interface for the UIDE which makes it feel like there are two different modes of transportation: one that moves you around the universe and one that moves you around the multiverse.
In this interface - just like in the real world - you can travel the world without destroying the universe or changing its fundamental laws.
However - unlike the real world - this abstraction equips you with a very dangerous piece of technology: a gateway to other realities.
Make the wrong move, and you might get ripped apart, get stuck in a time loop, or cease to exist entirely.
A Gateway to Many Worlds
So now we can separate in-universe changes from out-of-this-world changes. But which changes are which? That, like the laws of physics themselves, depends entirely on which universe you are in.
This is perhaps no more satisfying than when we let our imagination run wild with what kind of user interface could be created - especially if we include all of the possible games that are also UIDEs (GUIDEs).
In one world, you are a starship captain in a galactic empire. They've installed both you and the reality drive onto a cutting edge starship and given it a capable crew. In that world, you can fly directly into other worlds while keeping your starship wherever you go.
In another world, they've hidden the technology in Section 5 of a top-secret research facility. You wouldn't even know about it unless you were invited to participate in the secret project. On your way down that elevator, they'll ask you: are you brave enough to take control of the laws of physics?
Conclusion
This metaphor is one of my favorite ideas. The sci-fi edge makes the experience entertaining while also bringing to mind the potential consequences.
It's also a metaphor that begs to be extended. With the right presentation of this technology, it becomes both easy and fun to do just that.
That is the inspiration behind my game project, Kireji: The Reality Drive. The goal of that project is to build the UIDE and use it to "find" an open world and open multiverse game.
It is one of the many ongoing threads Iām exploring to make my dream come true: making software engineering enjoyable and accessible to everyone.
Thanks for reading!
Top comments (0)