AI-powered
podcast player
Listen to all your favourite podcasts with AI-powered features
The book explores the idea of task-specific programming languages that would allow end users to freely write their own applications.
The book discusses the importance of visual frameworks that would provide a user-friendly interface for creating and manipulating applications.
The book emphasizes the need for collaboration between users in the process of creating and modifying applications.
While the goal of end user programming is to empower users to create their own applications, limitations and constraints still exist, and the role of programmers in enabling such capabilities is crucial.
End user programming is most relevant when users need to use a computer to manipulate digital information in some direct way. This includes tasks like writing in a word processor, calculating in a spreadsheet, creating models in CAD programs, or creating entertainment products like games or videos. End user programming is most valuable when it helps users accomplish important tasks in the real world, rather than focusing on the computer itself.
There are two main perspectives on programming: those who are interested in computers as a thing in themselves and those who see programming as a means to accomplish a task. End user programmers fall into the latter category, as they are focused on getting something done and are less concerned with the computer itself. This distinction is important when designing programming tools and systems.
Formal languages play a significant role in end user programming. They provide a structured and prescribed form for communication, allowing effective conversation between users and computers. While conversation alone may not be sufficient for programming, formal languages provide a way to effectively convey tasks, instructions, and goals to computers. These languages enable users to interact with computers and achieve desired outcomes.
Conversation alone may not be the ideal medium for programming. The complexities of conversation, such as turn-taking and repair, and the reliance on context make it challenging for computers to understand and respond appropriately. While conversational interfaces like GPT have shown promise, they still lack the contextual understanding and specificity needed for certain tasks. Formal languages, on the other hand, provide a clearer and more precise way to communicate instructions and achieve tasks.
The podcast episode emphasizes the importance of focusing on universally true elements in programming. It suggests that instead of chasing after end user programming as a specific goal, it is crucial to understand the fundamental aspects of human-computer relationships and the role of computers. The episode highlights the need for a paradigm shift in programming that goes beyond simply changing syntax or user interfaces, but rather involves revisiting the concepts and cognitive processes involved. It argues that a more radical and diverse approach is required to achieve true end user programming, incorporating different ways of thinking and conceptualizing programming.
The podcast discusses the challenges in achieving end user programming. It acknowledges that while there are efforts to introduce programming in education, simply teaching programming in schools is not the complete solution. The episode points out that learning programming for specific tasks or jobs can still be difficult for many individuals, as they often require more traditional programming tools and languages. Additionally, it highlights the difficulty of modifying existing applications or systems due to their closed-off nature. The podcast suggests that in order to achieve end user programming, there is a need for better tools that allow programmers to build tools themselves, while also addressing the social and infrastructural barriers that restrict user customization and modification of software.
This community is a big tent. We welcome folks from all backgrounds, and all levels of experience with computers. Heck, on our last episode, we celebrated an article written by someone who is, rounding down, a lawyer! A constant question I ponder is: what's the best way to introduce someone to the world of FoC? If someone is a workaday programmer, or a non-programmer, what can we share with them to help them understand our area of interest?
A personal favourite is the New Media Reader, but it's long and dense. An obvious crowd-pleaser is Inventing on Principle.
Bonnie Nardi's A Small Matter of Programming deserves a place on the list, especially if the reader is already an avid programmer who doesn't yet understand the point of end-user programming. They might ask, "Why should typical computer users bother learning to program?" Well, that's the wrong question! Instead, we should start broader. Why do we use computers? What do we use them to do? What happens when they don't do what we want? Who controls what they do? Will this ever change? What change do we want? Nardi challenges us to explore these questions, and gives the reader a gentle but definitive push in a positive direction.
Next time, we're… considered harmful?
#### $
We have launched a Patreon!
If, with the warmth in your heart and the wind in your wallet, you so choose to support this show then please know that we are tremendously grateful.
Producing this show takes a minor mountain of effort, and while the countless throngs of adoring fair-weather fans will surely arrive eventually, the small kilo-cadre of diehard listeners we've accrued so far makes each new episode a true joy to share. Through thick and thin (mostly thin since the sponsorship landscape turned barren) we're going to keep doing our darnedest to make something thought-provoking with an independent spirit. If that tickles you pink, throw some wood in our fireplace! (Yes, Ivan is writing this, how can you tell?)
Also, it doesn't hurt that the 2nd bonus episode — "Inherently Spatial" — is one of the best episodes of the show yet. It defrags so hard; you'll love it.
#### Init
#### Main
One meaning of "end-user programming" is about allowing people to build their own software. Another is about modifying existing software, and here are two interesting links related to this second meaning:
sprout.place is a lovely website where you decorate a little virtual space together with some remote friends. It's like a MySpace page mashed-up with a Zoom hang, but better.
Geoffrey Litt is a researcher who has tackled both meanings of EUP, but his work on the second meaning is especially interesting. For instance: he worked on Riffle, which explored the consequences of putting the full state of an app inside a reactive database, which is especially interesting if you consider what can be done if this database is available to, rather than hidden from, the end user.
To the best of our recollection, Jonathan Edwards has advocated for "end-programmer programming" as a helpful step toward end-user programming.
Get in touch, ask us questions, please no more mp3s ahh I can still hear the bones yuck:
https://futureofcoding.org/episodes/066
Support us on Patreon: https://www.patreon.com/futureofcoding
See omnystudio.com/listener for privacy information.
Listen to all your favourite podcasts with AI-powered features
Listen to the best highlights from the podcasts you love and dive into the full episode
Hear something you like? Tap your headphones to save it with AI-generated key takeaways
Send highlights to Twitter, WhatsApp or export them to Notion, Readwise & more
Listen to all your favourite podcasts with AI-powered features
Listen to the best highlights from the podcasts you love and dive into the full episode