pragma solidity 0.4.17; contract Hello { function world() pure returns(string) { return "Hello world"; } }

Afterwards, unlike traditional programming where you run a script or compile and run an executable, the process is a little different. The developer:

Pays the gas fees and submits the contract’s creation Waits until his transaction is verified. The contract is now considered deployed and the contract’s address is returned.

Users now can make calls to the functions of the contract by sending specially crafted transactions to the deployed contract’s address.

This is a “pure” approach (as in not requiring any extra software, just raw data submitted as a transaction). In reality, higher-level approaches are being used such as libraries like web3 (available for Java, Python and Javascript). In addition, development frameworks such as Truffle and Embark exist which automate parts of the deployment and testing.

However, they each require specific configurations per project and developers first need to familiarize themselves with the framework’s features before utilizing its full potential. This makes it very complex and time-consuming for your average DApp developer to actually deploy their applications.

Adding to that, there are currently serious limitations with the Ethereum network that make the deployment of commercial-scale applications inefficient.

High gas costs due to contracts’ complex operations make creating large scale applications like a decentralized Facebook or Twitter infeasible. Currently a simple Ethereum Transaction costs 21,000 gas which translates to roughly $0.13 per transaction (currently the rate of ETH to USD is $321). A call to a smart contract function which involves storing data to the blockchain such as a tweet can cost more than double that amount.

Imagine millions of users tweeting daily on a Decentralized Application — how much money would be “burned” in transaction fees?

Also, slow confirmation times are not to be forgotten. Ethereum’s 15 second block times are not enough for an application that expects to scale to millions of users (even though they are faster than other blockchain implementations).

As another example, think of a chatting application which requires waiting 15 seconds for your messages to get delivered while also costing you $0.25 per message.