The logic of a program is often simple compared to the complex machinery that must be built up around it to support its existence.
For example, to put a button on the screen I need:
- an operating system
- graphics drivers
- a user interface library
- a programming language
Most of the time, the complexity of a program isn't the algorithm, but the machinery to display and layout the information to the user in a reasonable way, as well as allowing the user to interact with it.
This is why automated layout systems would be amazing.