> "While there is often a component of logic involved [in applying discoveries, patterns, and abstractions from the past] the balance frequently shifts away from pure science and toward something closer to art"
I'd argue that software has a unique structural property here: it's recursive. You write a function that uses other functions, which use other functions. You're always simultaneously using an abstraction and creating one.
Contrast this with physical structures like buildings: floors contain flats, flats contain rooms—each level is fundamentally different. A flat cannot contain a flat. The skills for designing each level are distinct.
In software, that divide is much smaller. The same patterns of thought apply whether you're writing a utility function or architecting a system. Maybe this is why the "art vs. science" tension feels different in our field.
itay-maman•43m ago
> "While there is often a component of logic involved [in applying discoveries, patterns, and abstractions from the past] the balance frequently shifts away from pure science and toward something closer to art"
I'd argue that software has a unique structural property here: it's recursive. You write a function that uses other functions, which use other functions. You're always simultaneously using an abstraction and creating one.
Contrast this with physical structures like buildings: floors contain flats, flats contain rooms—each level is fundamentally different. A flat cannot contain a flat. The skills for designing each level are distinct.
In software, that divide is much smaller. The same patterns of thought apply whether you're writing a utility function or architecting a system. Maybe this is why the "art vs. science" tension feels different in our field.