Phones are definitely a nice target for malleable systems. I’d love to have a malleable system on my phone. But I have zero competence in development for Android or iOS, so I can only propose my moral support.
My point is that malleability demands that all of us are peers, there is no server and clients.
If the server commands the type of api, then there can be no malleability, only conformity.
For this to happen, we need to eradicate the need for a server, and we have a device that is always on and universal.
I appreciate the potential of phones as powerful, ubiquitous devices for malleable systems, as outlined in your points. However, I believe that truly malleable software should transcend the limitations of any single device or medium.
Our digital lives span multiple devices—laptops, tablets, wearables, and even smart home systems. Malleable software should be adaptable across these diverse contexts, allowing us to seamlessly transition between them without being constrained by the specific capabilities or limitations of any one device.
In a world where we work, play, and learn across various environments, software that is too closely tied to a single device risks limiting its malleability. Instead, I envision systems that are context-aware and can adapt fluidly, providing consistent functionality and user experience regardless of the medium.
This vision diverges from the “local-first” movement which emphasizes data be fully colocated with the context of use. I’d rather move towards a world of location-independent software where users have agency of where state is persisted and computation is used.
I don’t necessarily want to throw away the benefits of having high uptime server resources. There’s tons of compute that we should utilize on our local devices but I don’t want my emails dropped when my phone is dead for example.
Backup is the first service that needs to be provided, if we want local-first software.
Infrastructure(servers) is necessary for our civilization. But then we need to solve important social problems. Can we have organizations that take care of the infrastructure for our own benefit? Can we have agency, democracy? Can we have malleable organizations? How will those organizations be financed?
My main critique with the free-software movement is that it forgot that people are corporeal and they need to feed.
For example, how could we have a search engine that the users control? Which social structure can allow billions of people to come to a common decision and not feel alienated by the process?
This is why I am interested in malleable social organizations mediated by software. The problem is not the software, it’s our lack of social organization.
Technology and social structures go hand in hand, so, yes, if we want malleable systems to be the norm, and accessible to a much wider range of people, then we also need different social structures. No central points of control. Which means servers (many small ones are fine) but also browsers (right now, Google can kill any Web app they really hate by modifying Chrome).
As a first step, we need technology that supports decentral social structures, and that’s where I see the immediate objective of this group.
@thekkid Good to see that you are working on a live functional programming environment with very similar goals.
I wonder whether you have separated the UI and the code, data, in such a way that you can have many visualizations/views for the same thing. Or the same views for different data/code.
“Working on” is probably strongly stated. I’m doing research with Hazel that I’m hoping will trend more towards the malleable context-of-use direction. Andrew Blinn has recently merged in “projectors” Leaf Projectors by disconcision · Pull Request #1218 · hazelgrove/hazel · GitHub which offer a projectional code editing experience that allows for multiple projections over the same types of code/data. There’s still lots of work for us in the space and it’s mostly targeting compositional editing for now.
As for my personal goals and vision, I see the many-to-many representation of views and models present in the original vision of MVC. So modelling computation as a pure structure and then having different views to interact with it is key. But I also think of operations that operate on views and code as well, like refactorings, compositional window managers, etc. So I would like to make systems flexible enough to support some form of metaprogramming that allows for code to be extracted from data and vice versa.
One of my guiding principles is to try to avoid unnecessary tradeoffs in terms of vision and theory. So this causes the vision to be overly general and require sacrifice in the short-term. I’m hoping that maintaining long term vision at least guides the short term strategy.
I think people are afraid of any form of data collection because of the privacy violations and bombardment of ads we’ve gotten from companies. I’m a big fan of being able to collect my own data but it seems like the concept has been poisoned for a lot.
I loved that project. The focus was initially on empowering the user in a secure way, so you ran the infrastructure on your local machine, used APIs (which were still available at that time) and built up a local data node across all the things you used.
But funding comes at a price, it seemed to me they had to pivot to something that let them harvest info from users, so local installs were a no-no.
And probably at the same time APIs were getting enclosed, so the original concept was getting tenuous.
I had a quick look at Wasmer. Browsing http://wasmer.io/ for about 15 minutes, I couldn’t find anything about Android. No downloads, no instructions. Only a GitHub issue that suggests there is something working but not supported.
After some investigation, I’m convinced the new account that mentioned Wasmer here was some kind of fake / spam account. I’ve removed their account and hidden their post above, in case anyone wonders where it went.
Wasm runtimes could prove useful for reaching phones, though not sure which are well supported there (if any) at the moment… I wonder whether something more like an OS with Wasm at the center is really what’s needed, but it’s very hard to break out of the mobile duopoly…
Currently my Android phone is one of my malleable devices, but the only environment I’m using on it is Node.js under Termux to run little personal scripts. It’s really not great - a text REPL isn’t entirely suited to a phone - but it has the advantage that it can read and write text files, and I can then plug the phone into a desktop/notebook and copy those text files to and from my phone.
I hate that I have to resort to 1970s green-screen terminal and USB sneakernet technology in the year 2024. But 1970s technology and sneakernet seems to be the best we currently have – because it’s sufficiently old that it falls through the cracks between Silicon Valley megacorps’ control structures.
I could fire up Android Studio and make a proper App and then try to side-load it, sure. But what would I put in the GUI of that app that’s malleable by the user? A giant text field is all I can think of.
I wonder if there are any decent Teletext style fonts available for Android?