malleable: lets users appropriate and repurpose their tools and documents in personal and idiosyncratic ways. Software should be reprogrammable for those who have the skills, but also reconstructible from readymade parts.
shareable: lets users seamlessly collaborate both synchronously and asynchronously on any kind of data in any kind of program
distributable: allows tools, documents, data, and computation to span and move easily across different devices, platforms, and servers
composable: allows users to combine tools and functionality beyond traditional application boundaries and incrementally add functionality to tools as needed
interoperable: allows users to collaborate on shared data using their own tools
computable: it should be possible to do computations with what you see on the screen
diSessa, A. A., & Abelson, H. (1986). Boxer: A reconstructible computational medium. Communications of the ACM, 29(9), 859–868. https://doi.org/10.1145/6592.6595
Andrea diSessa, Changing Minds
MacLean, A., Carter, K., Lövstrand, L., & Moran, T. (1990). User-tailorable systems: Pressing the issues with buttons. Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, 175–182. https://doi.org/10.1145/97243.97271
Grønbæk, J. E. S., Borowski, M., Hoggan, E., Mackay, W. E., Beaudouin-Lafon, M., & Klokmose, C. N. (2023). Mirrorverse: Live Tailoring of Video Conferencing Interfaces. Proceedings of the 36th Annual ACM Symposium on User Interface Software and Technology, 1–14. ~https://doi.org/10.1145/3586183.3606767~