3 ms·
It's interesting how discussion on Christopher Alexander's works always turn into discussion of patterns about how to write or structure code (regardless of wha
by uludag 2y ago
It's interesting how discussion on Christopher Alexander's works always turn into discussion of patterns about how to write or structure code (regardless of what the artifact is), as opposed to what "living", human-centered programs are (regardless of the code that composes it).
I think a tech talk that much better hits the mark is "Emacs as Design Pattern Learning" by Greta Goetz [1].
[1] https://emacsconf.org/2021/talks/pattern/ https://emacsconf.org/2021/talks/pattern/
- jerf 2y agoAs software scales up, it is inevitable that software quickly crosses past the point where we can't afford "human, living" software for users. It just gets too complicated. We're lucky if our software can even be held together enough for the developers to not be faced with just a total mess. I don't say this to condemn anyone. It's just the nature of the beast. Software scales to such larger piles of complexity than any other human engineering artifact, because we build with components that are effectively 100% reliable (assembly opcodes, that is, not 'networks' or anything that high level), which allows us to pile on enormously more complexity than for anything physical, which is never 100% reliable and thus held back from growing to software complexity. Even if you have a "living software" like emacs, it still isn't "human", inasmuch as to become skilled enough for the "living software" aspect of emacs is itself enough to have turned you into a specialist and thus no longer a "generic human". I've been using emacs as my primary editor for decades and I still have only just barely scratched the surface of the "living" part of it, mostly just tweaking my .emacs every couple of years and using inline compiling to verify my work without a restart. Or, to put it another way, we stretch quite legitimately with all our collective skills to hold our software together even from the developer side, and we quite frequently fail at that; we've got negative capacity left over to try to build the next level of software that somehow can allow end-users to program it themselves (and what end-users are these who are willing to take that level of skill on anyhow?).
- uludag 2y agoI think you have a point in that we can't expect modern audiences to adopt human-centric software. I don't think that this is a software-specific problem though, in that the very architectural designs that Christopher Alexander would endorse don't have capacity for scale (or the scale we expect). I think your argument could even be taken a step further in that "human-centric" or "living" software may not even be possible, given that software, in contrast to built environments which go back 10000+ years, doesn't have a "timeless" aspect to it. Like, how many strip mines, factories, power plants, logistic networks, etc. are all necessary to sustain our computing lives, and would this fit into the the "timeless way" referred to? I imagine if software was to reach a "timeless" status, existing in some sort of equilibrium in human society for thousands of years, and assuming this equilibrium is at some level of scale smaller than what exists now, I imagine something like Emacs being what a certain class scholars would use, mainly for specialized calculations that other societies have valued (e.g. astronomical, calendrical, bureaucratic).
- zenoprax 2y agoChristopher discusses this problem in architecture too. [~45 minutes in](https://youtube.com/watch?v=98LdFA-_zfA&t=2593s&pp=ygUhY2hyaXN0b3BoZXIgYWxleGFuZGVyIHByb2dyYW1taW5n https://youtube.com/watch?v=98LdFA-_zfA&t=2593s&pp=ygUhY2hya...) he talks about how to change law, institutional norms, and so on to make it possible for living structures to emerge. I don't know what that would look like for software but in another talk he was bemused by the narrow-mindedness of programmers who only saw the value of A Pattern Language as a mechanical tool rather than as a way to create a more beautiful world.
- nradov 2y agoBeauty is a nice luxury but most customers won't pay for beauty. Or they disagree on what it means.
- zenoprax 2y agoI agree. Architecture != Engineering It's easy for the common person to see and appreciate a beautiful city/building/room so a market for "beauty" is possible. I don't think computer software will be ubiquitous enough to achieve that; beauty is possible, just not pursued.