AI-powered
podcast player
Listen to all your favourite podcasts with AI-powered features
Shaw discusses the distinction between professional software developers and vernacular software developers, highlighting that vernacular developers, who create software in a specific context and have professional training outside of software development, vastly outnumber professional developers.
Shaw challenges the myth that software equals code and highlights the importance of considering software as a system that includes programs, other resources, and the developer's responsibility to users.
Shaw discusses the myth that programs are solely written by professionals and highlights the significant contribution of vernacular software developers who create software using specialized tools and domain-specific knowledge.
Shaw addresses the myth that mathematical soundness and formality are essential for programming languages and suggests that less formal specifications can be equally valuable for effective software development.
The paper also explores additional myths such as the myth of web pages as interfaces, the myth of interoperability, the myth of the software perpetual motion machine, the myth of the modern programming language, and more.
Mathematical tractability is often a focus for programming language researchers, who emphasize generality, soundness, and formal semantics. However, this approach can overlook the needs and capabilities of vernacular programmers. The stack overflow survey shows that not all professional programmers have a college degree, let alone a background in mathematics. Focusing solely on mathematical proficiency excludes a significant portion of developers and fails to recognize the importance of domain-specific languages (DSLs). DSLs, although ad hoc and lacking formal rigor, can be highly useful for specific domains and empower developers with rich constructs tailored to their needs.
DSLs have been overlooked and have not received the same care and attention as general-purpose languages in terms of formal rigor. However, DSLs offer unique advantages for specific domains and deserve equal consideration. Rather than striving for mathematical tractability, researchers should prioritize the power and expressiveness of DSLs while maintaining a level of formal rigor that suits the specific needs of the domain. This ensures that DSLs are inclusive, accessible, and capable of empowering vernacular programmers.
An exclusive focus on mathematical tractability can create a divide between programming language researchers and vernacular programmers. While mathematical rigor and generality are important, they should not overshadow the richness and expressiveness of DSLs. Striking a balance between formal rigor and practical usability is crucial for creating effective programming tools that address the needs of both professional and vernacular programmers.
DSLs should not be seen as second-tier programming languages. They provide invaluable tools for specific domains, empowering developers to work effectively within their context. By embracing the unique characteristics and needs of vernacular programmers, and by striving for a balance between formal rigor and domain-specific power, we can foster inclusive and empowering DSLs that address the diverse needs of the programming community.
Long papers can sometimes be overwhelming and could benefit from more concise and focused editing.
Making a programming language is a task that can be undertaken by anyone with the interest and dedication to learn and explore the field.
The division between vernacular programmers and professional programmers is a myth, as both groups of programmers have similar needs and can greatly benefit from collaboration and understanding.
Programming is not solely a means of employment, but it can also be a passion and a hobby for many individuals who enjoy the creative and problem-solving aspects of programming.
In the spirit of clearly communicating what you're signing up for, this podcast episode is nearly three hours long, and among other things it contains a discussion of a paper by author Mary Shaw titled Myths & Mythconceptions which takes as an organizing principle a collection of myths that are widely believed by programmers, largely unacknowledged, which shape our views on the nature of programming as an activity and the needs of programmers as people and the sort of work that we do as a sort of work, and where by acknowledging these myths the three of us (Mary Shaw primarily, and by extension Jimmy and I, those three people, that's it, no other people appear on this podcast) are able to more vividly grip the image of programming with our mind's eye (or somesuch) and conceive of a different formulation for programming, and in addition to these myths this paper also incudes a number of excellent lists that I take great pleasure in reading, beyond which I should also note that the paper does a job of explaining itself and that hopefully you'll find I've done a similar job, that's the spirit, please enjoy.
Links
$ patreon.com/futureofcoding — I've recently changed it so that there's only 1 instance of the INTERCAL tier available, so if you're interested in those perks you'd better hop on it quick before nobody else does!
Nobody remarked on these silly links last time, so this time I'm drawing more attention to them:
https://futureofcoding.org/episodes/069
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