> programming is our way of encoding thought such that the computer can help us with it.
I really liked this. But I think we're encoding work, not thought.
If I could add to the list of hard problems: cache invalidation, naming things, encoding things.
I think the problem in a lot of cases is that the language came first, then the problem/domain familiarity comes later. When your language lines up with your problem, it's just a matter of implementing the language. Your algorithms then don't change over time, just the quality of that DSL's implementation.
I really liked this. But I think we're encoding work, not thought.
If I could add to the list of hard problems: cache invalidation, naming things, encoding things.
I think the problem in a lot of cases is that the language came first, then the problem/domain familiarity comes later. When your language lines up with your problem, it's just a matter of implementing the language. Your algorithms then don't change over time, just the quality of that DSL's implementation.