13

I am new to smart contract development and I really want to understand how it all works, and start programming smart contracts.

I don't care for JavaScript syntax, but I love Python. I know Serpent is outdated, so should I learn Viper, or learn Solidity?

tshallenberger
  • 542
  • 3
  • 10
SK333LA
  • 131
  • 1
  • 3

2 Answers2

10

It depends on your motivation for learning smart contract development.

If you want to be employable as soon as possible, or use the most widely supported language, and therefore the most documented and (relatively) stable tools, use Solidity. The frameworks, community, and resources will help get you up and running very quickly.

If you like to tinker with a language, and don't mind writing much simpler, but more auditable/secure smart contracts in a language WITHOUT the features, documentation, and community support that Solidity does, use Vyper.

In support of Vyper, a lot of the features that were stripped were in order to enhance auditability. You see, you should strive to make smart contracts as simple and readable as possible, because these contracts can't change, and minor flaws can spell financial disaster on a massive scale.

Here is a link to the Vyper Github for more information.
Here is a link to Solidity documentation.

Here is a good reddit post with more people discussing the merits of both Solidity and Vyper.

tshallenberger
  • 542
  • 3
  • 10
1

You really said the gist of the answer yourself. Solidity has the most support right now, but Viper sounds like it has a decent amount of core support so will likely gain some traction going forward. It is very Python like (you even name files with the extension .v.py) so it's probably what you'll want to learn. I'd definitely suggest learning Solidity though, since it's the most popular and has the most tooling/support so far, but you should be okay focusing on Viper.

natewelch_
  • 12,021
  • 1
  • 29
  • 43