Today, AFAIK, contracts do not support TCP sockets, which is a problem in my opinion.
Assume you want to create a contract that uses Bitstamp BTC price as input data.
No way to update live data from (for example) Bitstamp.
Sure, someone could create a "Bitstamp data" contract, but he/she will be under no obligation and no interest to timely update it. (esp. because it costs fees to do so)
I wanna discuss if raw TCP (and UDP) sockets is really a must-have, or not, what do you think ?