I. Linguistics

  • We are programming languages - they can certainly be compared to natural languages
  • Regional dialects are crazy. Can I get a coke? Pop is delicious.
  • Jargons and cants differ not in grammar but in vocabulary. Hmmm.
  • Creoles and pigeons differ in both grammar and vocabulary from their parent languages
  • Getting back to ruby, are domain specific languages (DSLs) really languages? Or are they dialects, or something else?
  • DSLs are really just about changing the words we use
  • Linguistic determinism is crap
  • The eskimos do not have 33 billion words for snow. For one, “the eskimos” is not one group of people with one language. Additionally, there may be lots of snow-related words in any given native alaskan language; however, there are lots of snow-related words in English as well.
  • Tests are testing something that is already there. Specifications come before something else - this leads you in the right - or at least the test first - direction

​II. Refactoring

  • He showed a bit of shit code to get flight information from kayak and refactored it into a class with a more readable API
  • Use symbols instead of strings to avoid using quotes everywhere
  • Avoid parens when that makes things more readable
  • We will never model the domain exactly, so there is always room for improvement

Cool talk!