End-User Programming vs Programming

  • one take at this is programming as a profession vs end-user programming as moldability of existing systems, with this lens:
    • not everyone should be able to make a living from programming, but:
    • everyone should be able to nudge their tools into the right direction if needed though
  • another take at this is programming as a profession vs programming as a tool for understanding dynamic systems (Simulators, Understanding Through Building), with this lens:
    • again, not everyone has to be a professional software engineer, but:
    • there are people who would benefit from being able to build dynamic systems to learn, understand, and act on them - programming here is a dynamic-modeling tool
  • related to: Bicycle for the Mind, Programming Tools and People's Needs

If programming means writing step-by-step recipes as has been done for the past 40 years, however, then for most people it never was relevant and is surely obsolete. Spreadsheets (...) give strong hints that much more powerful styles are in the offing for novices and experts alike. Does this mean that what might be called a driver-education approach to computer literacy is all most people will ever need-that one need only learn how to "drive" applications programs and need never learn to program? Certainly not. Users must be able to tailor a system to their wants. Anything less would be as absurd as requiring essays to be formed out of paragraphs that have already been written

— Computer Software - Alan Kay

As a small aside (slash ramble), "programming" is in quotes, because I really don't like that word for describing this sort of work. I have some early illegible thoughts about this in End-User Programming vs Programming note, but the gist of it is that what I've been after in this research track is "programming" as a tool for understanding, and working with, dynamic systems same way as a numerals and mathematical notation are tools for working with mathematical ideas. It now seems to me that a lot of Future of Coding work (including most of my own!), is about making lives of "expert symbol manipulators" easier which is definitely worthwhile but this year I started to understand that there's a lot of value in making "working with dynamic systems" accessible to everyone, and that might need another approach than iterating from where we are right now.