3 ms·
Programming doesn't really have a strong "Physical space" and "designing representations with meaning" component. When you imagine a pinboard of information, f
by fardo 6y ago
Programming doesn't really have a strong "Physical space" and "designing representations with meaning" component.
When you imagine a pinboard of information, for example, you can have all sorts of content on it, including
>Pictures,
>Handwriting on top of typed documents
>Pins and twine connecting documents to show relatedness of things
>Physical highlighter being applied to important or interesting document sections
>Physical arrangements in space that are able to indicate similarity, under physical headings
>Reference materials hung up for quick reference in the same space as the actual things you'd reference them for
>The ability to unpin stuff and instantly hand it to someone else for them to look at in their hand, at their desk, with zero hesitation or lag
>The ability to personalize and express oneself through stylistic choices and design that communicate information about the documents you have up (monospace bold documents tend to look like bills, times new roman documents like student essays, comic sans like you're making a non-serious presentation)
Now, considering al the above, it seems to me a problem that despite the physical expressiveness and interactivity possible on the above described physical pinboard, our in-text-editor flat programming IDEs and programming languages feel wholly unequipped to make it easy as a first-order task to interact, think, and expressively manipulate code bases in this fashion.
I suspect this ability holds us back as an industry, because if making clear the mental models which interrelate parts of our code and go into a codebase were explicitly elevated to the level of business-logic and implementation in terms of importance, the ease of onboarding and of system expansion by other persons who need to understand your project I believe could dramatically be accelerated by weeks or months of developer time, which in the real world can and does make-or-break projects.
Attempted solutions like having devs, in parallel with their normal work (and generally, with little reward or incentive from management) writing documentation in programs like OneNote or making slide decks or unrelated-to-actual-implementation design docs, the current state of windowed computers displaying disconnected programs all in a clumped pile most closely comparable to a stack of physical papers covering one another, and tree-based file systems as a first order representation of code base relationships between files and systems I suspect are all absolutely paltry by comparison to the expressiveness capable on the physical pinboard.
Solutions to the above I think would require a very different editor, possibly a very different viewing and interaction terminal (VR being one possibility), and probably a very different programming language than the ones I feel we currently have that would make all of this feel as natural as the current flat and isolated file-based IDE editing people are used to.