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?


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.

  • 1
    I like the answer, but I'm pretty sure it's vyper – glowkeeper Jul 30 '18 at 14:43
  • How true it is now? Should I go for it? – Volatil3 Aug 28 '18 at 16:49
  • It is "Vyper": github.com/ethereum/vyper (but the above GitHub link to "viper" does redirect to the proper spelling - Ethereum developers clearly anticipated the misspelling!) – drkvogel Jul 24 '19 at 15:35
  • @drkvogel I've updated spelling, and the Github link. – valkn0t Jul 24 '19 at 18:02

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.

Not the answer you're looking for? Browse other questions tagged or ask your own question.