
Future of Coding
Myths & Mythconceptions by Mary Shaw
Episode guests
Podcast summary created with Snipd AI
Quick takeaways
- There is a distinction between professional software developers and vernacular software developers, with the latter vastly outnumbering the former.
- Software should be considered as a system that includes programs, resources, and the developer's responsibility to users, rather than just code.
- Vernacular software developers, who create software using specialized tools and domain-specific knowledge, make a significant contribution alongside professional developers.
- Less formal specifications can be equally valuable for effective software development, challenging the myth that mathematical soundness is essential for programming languages.
- DSLs (domain-specific languages) offer unique advantages for specific domains and should be prioritized alongside general-purpose languages.
- Striking a balance between formal rigor and practical usability is crucial to create inclusive and empowering DSLs that address the diverse needs of the programming community.
Deep dives
Vernacular developers outnumber professional programmers
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.
Myth: The code is the software
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.
Myth: Programs are written by highly skilled professional programmers
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.
Myth: The myth of mathematical tractability and soundness
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.
Other myths not covered in this summary
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.
The Myth of Mathematical Tractability
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.
The Importance of Care and Attention in DSLs
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.
The Problem with Focusing on Mathematical Tractability
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.
Promoting Inclusivity and Empowerment in DSLs
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 are not always good
Long papers can sometimes be overwhelming and could benefit from more concise and focused editing.
Making a programming language is not limited to an elite few
Making a programming language is a task that can be undertaken by anyone with the interest and dedication to learn and explore the field.
Vernacular programmers and professional programmers have more similarities than differences
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 just a job
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!
- There's also a video, though I haven't watched it.
- Claude Shannon would have something to say about revealing information.
- Top 10 Hits of the End of the World is an album by Prince Rama. Listen to it as loudly as you can on Bandcamp, Spotify, or Apple Music.
- Val Town is the new startup by Future of Coding community founder Steve Krouse
- Ivan recently took a job at Ink & Switch on the "Ink" research track.
- Programmer Bums, or, rather, Computer Bums
- Limmy's Wa
- Retool
- MythBusters
- The Flop House's Final Judgements: Good-Bad, Bad-Bad, Kinda-Like
- CRDT
- Data
- Robust-First Computing is an approach championed by the hero Dave Ackley, and I have a well-informed hunch that you'll be hearing a lot more about it in future episodes.
- The T2 Tile Project is another Ackley joint that, perhaps, works as a wild example of what Mary Shaw means when she talks about an "execution ecosystem".
- Devine's talk at Strange Loop: An approach to computing and sustainability inspired from permaculture
- MUMPS (the medical thing, not to be confused with mumps the medical thing) is used by Epic (the software company, not to be confused with Epic the software company).
- The Glass Cannon podcast network.
- Lu's SPLASH talk Cellpond: Spatial Programming without Escape
- The Turing tarpit
- Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire by Erik Meijer, Maarten Fokkinga, Ross Paterson.
- Richard D. James is the same person as Richard P. (Peter) Gabriel, right?
- Similarly, see Neil Armstrong's work on Erlang (which is popular in telephony, right?).
- The Witness is not going to appear in our show notes.
- Jack Rusher. Jack Rusher? Jack Rusher!
- TrainJam
- Gary Bernhardt's talk Ideology
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.