Earlier quoted context omitted.
> Windows was a wildly malleable piece of software in the 90s and 2000s, and it didn't exactly win love for it. Is that so? I remember the custom styling options in Win98 and ME/2000 still very fondly. And there were lots of people who invested effort in making their own color schemes, meticulously assembling personal toolbars in Office, etc. (The enthusiasm went away the first time you had to reinstall and were face…
Tech-oriented people love software malleability and also can handle the responsibility - e.g. understanding something that's broken + customized by you could have been broken by you. Non tech-oriented people, the masses, absolutely love customizability and malleability--but aren't willing to handle the responsibility. They will reach out to tech support who can't possibly know every customization option of every appl…
Malleable software: Restoring user agency in a world of locked-down apps
21–30 of 117 posts
Re: Malleable software: Restoring user agency in a world of locked-down apps
#22I wish that the first semester of programming class deliberately left code out of the material. IMHO students should start with something like this short list: FileMaker/Microsoft Access/HyperCard (no longer exists) Macromedia Flash (no longer exists) Spreadsheets (like Microsoft Excel, unfortunately Airtable isn't there yet?) Wix (maybe? surely there are better alternatives) Zapier (or an open source version) Then m…
Re: Malleable software: Restoring user agency in a world of locked-down apps
#23I wish that the first semester of programming class deliberately left code out of the material. IMHO students should start with something like this short list: FileMaker/Microsoft Access/HyperCard (no longer exists) Macromedia Flash (no longer exists) Spreadsheets (like Microsoft Excel, unfortunately Airtable isn't there yet?) Wix (maybe? surely there are better alternatives) Zapier (or an open source version) Then m…
But if the class is computer science at a university, then the students want to go deeper and learn how to improve upon and compete with the existing tools. They need the theory first, which means Lisp (or a derivative) and an imperative language.
Re: Malleable software: Restoring user agency in a world of locked-down apps
#24The challenges here feel insurmountable, but I can't help but feel there's a certain inevitability to the de-monolithization de-totalization of the domain of computing being ensconced so wholly as it is inside of applications, experiences purely pre-defined by a given app. Already with AI we are seeing a huge uptick in people's expectations that agents operate across apps. The app is losing its monopoly of power, is…
I agree, I feel like the authors are underestimating the effect the new AI is already having on the concept of local software crafting. For my entire lifetime, I've had friends ask me to help them build software that accesses some data somewhere, and I've always had to turn them down because there are too many unknowns. I've spent countless hours thinking about how to build a business that would solve some class of p…
Coauthor here -- did you catch our section on AI? [1]
We emphatically agree with you that AI is already enabling new kinds of local software crafting. That's one reason we are excited about doing this work now!
At the same time, AI code generation doesn't solve the structural problems -- our whole software world was built assuming people can't code! We think things will really take off once we reorient the OS around personal tools, not prefabricated apps. That's what the rest of the essay is about.
[1] https://www.inkandswitch.com/essay/malleable-software/#ai-as...
Re: Malleable software: Restoring user agency in a world of locked-down apps
#25Earlier quoted context omitted.
Tech-oriented people love software malleability and also can handle the responsibility - e.g. understanding something that's broken + customized by you could have been broken by you. Non tech-oriented people, the masses, absolutely love customizability and malleability--but aren't willing to handle the responsibility. They will reach out to tech support who can't possibly know every customization option of every appl…
What is the "responsibility" of customizing the color scheme of your own PC?
Re: Malleable software: Restoring user agency in a world of locked-down apps
#26I love the optimism, but I'm a pessimist. Even at the first paragraph: > "The original promise of personal computing was a new kind of clay—a malleable material that users could reshape at will. Instead, we got appliances: built far away, sealed, unchangeable. When your tools don’t work the way you need them to, you submit feedback and hope for the best. You’re forced to adapt your workflow to fit your software, when…
Software in the 2000s was markedly better to software today. But it's cheaper and easier for companies to produce shitty software, so that's what we get. It has nothing to do with consumer preference.
Re: Malleable software: Restoring user agency in a world of locked-down apps
#27Earlier quoted context omitted.
Tech-oriented people love software malleability and also can handle the responsibility - e.g. understanding something that's broken + customized by you could have been broken by you. Non tech-oriented people, the masses, absolutely love customizability and malleability--but aren't willing to handle the responsibility. They will reach out to tech support who can't possibly know every customization option of every appl…
What is the "responsibility" of customizing the color scheme of your own PC?
Re: Malleable software: Restoring user agency in a world of locked-down apps
#28Earlier quoted context omitted.
What is the "responsibility" of customizing the color scheme of your own PC?
Not setting the text color the same as the background color and making everything unreadable, including the UI to change the color back?
Re: Malleable software: Restoring user agency in a world of locked-down apps
#29Here's my premise - if you use something like a game engine, say Unity, and Unreal, you basically have the ability to modify everything in real time, and heve it reflected inside the editor immediately - you could change textures, models, audio, even shaders (which are a kind of code), and have the editor reload just that tiny resource instantaneously.
But not code code - for some reason computer code must go through a compilation, optimization and linking process, creating a monolithic executable piece of code, that cannot be directly modified. This is even true of dynamic languages like Js/Ts, which support modification on the fundamental level, yet somehow lose this ability when using advanced toolchains.
Which is weird since most compilers/OSes support this dynamism at a fundamental level - the machine interface unit of the C compiler is a function, the replacement unit in most OSes is a dynamic library, a collection of said functions - yet changing this at runtime is almost unheard of and most of the times suicidal.
This is because of a couple problems - memory allocation - replacing parts of a program at runtime can lead to leaks if we don't clean that up, resource allocation - this once again can be solved by tying resource lifetimes to either outside factors, or the lifetime of the function or its containing unit.
A demonstrated analog of this is OS processes, which can be terminated abruptly, their binaries replaced without fear of resource leakage.
The final problem of data corruption can be solved by making such program parts stateless, and making them use a store with atomic transactions.
I have a pretty good idea on how to build such an environment on the low level, whose core idea is having process-like isolation barriers isolating small pieces of programs, and an object database-like datastore that can never be corrupted due to transactional changes (which can be rolled back, enabling stuff like time-travel debugging). Said processes could communicate either via messages/events or sharing parts of their memory.
Such a system would allow you to fearlessly change any part of the source code of a running application at runtime - even if you mess up the code of a said component - say event to a point that it doesn't compile - all that would happen would that single component would cease to function without affecting the rest of the app.
Re: Malleable software: Restoring user agency in a world of locked-down apps
#30A tool which looks at this sort of thing which was mentioned here recently: https://news.ycombinator.com/item?id=44118159 but which didn't seem to get much traction is: https://pontus.granstrom.me/scrappy/ but it pretty much only works for JavaScript programmers and their friends (or folks interested in learning JavaScript). Other tools which I'd like to put forward as meriting discussion in this context include: - L…
The Qt/KDE world has (imho) some of the best quality software I've used, and is, astonishingly, relatively unpopular compared to FOSS competitors.
Ipe now has a web interface (through the magic of Qt) and I remember there was a plan to make one for LyX, though if it ever happened, I couldn't find it.