Github is great and all, but it's still a proprietary organization (remember Sourceforge?). How about an open-source github -- where all of the computation and storage runs on a distributed network? The data for all repos could be stored on a blockchain database. MIners will perform execution that is normally performed by webservers today.
Like Bitcoin, your own PC could help run the blockchain, your company could run its own miner servers, or third-parties might run miners as a service for you.
Companies could write their own proprietary miners, or certainly, volunteers would build open-source miners. Communication between the blockchain miners and end-user requests (or other miners) would be made through (micropayment) transactions.
I want a database server (NO-SQL or relational, preferrably both!) that can read and write directly to a defined blockchain. You could put a webserver in front of that database server and build apps that serve web applications in exchange for bitcoin.
When combining these web services with easy public/private key management (aka a blockchain wallet), entirely new concepts of computer applications will be written.
With a blockchain/micropayments application network, wikipedia, social networks, even search engines could be completely open-sourced. Imagine the entire content of The Pirate Bay available to you in exchange for a micro transaction payment, or in exchange for an equal amount of compute and storage work...
Much has been said about the bitcoin blocksize. I don't have an opinion about the matter, but I do know that eventually, there will be some way to increase the transaction speed and throughput of virtual currency. It's only a matter of time before someone figures out how to scale a blockchain database to run faster than 7 IOPS, which is the approximate speed of the bitcoin database right now. Realize that the 8086 CPU ran at 5mHz. Technology will improve, and bitcoin will get faster and more robust.
Etherium and Storj sound promising, but in my opinion, they are solving the wrong problem. We don't (yet) need a programming language running on the blockchain - we just need to build compute and storage abstractions on the blockchain. We will also need a few things like miner reputation, and really good miner discovery (peering) capabilities. With good enough peering, you could run blockchain applications on a mesh network...