## brian hayes ### https://www.americanscientist.org/article/cultures-of-code
three cultures: 1. computer science (understand computation) 2. computational sciences (simulate behaviour of science to understand nature) 3. software development (write useful programs)
the focus here is on software development, but other cultures can help understanding what can make it beautiful. this is focus is because in software development the program itself is the product of the labor, not some means.
Michael Mahoney: the agenda of a field is what practicioners agree on what the goal is (with problems, priority, tools, solutions)
the common area of research, or at least the venn overlap is programming languages (central is the question: “what is the expressive power of a language?”)
higher level programming languages are closer to the vocabulary of the problem domain that of the minutiae of the hardware
slogans: - modularity - abstraction - encapsulation - declarative programming - functional programming - oop - design patterns - tdd - agile