How hard can it be to program a GPU?

GPUs can deliver great performance, but they are difficult to program. However, tools are becoming both easier to use and more sophisticated, so programming GPUs is not as much of a black art as it used to be.