29.05.2020

Мови програмування Tezos

Екосистема Tezos пропонує безліч можливостей для розробників, розробників додатків і творців смарт-контрактів.

У 2019 понад 1000 програмістів були навчені розробці на блокчейні Tezos. Освітня, навчальна і дослідницька діяльність триває, а команди Tezos по всьому світу вносять свій внесок в роботу компанії. Tezos Ukraine не є винятком. У 2019 ми провели перший східноєвропейський хакатон, завдяки чому з’явилося кілька сильних команд, що займаються розробкою на Tezos.

В екосистемі Tezos існує безліч мов, і в майбутньому їх буде ще більше. Як пояснив Артур Брейтман в нещодавньому інтерв’ю, саме ядро ​​Tezos побудовано на функціональній мові програмування, і багатьом людям, пов’язаними з екосистемою Tezos, подобається функціональне програмування. Ці люди — гуру мови програмування, і їм подобається створювати нові мови, тому що це те, в чому вони розбираються і чим люблять займатися.

Проте, команда Tezos Ukraine усвідомила що «нетехнічні» новачки в світі Tezos можуть розгубитися через різноманітність доступних мов програмування. Тому ми вирішили присвятити їм базову пояснювальну статтю, щоб розпочати роботу стало набагато простіше.

OCaml — мова Tezos протоколу

Протокол Tezos написаний OCaml — універсальною промисловою мовою програмування з акцентом на виразності і безпеці. OCaml було створено в 1996 році. Ця мова має велику стандартну бібліотеку, що робить її корисною для багатьох додатків, таких як Python або Perl. OCaml також володіє надійними модульними і об’єктно-орієнтованими програмними конструкціями, які роблять її придатною для великомасштабної розробки програмного забезпечення.

OCaml — це безкоштовний проект відкритого ПЗ, керований і підтримуваний Французьким інститутом досліджень в області комп’ютерних наук і автоматизації (INRIA).
На початку 2000-х елементи з OCaml були запозичені багатьма мовами, зокрема, F # і Scala (ще одна популярниа мова в розробці блокчейнів).
Багато провідних проектів використовують OCaml, включаючи Facebook, Bloomberg, Docker, Wikipedia та інші.

Michelson — мова смарт-контрактів в Tezos

Michelson — це абсолютно нова мова програмування, представлена світу Л. М. Гудманом (Артуром Брейтманом) в Білій книзі Tezos в 2014 році. Це функціональна мова програмування з відкритим вихідним кодом, створена для розробки смарт-контрактів Tezos.

Michelson — низькорівнева, специфічна, стекова мова програмування, яка використовується для написання смарт-контрактів в блокчейні Tezos. Michelson було розроблено для полегшення процедури формальної верифікації, дозволяючи користувачам підтверджувати властивості своїх контрактів.

Навіть досвідчені розробники Tezos відзначають, що на перший погляд Michelson — досить дивна мова. В ній не передбачені такі функції, як поліморфізм, замикання чи іменовані функції. Схоже, вона недостатньо потужна в порівнянні з такими мовами, як Haskell або OCaml. З її стеком не завжди легко розібратися і немає стандартної бібліотеки. Але основні переваги полягають в тому, що Michelson — інтроспективна мова і, до того ж, надає читабельний байт-код.

Розробники Tezos хотіли почати з невеликої базової мови, в якій усі впевнені, а також додати функції з хорошими варіантами використання. Насправді, деякі люди пишуть код за допомогою Michelson, оскільки існують інші високорівневі мови, доступні для програмування смарт-контрактів на Tezos. З такими новими мовами, як LIGO, SmartPy, Morley/Lorentz, досвід розробки стає набагато простішим, тому програмісти можуть зосередитися на змісті своїх смарт-контрактів, а не їх реалізації.

LIGO

LIGO — це дружня мова смарт-контрактів для Tezos, яка забезпечує надійну статичну систему типів і просту інтеграцію. LIGO — Polyglot, вона дає можливість писати власною мовою. На даний момент підтримується 3 синтаксиси (мови), і доступна функція додавання власного синтаксису.

PascaLIGO — синтаксис, натхненний Pascal, який надає імперативний досвід розробки.

CameLIGO — натхненний OCaml синтаксис, який дозволяє писати в функціональному стилі.

