До Solidity разработчики смарт-контрактов Ethereum использовали LLL (сокращение от Lisp-Like Language). Будучи несколько языком низкого уровня, LLL часто сравнивают с языком ассемблера. »Тем не менее, его простая и минималистичная структура делает его вполне читабельным при правильном форматировании (и он намного проще, чем обычный Лисп). Вместо фигурных скобок, подобных JavaScript, разработчики LLL просто используют круглые скобки для синтаксического анализа (как это делает Lisp). Как и Python, разработчики LLL используют отступы для обозначения блоков кода. Таким образом, любой, кто просматривает LLL, заметит, что он очень лаконичен и прост, что позволяет разработчикам легко писать код.

Многочисленные преимущества LLL

Хотя писать код на LLL довольно легко, LLL также дает разработчикам другие сильные стороны:

Эти преимущества связаны с тем, что LLL является языком низкого уровня. Однако последний гарантирует, что LLL также не включает в себя опции управления стеком и управления переходами (хотя для многих разработчиков это долгожданное облегчение!). Но у LL есть свои поклонники. Как утверждают сторонники, LLL обеспечивает другую перспективу и дисциплину программирования по сравнению с вездесущим языком Solidity. (Github: Введение в LLL )

Итак, почему солидность?

Solidity сохраняет серьезные проблемы с безопасностью и не так легко доступна для случайного разработчика (иногда его особенно сложно понять). Например, его хранимые процедуры — это не то, что средний разработчик пишет на регулярной основе. Однако Solidity обеспечивает наилучшее взаимодействие с API-интерфейсами Javascript (reddit). Это само по себе является основной причиной того, что он используется поверх LLL и Serpent (язык смарт-контрактов, который фактически компилируется в LLL).

Не совсем языковая проблема

Поскольку лишь немногие разработчики хорошо осведомлены о существовании Serpent (теперь переименованного в Viper) и LLL, многие подавляют Solidity как основной язык смарт-контрактов. Это просто лучший задокументированный язык смарт-контрактов (хотя вряд ли впечатляет). И получает наибольшую поддержку.

Тем не менее, разработчики смарт-контрактов должны еще раз взглянуть на LLL. Несколько сторонников пытаются реанимировать его использование (см. Статья Дэниела Эллисона «Возвышение забытого языка»). Следует также учитывать и другие языки. Как заметил один комментатор Reddit: «Единственное требование — создать компилятор, который может переводить язык в байт-код EVM. Любой мог создавать смарт-контракты на Java, Python, C и т. д., пока существовали соответствующие компиляторы.

Если да, то, возможно, разработчикам нужна гораздо более универсальная платформа. Тот, который не требует прыжков через столько обручей, чтобы перевести язык в байт-код EVM. Вполне возможно (даже вероятно), что в ближайшем будущем эту роль сможет выполнять независимая от кода платформа, такая как платформа XTRABYTES. Это, безусловно, предлагает светлое будущее для любого разработчика, заинтересованного в DApps.

Ресурсы
Репозиторий Github для LLL;
Документация компилятора LLL

Для получения подробных отзывов отправьте письмо по адресу [email protected]

Первоначально опубликовано на странице blog.xtrabytes.global 14 мая 2018 г.