malleable.systems icon indicating copy to clipboard operation
malleable.systems copied to clipboard

Add Madson's "An argument for self-modifying applications" to catalog

Open jryans opened this issue 2 years ago • 0 comments

https://macoy.me/blog/programming/SelfModifyingApplications

Emacs is the only program where I truly feel that I can naturally modify it. The code for any function in the system can be quickly and easily navigated to. Modifying the code is as easy as making my changes to the text, then highlighting it and "evaluating" it, all while the application is still running. This level of ease puts most modern software toolchains to shame.

A great middle-ground application example is Blender. Blender's Info Editor will report the Python code for each operation the user performs. [...] I can tweak it and modify it, and combine it with other commands in order to create whole chains of commands. This provides me a way to ease into the scripting system, because I can perform the operation by hand first to learn the necessary commands to execute in my scripts. I can start to share my scripts with others, and read scripts others share with me. Eventually, I gain enough experience that I can read straight from the API documents, which can be more efficient.

By building tightly integrated, unlimited, and convenient modifiability into your applications, you give your users the chance to solve their own problems. You will of course still need to provide value by improving the application according to your vision for it, and in order to gain users you must build base functionality which the majority of users desire. But after that, you can provide a huge amount of value to users by empowering them to modify your application.

Suggester: me

jryans avatar Nov 23 '22 18:11 jryans