4 ms·
This is not what you're asking for, but I think city as a visual metaphor for certain class of programs could work. Imagine literal factories for manufacturing
by tjchear 4y ago
This is not what you're asking for, but I think city as a visual metaphor for certain class of programs could work. Imagine literal factories for manufacturing certain class of objects, highways and roads to represent connections between component buildings, warehouse as databases or storage, office buildings as manager objects, etc and code editing is just moving buildings around (probably hard to do fine grained editing, as you'll need metaphor or abstraction at a different level). Vehicles are literally rpc calls or data packets. If something's breaking, it can be depicted as traffic jams or accidents or billowing smoke from a building.
Now attach a VR headset and controller. Even people without engineering training could do high level administration or editing.
- watercooler_guy 4y agoThat’s a really neat idea, what better way to intuitively understand what a program is doing than a familiar physical environment in front of you. Reminds me of the esolang Taxi, where you perform computation by giving directions to a taxi driver carrying “passengers” (data) around a city [1] The city metaphor would probably create a whole new genre of software-art too, where you can optimize for beautiful layout/architecture as well as efficiency. [1] https://bigzaphod.github.io/Taxi/ https://bigzaphod.github.io/Taxi/
- tjchear 4y agoThis is really neat. I like your thinking that it could create a whole genre of software-art. I see it as being very plausible as I'm sure engineers worth their salt have seen poetic charm or elegance in expression of some of their codes. It'd be great if a program's city metaphor by virtue of the rules (similar to Python's indentation rules) give rise to efficient/beautiful architectures. For example, for obvious reasons, buildings close to each other enjoy in-memory proximity and thus cache locality induced performance improvements.
- kqr 4y agoI like the idea, but I certainly hope it would be nothing like a real city which corresponds more closely to the worst kind of spaghetti code out there, with tight dependencies between otherwise unrelated communities, too many ways to achieve the same task to list, and so on. Cities work because they're organic and adaptable. You couldn't plan a city, much less understand all of it.
- tjchear 4y agoCity can be planned and for them to be efficient, has to be planned. That's why we have urban planners. The charm of a city however, certainly comes from the organic and adaptations its inhabitants make over time. I'm optimistic that a program's city metaphor has the potential to be just as charming, instead of turning into spaghetti.
- bloopernova 4y agoThat sounds a lot like Factorio, a game. It even has simple logic gates that can be generated by verilog or something like it.
- tjchear 4y agoYeah I've heard of Factorio, but never played it. When you zoom out of a Factorio game you can certainly see some large scale repeating patterns, and how things are shuttled around, which is really neat. Like how when we move things around and step back a little we gain a different perspective or deeper insight into something, I hope this city metaphor could do the same for computer programs.