For the first, I would like to have something which for now is still in the research phase and is being released bit by bit to the public.
For those not familiar with Cardano (or the blockchain space), this is a new platform being developed by a company called IOHK (Input Output Hong Kong), founded by Charles Hoskinson and Jeremy Wood. I will write a bit later a more detailed article about what is the Cardano project, what are the different research stream that the company is following and why all this thing is of any interest.
For today, I want to focus on Plutus, the primary language that is being developed for Cardano, and why this is such a big deal compared to what exists on the market for now.
So, why is it a big deal you’ll tell me? Why should we even bother with all that, a new cryptocurrency/programming language/community. That’s kind of funny because you could have this conversation about pretty much anything in the IT world and no-one ever agrees on what are the best tools, and you ofter end up in situation where people will use unadapted tech for the job, just because “there are people on the market which I can get for cheap”.
One of the most obvious example for now in the financial sector is Python. Nice programming language to write quick and dirty code, prototyping things, and being able to deliver quickly, but God…. it is such a pain to develop with it. The language doesn’t provide any help (not even talking the IDE/autocompletion feature almost absent, but still bringing more help than its type system). The annoying thing is that you know that your code is syntactically good only when you run it. Great for developing large scale system which carries lots of money… Aside of this, you have programming languages such as OCaml and Haskell which are used by a much smaller community, because less people know it, because you have to go outside of your confort zone, learn new things, and stop waiting for everything coming down on you by magic.
OK, let’s stop the whine here, and let’s go back to the problem. Once upon a time, one guy dropped on the community something which still runs 10 years later, called Bitcoin. Looking at the tech, it is not inventing anything exotic, but he had the brillant idea to put different cryptographic primitives all together to create a system able to generate scarcity, and to give value to digital data (something somewhat counter intuitive when you thing about it, which might be a reason why it is hard to get it mainstream maybe? Hard to understand why you can trust it without doing some research first).
Then came Ethereum (the platform that nowadays every ICO are forking/creating tokens on, because hey! Much easier to fork something that works and pretend you’ll change the world thanks to the millions you are raising through it, rather than actually innovating, which requires a bit more brain). The great thing about Ethereum was the ability for implementing was are called smart contract. Those thing are not much different than a stored procedure on a SQL database, except that they run on a decentralised database. This was cool, because Bitcoin didn’t enable you to do complicated things, and the scripting language used on it is very primitive. Try to build quickly IT software with just assembly language available to you, so much fun 😀
The other cool feature with Ethereum is Solidity, something which enabled you to loose millions by magic because of some funny behaviour of the platform that of course, most of those ICO tech genius weren’t aware off. When you can’t be 100% sure that the 30 lines of code you wrote for your contract behave well, because the language itself isn’t well designed, how can you pretend that the 100s of lines you wrote for your product are safe to use by millions? (hello DAO and Parity)
I am not being ungrateful for all the work poured in Ethereum, it brought a lot to the community, enabled to quick of the researches on DLT technology. But it should be seen as what it is, an experimentation environment, a proof of concept that the tech can work – not a fully industrialised system that can be used by entier parts of the economy.
Using such an unstable system is what leads to forks, because founders want to save their ecosystems, and to new products such as EOS or BCH, developed through heavy marketing. If you’re a little curious, go and check out some solidity code – you can feel that code and features have been added over time on the language, and you end up with the felling that it is “dirty”.
Ok, thank you Matt you’ll say, but what is the big deal with Plutus in this case? Just pay people which know how to write in Solidity and problem solved.
Plutus has been written by some of the people involved in the creation and the design of Haskell, which inspired then tens of other people when it comes to language design. That how for example you end up with things like Rust, forcing the dev to actually write complex code in a good way, while the same would be just a pain in C++ (fearless concurrency, using part of the features functional languages are using, easy dependency management to give a few).
Those guys are genius, expert in their domain and know their shit. I would immensely trust more these people than a college drop out, when it comes to design something which requires such great piece of attention.
Let now dive into what is Plutus by actually looking what IOHK release about a week ago.