> That's how I view emergence too: there's no new behavior suddenly appearing when your system is complex enough, behavior that couldn't be predicted from looking at the pieces - it's just too much work to deal with pieces directly. The discontinuity we see doesn't exists in the real world - it's caused by the rungs of our ladder of abstraction.

Reductionism relies on dissecting the whole and viewing the parts individually. The fundamental distinction between something that can be reduced (let's call it a collection) and something that cannot (a system), is that when you dissect a system, a fundamental aspect of the system is lost. That isn't to say that said aspect has materialised of its own accord, but that it originates with the relationships between the parts. There is no seat of "car-ness" in a car, and if you were to try to understand a car by looking at the individual parts, you would not be able to unless you could intuit how those parts interact. The difference between an engineered system and a natural system is that in engineering we intentionally attempt to minimise the number of interrelations so that the object can be understood easily from an analytical perspective. In natural systems, the levels of interconnection are much greater; we cannot understand a society by examining each individual in isolation, we have to move up the ladder of abstraction to a level where coherent patterns can be identified. We have to look at the whole.

The thing that reductionism misses out on is non-linear causality. Feedback loops, inherently based in relationships between parts and not the parts themselves, give rise to higher-order behaviour, which brings us the concept of levels of abstraction. The classic idea of reductionism is that if we create the lowest-level model (at this point that would be quantum mechanics, but it could certainly go lower in future), then we can derive all the higher-order models from that. This may be theoretically possible (purely in the philosophical sense), but it's just not practically useful. The position of reductionism is that this is the only (or perhaps primary) valid way in which models can be constructed.

> The way I see it, casual models are almost completely abstract - they have only a coarse relationship with the real world. A self-correcting feedback loop can be analyzed in terms of its conceptual components, which are mathematical in nature - but you won't get from here to predicting the behavior of a real-world thermostat until you start plugging in physical models.

This is true of all models - "all models are wrong, but some are useful", "the map is not the territory", etc. Modelling reality inherently involves reducing it to the parts we're interested in, because a model of reality in its entirety would be the same size as reality itself, and thus unrepresentable (even if we could capture the total state of reality). A basic equation for Newtonian motion excludes things like drag, the variability of gravity, turbulence and so on. The closer we need to get to matching reality, the more factors we need to include until the model transitions from mathematical to a simulation, by sheer necessity. The amount of detail we include depends on what we're trying to do; models are purposive tools rather than descriptions of reality.

I think the name of reductionism does not help when discussing it; to reject reductionism is not to reject modelling, because we cannot operate in the world without models.

I agree that the argument is a philosophical one. The reductionist perspective is one of objectivism; science measures reality, and thus lower-order models are more high-resolution and we can abstract away from a very-high-resolution map of reality by focusing on the details we care about. The emergentist perspective is constructivist; it states that our models are tools that we create in order to interact with our environment but they are not reality itself, and thus you should use the model that is most useful for interacting with the environment based on its predictive capability.

[edit in response to your addendum]

I totally agree that executable models (in essence, simulations) are 1000x better in basically every way than static models. I'm trying to work in this space myself in order to bring these ideas into software development. But I believe that plugging in the numbers is useful precisely because it highlights the qualitative aspects of the model; how different variables are causally related. The temporal (heh) aspect of the simulation highlights how the variables are bound, but the specific values whether they be 1000 or 10,000 units are not the thing you're learning, unless those values happen to be a divergence point in the model.