Submitted by lupius_mohnschein t3_zmsveg in Futurology

Programming is the driving skill behind the development of the internet. And yet, it is currently learnt by only a few. With magic systems that teach people how to program, a basic understanding of computer science could be brought to large parts of society, empowering people to participate in the development of the web instead of being only consumers.

This broader distribution of computer science knowledge could for one put pressure on big tech companies to open up their programs for active alteration of functionality by the user like the creation of the app store by apple, and, at the same time, drive new, decentralized technologies and products, leading ultimately to the evolution of the web.

But why magic systems? Essentially, it’s about making programming more approachable through a new narrative: the narrative that programming is similar to the magic found in works of fantasy fiction and that it can be learnt through them. Level 4 magic systems could enable this narrative.

​

What are Level 4 Magic Systems?

In my earlier post, I categorized magic systems into four levels of spell-complexity:

  1. No Spells: In the fantasy world magic exists and can be controlled but it is not defined how it is used exactly

  2. Single Spells: Magic can be controlled with discrete (meaning standing somewhat on their own) actions, which can be executed one after the other

  3. Spell-Sequences/Combination of Spells: Spells can be combined to do different things and can be cast in groups

  4. Turing Complete Spell-Sequences: Spell-Groups can be combined with constructs of programming that make them just as powerful as computer programs. Sections can be repeated, there can be conditional spells and values can be stored and loaded.

The most popular fantasy novels of the last decades all incorporated magic systems of the first three categories.

But it is only natural to assume that this cannot be the end of it. That it is only a matter of time, until Turing-complete magic systems will come. And when this is the case, they could become a central part of learning programming, or at least, introducing people to it.

​

How Level 4 Magic Systems could be used for learning programming

Level 4 Magic Systems could in the future serve as a low-level entry to programming. If stories based on them would reach mainstream, one could just read a couple of fantasy books and have a basic understanding of programming.

This would certainly be an improvement to the current situation, because currently, there is a rather big threshold to overcome for acquiring “actual” programming knowledge. Usually people overcome this threshold at an early age or never at all.

Magic systems could reduce this threshold significantly and enable more people to learn programming.

In the future, it could be not a question of whether one has an understanding of programming or not but how much. Making it from a leap of faith to a journey, which you might go further along or not, just as you see fit. Not everybody needs to have a “hard” understanding of programming but at least a basic one to use simple means of programming like low code or visual programming and to participate in conversation of technical advancements would certainly be useful for everyone.

But this threshold can only truly be overcome with the help of level 4 magic systems. With their help the entry to acquiring actual programming knowledge could be much more low-level. Would this then mean that all the other great fantasy novels of the past are of no use anymore and can be discarded? Quite the opposite: they can also be a part of this learning process.

In the future, it could possibly look like this: it starts with your parents telling you fairy tales when you are little, on to reading Harry Potter to you when you grew up. Then you start reading The Name of the Wind or Mistborn on your own and went over to reading your first level 4 story (whatever that may be). And then you come into contact with actual programming and decide that you want to do that for a living.

Now it won’t have to be like this for everyone. In fact, it would be totally fine to stop at any point of this process. But it would be an advantage that this process would in this smoothness even be possible.

The ultimate goal should be that everyone with an access to internet could get a low-level entry to programming if they want to. To make it seamlessly. And from which they then can go on to learning actual programming, for which plenty of resources are already available on the internet. This could be the new way of the internet to teach people programming!

But for this to be possible, there needs to be an at least to some degree popular level 4 magic system so that people can make the leap to actual “hard” programming.

55

Comments

You must log in or register to comment.

lupius_mohnschein OP t1_j0cvojv wrote

Submission statement:

With fantasy fiction that teach people how to program, a basic understanding of computer science could be brought to large parts of society, empowering people to participate in the development of the web instead of being only consumers.

Possible questions for discussion:

