Zach's Rules for Nice Programs
programs should run locally on your computer as applications, not in a
browser:
-
- because software should last longer than the company serving it
-
- because it should feel offline-first: caching an app in a browser
doesn't communicate this feature nearly as clearly as the app living
on your desktop
-
- because users should be able to see how an app is using their
computer's resources, instead of having that obscured behind the
monolithic browser
programs should store files in human-readable format [except bin data
I guess] in an accessible folder on your computer:
-
- e.g. to-do apps should reference a folder on your desktop filled
with plain text files of to-dos
-
- because users should be able to see clearly what an app is doing
behind the scenes (computers should be open and understood, not closed
and mystical)
-
- because users should be able to easily transfer their data between
themselves and others, between devices, and between apps;
-
--->
the back-end of a program should be as visible and understandable
as its front-end
programs should strive to be infinitely hackable, customizable,
extensible
-
- people should be the architects of their digital lives and computer
programs should enable this, not prevent it
-
- see
Christopher Alexander:
The Timeless Way of Building
and
A Pattern Language. He argues that a "living" architecture would be continuously
designed and constructed by its inhabitants; "living" software should
as well.