There are two kinds of composition - object composition and function composition:
- object composition - way of combining simple objects into complex ones.
- function composition - way of combining simple functions to build more complicated ones.
It doesn't encourage developers to build large object heritage, so applications aren't complex like enterprise Java apps. We limit the future predition to minimum.