- Could this work?
- Is fantasy even the right setting? Or should it be a historical setting, e.g. like ancient Greek, science fantasy or science fiction?
- Could a level 4 magic system be generated with the help of AI?

0

doctorhino t1_j0cwvqn wrote

Have you played game builder garage for switch? Nintendo has a really interesting high level flow chart type language in it.

Overall these are fine for grasping the concept but programming is no small task and it takes an attention to detail and engineering mindset to be able to actually build with it versus just read it. A lot of people just don't have the patience for it.

21

lupius_mohnschein OP t1_j0cxo1s wrote

Right, but only because up until know, there was no work of fiction that managed to do that in an entertaining sort of way. But what if there would be something like the series Queens Gambit for Programming? I'm sure that would be possible. A young witch learning programming and then excelling in it. Then many people could be brought to programming.

3

lupius_mohnschein OP t1_j0cxxrf wrote

I think it could be gen z' answer to the question, Zadie Smith asked gen y ten years ago:

“Or is it possible he just loves programming? No doubt the film-makers considered this option, but you can see their dilemma: how to convey the pleasure of programming - if such a pleasure exists - in a way that is both cinematic and comprehensible?”

Zadie Smith (Generation Why?)

2

doctorhino t1_j0czcyk wrote

I think the problem is once you're there. You're dealing with compiler issues, library compatibility, shit with AWS you're dealing with everything all the way down to the OS through code and scripts alone. I think a lot of people could grasp the concepts and then get into the actual work and hate it. Personally I love solving puzzles so it's like one big puzzle to me but sometimes it still feels like beating on an old TV to get it to work.

So while I think you could equip them with the right education to know what programming is I think the actual reality of it right now is still pretty crude. But it's always good to think about how to educate people.

6

lupius_mohnschein OP t1_j0czz9y wrote

It's true, you cannot really get deep into stuff. I'm talking more about programming on a very basic level: visual programming, low-code. Maybe in the future, more companies build stuff like that into their programs and everybody can program a little. Then knowledge about it could be useful.

