Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
A good design communicates the intended use of an object. In the physical world, this communication is accomplished by "affordances", as discussed by Donald Norman in "The Psychology of Everyday Things". Programming languages also have affordances, and they influence the kinds of solutions we develop. The more languages we know, the more we "expand our design space" so that we can come up with better solutions to the problems we face every day. Help us caption & translate this video! http://amara.org/v/FG2F/
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In this presentation at the MountainWest RubyConf 2014, Randy Coulman discusses the concept of affordances in programming languages, which influence the design and usability of software. He draws parallels between physical affordances, as described by Donald Norman in his book "The Psychology of Everyday Things," and how they manifest within programming languages. Coulman emphasizes that programming languages offer different affordances that can shape the solutions we develop. Key points covered include: - **Definition of Affordances**: An affordance is a characteristic of an object that suggests how it should be used. This concept is crucial in both physical design and software interfaces. - **Examples of Poor and Good Affordances**: Coulman shares examples from everyday life, like confusing bus doors and intuitive escalators, illustrating the importance of clear communication in design. - **Affordances in Programming Languages**: Languages like Smalltalk and Ruby have unique design affordances that change how programmers create solutions. For example, Smalltalk's named constructors and multiple block handling provide different affordances compared to Ruby's approaches. - **Influence of Language on Thought**: Drawing from the Sapir-Whorf hypothesis, he suggests that programming languages influence the way developers think and solve problems. - **Resource Management in Different Languages**: Coulman contrasts C++'s deterministic destructors with Ruby's garbage collection and demonstrates how to manage resources effectively in both languages. - **Learning New Languages**: He encourages programmers to learn new languages to broaden their understanding of problem-solving methods and design patterns. Coulman concludes by reiterating that knowledge of diverse programming languages can significantly enhance a programmer's creativity and problem-solving skills. By exploring various affordances, developers can improve software design and functionality.
Suggest modifications
Cancel