ReasonLIGO — Синтаксис, натхненний ReasonML, який будує з урахуванням сильних сторін OCaml. Він прагне бути знайомим для тих, хто переходить з JavaScript.

LIGO використовує підхід реплікації структури, що використовується мовами з певної парадигми. Її «упаковано» в контейнер Docker, тому не потребується жодних особливих інструкцій з установки.

Спільнота активно працює над тим, щоб до LIGO було додано нові мови. Наприклад, Madfish Solutions створили компілятор Solidity to Ligo, за що отримали грант фонду Tezos.

Сайт LIGO містить навчальні посібники, документи і всю необхідну інформацію. Також можна перевірити код в LIGO онлайн за адресою:

https://ligolang.org/

SmartPy

SmartPy — це високорівнева мова смарт-контрактів, що дозволяє розробникам використовувати Python для написання смарт-контрактів, які потім компілюються в Michelson.

Користувачі отримують всі переваги Python для перебору структур даних, виклику інших бібліотек і попереднього обчислення параметрів, націлюючись при цьому на потужну, але обмежену мову Michelson.

У SmartPy є чудовий онлайн-редактор з шаблонами, де Ви можете писати, запускати і тестувати контракти.

SmartPy.io — це платформа для розробки в браузері з розширеними можливостями для розробки, тестування та перевірки властивостей смарт-контрактів. Вся розробка відбувається у браузері — від програмування на Python до генерації, тестування та аналізу контрактів Michelson.

Python вважається відносно простою мовою для вивчення, до того ж, вона існує досить давно, що дозволяє SmartPy залучати більше розробників Python до екосистеми Tezos.
Baking Bad, команда розробників і крипто-ентузіастів з єкосистеми Tezos, створили PyTezos — Python SDK для Tezos, а також кілька інструментів розробки Tezos dev: ConseilPy — набір інструментів Python для індексатора блокчейна Conseil, PyTzKT — набір інструментів Python для індексатора блокчейна TzKT. Всі ці інструменти Ви можете перевірити на веб-сайті Baking Bad.

Сайт SmartPy: http://smartpy.io/
Група SmartPy в Telegram
Курс SmartPy від Blockmatics

Morley/Lorentz

Morley/Lorentz надає бібліотеку для написання смарт-контрактів Tezos в Haskell. Проект знаходиться на стадії розробки, тому документація обмежена, але Ви можете перевірити її тут і стежити за її розробкою: https://hackage.haskell.org/package/morley

Інші мови

Archetype

Archetype — це предметно-орієнтована (специфічна) мова (DSL) для розробки смарт-контрактів на блокчейні Tezos з особливим акцентом на безпеку і формальну верифікацію контрактів. Це проект з відкритим вихідним кодом, розроблений в OCaml. Archetype пропонує зовсім інший спосіб написання смарт-контрактів на Tezos з власним набором інструкцій і розглядає контракти як кінцеві автомати.

Сайт Archetype: https://archetype-lang.org/

Albert

Albert є проміжною мовою програмування смарт-контрактів, скомпільованою для Michelson. Як і у випадку з основною мовою Tezos, Albert було названо на честь фізика Альберта Майкельсона.

Це імперативна мова зі змінними і записами, що абстрагує стек Michelson. Задумка Albert полягає в тому, щоб служити ціллю компіляції високорівневих мов програмування смарт-контрактів.

Веб-сайт мовою Albert: https://albert-lang.io/

Fi

Fi (вимовляється як «fee») — високорівнева мова для Michaelson, що дозволяє програмістам легко розробляти на Tezos. Fi засновано на JavaScript і Solidity і покликано стати набагато ближче до програмування смарт-контрактів в Solidity. Зараз проект знаходиться на стадії альфа-версії, для роботи з мовою можна використовувати онлайн-редактор Fi: https://fi-code.com/

Як бачите, в екосистемі Tezos існує безліч мов. Отже, це створює численні способи і можливості для розвитку на Tezos. Якщо Ви не впевнені, з чого почати або що вивчати в першу чергу — найкраще взаємодіяти зі спільнотою і програмістами, які вже використовують певні мови та беруть участь в проектах, пов’язаних з Tezos.

Підписуйтесь на наші соц. мережі:

Telegram
LinkedIn
Facebook
Twitter
Instagram

Готовий працювати з Tezos Ukraine?

Контакти