And the gory details they can learn if they want to (what, true, they probably won't in most cases :D)

1

Cynicaladdict111 t1_j0d16s7 wrote

lol why do we need more programmers? there already are enough people interested

1

lupius_mohnschein OP t1_j0d1zl7 wrote

https://upload.wikimedia.org/wikipedia/commons/d/d7/LongWavesThreeParadigms.jpg

Because we are currently at the beginning of the biggest revolution happening to human kind and because innovation in this century happens mainly in software. Therefore, programming is the skill of the 21. century and the more people learn it the better. I'm not necessarily speaking about actual hard programming but visual programming or low-code everybody could be useful for many people.

2

Cynicaladdict111 t1_j0d4io5 wrote

sure but that means that we need more really good programmers, not millions more code monkeys. 99% of programmers are not innovating anything lol and if you make the barrier to entry even lower you get even more people who aren't innovating. I mean it's a fun idea (some people wrote brainfuck and temple os lmao) but completely useless

1

lupius_mohnschein OP t1_j0d7tb2 wrote

You are right, there is no use in giving people random programming skill that they can't use anyways. BUT:

First, it could get more people interesting in programming in the first place (especially women, who are underrepresented) and more programmers mean more excellent programmers mean more innovation. I think we shouldn't kid ourself that all people who could be excellent programmers are become ones.

Secondly, it could bring coding in new areas, for example law firms, creative secotrs, etc. Instead of letting all the functionality be done by the programmer, it is given to the user for example with a domain specific language. Because they are the experts in their area and with some coding skills, they could probably also write simple algorithms to solve their problems faster.

TLDR. Innovation through reaching more excellent programmers. And by increasing the overall knowledge about programming/computers, more programming can be delegated to the user, which also leads to new innovation.

2

DrDavidson t1_j0dkfwo wrote

Very interesting post

If you haven't heard of it already, you should check out Wildbow's "Pactverse" stories. It has the closest thing to a level 4 magic system that I've encountered.

2

OakwardTinkerman t1_j0en4ow wrote

You are really tickling my interests at the intersection of magic system creation and programming! Seems like I missed a beat on your earlier post - can you direct me to where you flesh your ideas out more on this stuff?

I’ve been making the case to people that magic is basically real if you consider magic the ability to manipulate your environment in mystical ways (like making a system that can produce images from a prompt - come on, that is magic science right there.) Programmers, embedded engineers, and machine learning developers are basically wizards.

Our modern “tech wizards” are kind of like fantasy rune casting wizards that have to utilize a ton of arcane knowledge and deep rules and logic to cast effective spells.

All this to say, I vibe on this idea, and I think it is an accessible and fun way to approach learning programming and tech.

3

Lord0fHats t1_j0eoj51 wrote

Ultimately the problem facing programming is that getting good at it means being good at math and having fine attention to structure and detail.

As a person alive today, people alive today don't like math, structure, or detail :P

1

OakwardTinkerman t1_j0eoo5e wrote

Also, with the advent of text to code ai, the nuances of programming syntax are becoming deprioritized, but an ability to -think- programmatically in order to interact with very high level text to program interfaces will be very useful for better interacting with these systems.

I think fiction where a character casts spells through an object oriented paradigm could be fascinating and a great way to internalize hard to grasp concepts.

The more contextual cues and associations you can hang your learning on, the deeper the learning goes. In the way one comes to internalize the potential of the metallurgic arts in the Mistborn series, so too could a person come to understand programmatic concepts.

1

mossryder t1_j0f1t0d wrote

There are tons of programmers, where did you get the idea there are only a few?

2

wjordan213 t1_j0f8t9k wrote

you should read the diamond age by Neil Stephenson. The exact same concept is explored

1

TheUmgawa t1_j0fdua6 wrote

If you think programming computers to push pixels is the future, you’re ten years behind already. The future is programming robots. Not walking, talking humanoid-esque robots; arms and conveyor systems; PLC controllers; that sort of thing. Siemens is working on a robot that can sew blue jeans more cheaply than a third-world blue-collar worker.

So, if companies are looking to develop systems to be cheaper than the cheapest labor in the world, imagine what they’re looking to do to first-world unskilled and semi-skilled labor. If you unload a truck, get an education. If you drive a truck, get an education. If you do anything where your decision flowchart basically loops back around on itself without any decisions that aren’t a yes or no for an answer, get an education.

That said, it ain’t magic and it ain’t that easy.

1

lupius_mohnschein OP t1_j0fish1 wrote

Right, I should clarify this: it's also about changing the way we think about programmers in pop culture. Currently that is: Jesse Eisenberg as Mark Zuckerberg, who does his thing. It would be great to have some different stories, in which women are included and which also depicts the daily experience of programmers more correctly: that it's about teamwork.

I'm not saying women need that. In the case of bringing women to learn coding it's more about breaking up existing believes how programmers look like, have role models in pop culture, etc.

1

Mason-B t1_j0fk343 wrote

This is an old idea. The SICP even presents programming as magic, and it was the intro to programming book at MIT for decades.

Personally I think the Zachtronics games are much closer to realizing this than many of the other attempts. They made games first, that just happened to also teach computational thinking. Factorio is similar.

I've even taken a few cracks at making some "magic" themed programming languages.

1

lupius_mohnschein OP t1_j0fk4dy wrote

Sure

I described the magic system I came up with in this document: https://drive.google.com/file/d/1u5h22l4CAtd1XpqQ0hqho_5h3zgYwim2/view (it's open-source and based on object-orientation)

If that's too long, I also wrote a novel, which incorporates the magic system: https://drive.google.com/file/d/19QboE8cVZ2Do4Jfdfe9Ewh9ACdYO0bSx/view (it's in the public domain)

But this novel I wrote is only a prototype.

