Why UI programs are hard to create