Indeed. And much like my opinions on imperative vs. FP, I have now come around and no longer like logistics drones very much. :P
In the last year of playing Factorio I've learned that it's much more efficient to build your base in units of several factories that are directly connected to each other and balanced such that each factory is consuming inputs at exactly the rate the producers are producing them. Within these units, you can often avoid having either belts or drones, because you're moving items directly between neighboring factories.
With this approach, the problems of flow control, congestion, etc. are vastly reduced (they only matter between units, not within a unit). If you're using drones, you need far fewer of them. But honestly I usually prefer to just use belts because it's really hard to understand and debug throughput issues in logistics networks (... much like Haskell).
I'm pretty sure there is a programming analogy here but I'm not going to think too hard about it right now. :)
Nah, you've just re-discovered Just In Time and the Theory of Constraints. You've read "The Phoenix Project," right? Go read "The Goal" by Eliyahu Goldratt. TPP was based on The Goal, and reading both illustrated how many of the solutions that software development experts have landed on to improve productivity and the chance of a successful project are the same as the manufacturing problem solutions that manufacturers landed on twenty to thirty years ago.
I have a degree in logistics, but I work as a scripting-heavy systems engineer. My hobby is home construction, especially building systems like drainage planes, vapor management in walls, and structured wiring and plumbing. It's literally all the same thing with almost identical sets of problems.
In the last year of playing Factorio I've learned that it's much more efficient to build your base in units of several factories that are directly connected to each other and balanced such that each factory is consuming inputs at exactly the rate the producers are producing them. Within these units, you can often avoid having either belts or drones, because you're moving items directly between neighboring factories.
With this approach, the problems of flow control, congestion, etc. are vastly reduced (they only matter between units, not within a unit). If you're using drones, you need far fewer of them. But honestly I usually prefer to just use belts because it's really hard to understand and debug throughput issues in logistics networks (... much like Haskell).
I'm pretty sure there is a programming analogy here but I'm not going to think too hard about it right now. :)