The idea is, that this could give way to what I call the "Etherverse", a shared universe, in which all stories incorporate my magic system. But as opposite to say, the Potterverse, it is fully dezentralized, meaning that everybody can equally add stories to it by incorporating my magic system in one's story. There exists no strict canon, even my own story is in the public domain and can be copied and modified by anyone. And the more people join it, hopefully one day, a truly great novel will come out of this. I for one would really like to read it :)

This is further described in the following post: https://www.reddit.com/r/worldbuilding/comments/zg9b20/the_etherverse_a_decentral_shared_universe_to/?utm_source=share&utm_medium=web2x&context=3

2

lupius_mohnschein OP t1_j0fkohg wrote

I don't say that the idea is new. However, it was never implemented to the extend I have in mind. Ok, so apparantly MIT presented programming as magic, but is there any mainstream fantasy novel, series or movie in which this is truly the case?

So, the idea was tried out in a sort of proof of concept manner, but never really implemented on a full scale ;) I want it on a full scale.

Thanks for the Zachtronics games hint. This looks really interesting. I will look into it.

1

lupius_mohnschein OP t1_j0flbex wrote

Yes, that goes exactly in the way I thought of it myself. It's about problem solving skills, which are not only useful for programming but for interacting with a digital world in general.

Actually Mistborn and also Patrick Rothfuß The Name of the Wind already go in this direction.

And I'm just thinking: what if kids grow up with those type of books? Imagine a whole generation who grew up with a version of Harry Potter, in which magic works like programming. I'm sure good programmers would come out of this.

Although I'm sure it could also have some drawbacks ...

2

Mason-B t1_j0flgjj wrote

> Ok, so apparantly MIT presented programming as magic, but is there any mainstream fantasy novel, series or movie in which this is truly the case?

Well books aren't really mainstream anymore anyway.

But it's certainly been leaning in that direction for a number of years. "Knight's & Magic" [SIC] is just a dumb anime that makes fun of tropes and it even explicitly calls this trope out. You can say the magic system is "like programming" but people rarely dive into it enough for it to matter. See also Brandon Sanderson's rules for hard magic, the point of a non-soft (re: not deus ex machina) magic system is to be predictable by the audience, but no one is going to be putting code in books (let alone TV shows/movies).

Fundamentally programming is more interactive than that. We are then left with games as the only real medium for teaching concepts like this.

1

lupius_mohnschein OP t1_j0fm5ab wrote

You are right. I have talking about stories too much. But it could be in any medium really.

Games could be the best medium, that's true but after all, they too are telling stories. What they can do can also be done in a story if done right. Also many great video games are based on books like the Witcher.

I would like to add to your list the manga "Witch Hat Atelier". It's about a young witch, who learns magic, which in this world means drawing magic runes. It is in my opinion the closest one can get to the feeling of programming in fiction medium that is passive (novel, movie, comic, etc.). And it is also kind of popular.

I'm actually not sure myself whether novels are the right medium here. What I wonder about games is that they typically have a much lower live span. People read novels that were written one hundred years ago. Most games are outdated after a few years. Because many skills associated with computer science can be described in a general manner, I think there could be a book, for example like the Lord of the Ring, that would be fresh for a long amount of time. In my opinion that would be a great step forward.

1

lupius_mohnschein OP t1_j0fnlob wrote

I think you are forgetting creativity, also an important aspect. And I think if people are creative and have a problem that are interested in, they will willingly get their head around the other stuff, too (at least some will).

After all, all jobs that require some thinking need those skills. And with more automatization and digitalization, those jobs will only become more.

1

lupius_mohnschein OP t1_j0fnxez wrote

It's relatively of course. But in comparison to the rest of society, they are only a few. Those who program and those who don't. I think it would be better of also all the other's would have some skills.

1

samanime t1_j0gtntq wrote

I'm a firm believer that anyone could be a successful developer if they were determined enough.

But having that determination and the necessary patience to stick with it long enough to gain the requisite skills is a challenge that not everyone is interested in.

3