The Opportunities of CS

Martin: What are the opportunities of Coding Systems? 

Coding Systems is our mutual garden, where we grow ideas.

Tim: That’s a beautiful question. First of all, most opportunities are not visible yet. To make use of our favorite metaphor: Coding Systems is our mutual garden, where we grow ideas to see where they get.12

When the amount of nodes in a system grows, the chances of it breaking somewhere increase.

From today’s perspective I think great potential of CS as a design studio could paradoxically emerge from the technology-obsession, the system-blindness and the “fear of missing out” of institutions. I see companies rashly adding complexity to their workflows, while overseeing the emerging fragility: When the amount of nodes in a system grows, the chances of it breaking somewhere increase. As system thinkers, system designers and system teachers I see great opportunities for us to raise awareness for these effects and help institutions and individuals to build solid systems and workflows that convince through clarity and coherence, liveliness and uniqueness, while using the right amount of the right technology. 

Furthermore I see a great opportunity for us in visualizing complex systems through Object-Oriented Programming. That’s a coding paradigm we didn’t really work with yet but will hopefully explore in the near future together. 

Martin: Please tell me more about Object-Oriented Programming and how it relates to Coding Systems. 

Tim: Object Oriented Programming is a programming paradigm that changed how people wrote code in the 1980s (i think). It is based on the idea of separating a program into different closed objects that are connected with each other. To simplify or illustrate this: Instead of reading the code from top to bottom and following the instructions linearly, a program based on objects is a system or a network of pieces of code. 

In his book “The Nature of Code”, Daniel Shiffman teaches Object Oriented Programming in a brilliant way by creating systems or swarms of thousands of birds that intelligently keep a certain distance to their neighbors. 3 That’s called flocking. Each of these digital birds is an object with different properties. Actually Object Oriented Programming is a whole world, hard to explain, but very powerful. At the same time I mostly avoid the object oriented paradigm, because it is quite overwhelming. In my teaching, instead, I circle around the fundamentals below OOP, which are also already a system in a sense. I think it is great to use as little tech as possible and as much as necessary. Most of my work is mainly based on functions and rarely based on classes and objects. 

Footnotes:

  1. Maggie Appleton: A brief History and Ethos of the Digital Garden
    https://maggieappleton.com/garden-history ↩︎
  2. “Think like a gardener, not an architect: design beginnings, not endings.”, Brian Eno. Dan Hill writes, “For those that don’t know Eno’s work, he is one of the most important and influential artists, musicians and thinkers of the last half-century. And regarding my opening paragraphs and this desire to pull in culture, it’s worth noting that Brian has also—perhaps implicitly— pursued a sharper, more inventive and informed approach to tech than most, as music often describes the potential of an interplay of technology and culture, just as cities are the product of culture, nature and tech.” https://www.vinnova.se/en/publikationer/mission-oriented-innovation—a-handbook-from-vinnova/ ↩︎
  3. Daniel Shiffman: The Nature of Code
    https://natureofcode.com/ ↩︎

Published on November 20, 2024

Last updated on November 8, 2024


This conversation is an invitation for collective sense-making. Did it spark any ideas or doubts? Do you have additional sources we should look into? Use the comment section to become part of the conversation.

2 Comments on "The Opportunities of CS"

  • OOP allows you to have small (or large) separated pieces of code, with encapsulated properties and behavior. Since what you store in objects/classes is the “blueprint”, you can create different instances and configure each as you wish. Even in small programs, by introducing a bit of complexity, you gain in maintainability and reusability.

    When you bring this to visual systems, you also gain composability. A good analogy would be Figma components, where you have variants and props to configure the same component in different ways depending on the use case. In the same way, we could have a visual composition of a set of instances of the same object/class, where each of the instances gets random values for its properties.

    November 21, 2024 at 6:31 am

    • Tim

      This is a nice, clear explanation. Thank you Ricardo!

      November 21, 2024 at 8:18 am

Leave a Comment

Your email address will not be published. Required fields are marked *