Language Games - Eli Holderness - NDC Sydney 2024

Explore the intricacies of language and how it influences the way we communicate, both in and out of code. Learn how to apply linguistic principles to improve communication, collaboration, and code quality in software development.

Key takeaways
  • Language is a game with rules that we must abide by to communicate efficiently.
  • Humans have spent as long as they’ve been human trying to communicate, and it’s a fundamental part of being human.
  • When communicating, we use a process called signification, where we use words to represent concepts.
  • The way we use language is influenced by our context, and this context is shaped by our culture, history, and experiences.
  • When trying to communicate, we must consider the maxims of quantity, quality, relation, and manner, which are the fundamental rules of language.
  • The maxim of quantity suggests that we should be as informative as possible while avoiding unnecessary information.
  • The maxim of quality suggests that we should only say things that we reasonably believe to be true.
  • The maxim of relation suggests that we should be relevant and avoid digressing.
  • The maxim of manner suggests that we should be clear and avoid ambiguity.
  • When writing code, we must consider these maxims and use language that is clear, concise, and easy to understand.
  • The way we write code is a form of communication, and we must consider the audience and the context in which the code will be used.
  • The use of domain-driven design can help to improve communication between stakeholders and developers.
  • The use of behavioral-driven design can help to improve the understanding of the requirements of a system.
  • The use of type checking systems can help to improve the quality of the code and reduce the likelihood of errors.
  • The use of testing frameworks can help to improve the quality of the code and reduce the likelihood of errors.
  • The use of code reviews can help to improve the quality of the code and reduce the likelihood of errors.
  • The use of continuous integration and continuous deployment can help to improve the quality of the code and reduce the likelihood of errors.
  • The use of automated testing can help to improve the quality of the code and reduce the likelihood of errors.
  • The use of code analysis tools can help to improve the quality of the code and reduce the likelihood of errors.
  • The use of code refactoring tools can help to improve the quality of the code and reduce the likelihood of errors.
  • The use of code search tools can help to improve the quality of the code and reduce the likelihood of errors.
  • The use of code completion tools can help to improve the quality of the code and reduce the likelihood of errors.
  • The use of code inspections can help to improve the quality of the code and reduce the likelihood of errors.
  • The use of code reviews can help to improve the quality of the code and reduce the likelihood of errors.