Blockchain applications
Looking from outside, blockchain applications are not so much different from classical web applications. Only one, but very significant difference lies in the way, how the data and information are stored in these applications.
Whereas in the classical web applications all the user data are stored on the central server, in the case of blockchain applications these data are stored in a distributed network of thousands of computers. All the data is therefore generally thousand-times backed up, and it is nearly impossible to manipulate with them or change them without permission.
Right this characteristic, that you can rely on - "the data already stored cannot be erased" - together with the free access to this data, gives the opportunity for a lot of applications to be born, that couldn't be created on "classical" internet.
First, and still the most widespread application of the blockchain technology are cryptocurrencies. The added value of the blockchain in this case lies in the distributed data storage regarding who owns how much ("account balances"). Thanks to this solution the currency is getting rid of the centralised element, which has the highest power over the currency and needs to be trusted.
However, cryptocurrencies are not the only application of blockchain, they are just the first one. Nowadays there is a rapid development in the concept of blockchain platforms built for decentralised applications. Speciality of decentralised applications is that after their deployment, applications live their own life - they are not owned by anyone. These platforms are equipped with their own programming language, therefore they allow for almost infinite possibilities of using blockchain technology as a distributed data storage.
Currently the most widespread blockchain platform is Ethereum, which offers a very easy-to-learn programming language Solidity, and therefore allows almost anyone to create their own applications. All the here presented applications are created on the Ethereum network.
Interactions with blockchain applications
Applications that use blockchain as a data storage are only in their early days and cannot be encountered very frequently. Therefore their usage and interactions with them nowadays is not easy at all for an average user. Current web browsers do not natively support the communication with blockchain, which is only possible after downloading browser extensions.
One browser extension communicating directly with Ethereum blockchain is Metamask. It is currently supporting Chrome, Firefox and Opera browsers. This extension is freely available at metamask.io, where you shouldn't miss the spectacular orange fox. Because it is necessary for all the interactions with applications listed here to have Metamask installed and correctly set, I will dedicate a short video to it:
Development environments and libraries
Even in this early stage of development, Ethereum platform already has a multiple of open-source development environments, which make creating applications much easier. The most basic one is Remix, which offers an editor to write code in the form of smart contracts and a possibility to interact with them. Superblocks environment is very helpful in creating complex solutions, apart from writing smart contracts it offers a tool to create a user interface that communicates with that blockchain application. The majority of applications listed here were created using Superblocks. For a really serious development, Truffle environment can be recommended. It has a lot of advanced features at disposal, including automated testing of smart contracts.
Solidity is no exception among other programming languages that it is also equipped with libraries for specific use-cases that consists of community-vetted code. In the are of smart contracts, usage of these libraries is even more beneficial, because once deployed contracts cannot be changed, therefore any mistake can be very costly. The most extensive and most used library for programming on Ethereum is OpenZeppelin, which makes creating a secure smart contract much easier.
Disadvantages of blockchain solutions
Perspective of anything is never complete and unbiased without mentioning the disadvantages as well. Blockchain applications today are suffering from numerous problems, which need to be discussed, in order to improve them as early and as best as possible.
At first it must be mentioned, that considering today's state of blockchain development, only a narrow set of applications can be successfully utilised on the blockchain. For the vast majority the use of blockchain makes no economical or practical sense. This is because blockchain as a data storage is a very expensive and very slow solution in comparison with database services for example from Google or Amazon. Every information update or writing data to the blockchain connected with non-zero fees and even on the fastest platforms the writing of data takes an order of seconds - this is far away from ideal user experience.
One big obstacle for a bigger adoption is also the lack of public recognition of this technology, and together with bad infrastructure and difficult-to-deal-with user interfaces it means that public has little interest on these services. In the future there would be the same need for developers as for popularisers of this technology. This web is trying to accomplish both.