Why is this important? Well, lets imagine a dice game. If on a traditional server, the program can cheat and give an unnatural edge to the site-owner. With ethereum programs, you can look at the source and know that said dice program is 'fair'. At the same time, from the perspective of the programmer, the blockchain ensures the users can't cheat you, either.
Now this sounds cool, but I can say from first hand experience that this is actually kinda trash. Last I looked into this (around October), programs were limited to a very low number of clock cycles before the program cancelled out.
How long a program would be too long? Through experimentation I found that a program more than about 30-40 lines of their C-like language would regularly hit the limit. What happens when you hit the operations limit? the program rolls-back without any effect, eating your transaction fee. Now, you can pay for more operations, but there is a limit. Even with the max number of operations you can't do too much. You can store values on the block chain, but any write or update takes up an substantial amount of 'gas' (the unit of currency for computation and storage).
So to imagine the limits, their 'global computer' acts like a coin-op machine where each quarter gets you 40-50 bytes of storage OR maybe 500 clock cycles on a virtual CPU. But, if the program tries to use more than a quarter, everything is rolled-back and your quarter is gone. (There is (last I checked), no way to know if your program will go over. Just trial and error).
Not only that, but (last i checked), the programs were compiled to a bytecode and there was no dissembler. Meaning that if someone wants to verify a program, they need the exact source code and exact compiler the dev used, and must MD5 the results.
Beyond that, there isn't really any good testing tools. Last i checked, the only way to run a program is to deploy it. So, you have to setup your own private chain to test on and continuously deploy and wait and test. There was a way to sort-of put debug prints in your program, but remember how I mentioned that a program that fails rolls-back? Well, it won't output anything either. And there were operations (some undocumented) that would simply crash the program. Index-out-of-bound? Silently crash program. AND the act of debug-printing would take up valuable storage (pushing your program over the edge of the limit).
In summary, the 'global computer' is so limited to be practically useless and the development process is (currently) a fate worse than hell.
/rant