abstracting execution with the engine allows us to...
# development
a
abstracting execution with the engine allows us to experiment with APIs for async execution and loads of other things that are usually reserved for programming languages to implement — but the engine is a much smaller piece of code than a language, because we can also lean on python’s dynamism to do some of the heavy lifting (e.g. parsing Gets out of a rule body: https://github.com/pantsbuild/pants/blob/b4e316f4badc2703cea566267886d8b094d0f569/src/python/pants/engine/rules.py#L29)