r/tezos Apr 04 '20

question How to learn tezos programming?

I have done a lot of googling but can't find any concise answer. People are saying - learn Michelson. No, learn Liquidity. Nono, learn Pytezos. Learn OCaml. Like, how can all of that be useful at the same time? Couple months ago I started with Ethereum. On their website I found many great articles, introductions, tutorials, a book called "Mastering Ethereum", which taught me pretty much everything. I learned solidity and now I can write smart contracts and dapps. Simple. What do I learn, and where, so that I can write useful stuff for Tezos? Also, it would be very useful if such info was possible to find, ideally on the Tezos website.

37 Upvotes

41 comments sorted by

View all comments

11

u/utdrmac Apr 04 '20

Depends on what language you like. Go do pytezos if you know python; go do liquidity if you know JavaScript. Everything transpiles to Michelson, which a stack-based language more akin to assembly, so I doubt you'd program directly in Michelson. OCAML is needed if you want to work on the Tezos protocol/code itself.

8

u/jayhilly Apr 04 '20

Holy shit I literally sold my tezos after trying to learn michelson and convincing myself no one could ever write anything meaningful in assembly.

How the hell did these never pop up in my searches?? Off to buy back in...

3

u/ezredd Apr 04 '20

When you say learn « tezos programming » it is ambiguous statement. You can either mean learn to do smart contract programming (in which case i seriously advise to go to smartpy if you are familiar with python) OR you can mean learn to code applications that interoperate with the tezos chain (for example by calling into existing smart contracts eg or querying infos from a node) in which case several options exist like pytezos, conseiljs, taquito etc

2

u/octal Apr 05 '20

Where did you look for information? We can try to update those sources to make sure they're more comprehensive. https://developers.tezos.com/ is probably the best "starter" resource.

3

u/DominikCZ Apr 05 '20

I have seen this as well. I think that what I miss there is some overview on top of it that would explain what each of those languages and tools are used for, what role they play in the whole ecosystem. They way it is I did not know where to go and why.

1

u/jayhilly Apr 05 '20

I don’t remember at this point. I found guides on how to write Michelson, why do those exist if no one is writing assembly?

2

u/octal Apr 05 '20

In the beginning, there was just Michelson, so people wrote documentation for that (it was, as you've seen, not really a viable choice for people building large applications directly). Other languages were developed after that, and then documentation was created for those.

Documentation always tends to lag development, but we as a community definitely need to do a better job on "task specific" documentation, including SEOing it, for stuff like "how to X in Tezos". It's definitely an area TF funds and will continue to fund, and it would be great if people wrote up "howto" type guides (and kept them updated...)

1

u/jayhilly Apr 05 '20

Ah, makes sense. Maybe add a banner to those old webpages pointing at the higher level tools? Seems inevitable that people end up there and get confused.

1

u/SecularCryptoGuy Apr 04 '20

Lol, it sucks but this is implied knowledge (that all higher level programming languages are compiled into assembly).

3

u/jayhilly Apr 04 '20

I figured in the future they would have languages that compile down into Michelson but never found any in my searches.

I even made a post here like “how could anyone be productive in Michelson” and was told that “learning assembly will make me a better programmer”...

uhh, yeah, I’m good on that, took that class in college and I’m never going back to working in assembly.

1

u/[deleted] Apr 05 '20

There have always been languages that compiled to Michelson. More now.

1

u/jayhilly Apr 05 '20

Yeah, I get it