RE: 🌐 EOSIO — Новый образец валютного контракта (Daniel Larimer)

You are viewing a single comment's thread from:

🌐 EOSIO — Новый образец валютного контракта (Daniel Larimer)

in blockchain •  7 years ago 

На днях стал разбираться с EOS и кода дошел до примеров смарт контрактов очень загрустил. Язык похож на С, а это делет его плохо читаемым по сравнению с Python и другими современными языками. Вот эти вот [&]( auto& a ). Даже solidity гораздо легче читать. Бутерин говорл о проблемах аудита больших проектов, что инвесторы должны тратить много средств, что бы проверить не содержат ли смарт контракты уязвимостей и как вариант решения этой проблемы оны работают над языком Viper, который очень похож на Python. В этом плане мне нравится идея в SMT - стандартные смарт контракты для токенов, они встроены в систему и их нельзя сломать сделав что-либо неправильно.
Надеюсь что этот язык в EOS лишь POC (proof of concept) и они сделают что-то более удобное для разработки.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  
  ·  7 years ago (edited)

Этот язык - C++. Для квалифицированного C++ разработчика это не представляет никаких проблем. Конструкция [&]( auto& a ) - отличнейшее нововведение в новый стандарт языка, говорящее о том, что все переменные из области видимости в месте вызова будут переданы по ссылке объекту-функции, которая принимает в качестве параметра ссылку на тип, автоматически выводимый компилятором в месте вызова этой функции :-)
И да, C++ будет основным языком для разработки смарт-контрактов в EOS, Ден это лично писал в телеграм-чате разработчиков, отвечая на вопросы.
В дальнейшем будут и другие языки, но только те, которые будут поддерживать WebAssembly. Правда, немногие будут способны потягаться с C++ по производительности и по объему исполняемого кода, что чрезвычайно критично для смарт-контрактов.

Я хочу поспорить :) На мой взгляд в программировании децентрализованых приложений, главное не столько объем исполняемого кода, сколько читаемость которая позволяет легче находить ошибки, что бы не повторять судьбу The DAO. Любой язык можно "скомпилировать" в аналог байт кода, который будет компактен и оптимизирован для исполнения. Поэтому мне кажется что выбор C++ большая ошибка, которая негативно повлияет в конкуренции с ETH.

Что такое читаемость кода? Понятие относительное. Для C++ разработчика описанный выше контракт вполне хорошо читаем. В то же время контракт на Solidity для того же разработчика - китайская грамота. Кстати, именно контракт на Solidity и привел к печальной судьбе The DAO, и его читаемость никак ему не помогла :)
Если же говорить о конкуренции, то ETH уже теряет расположение разработчиков, постепенно отказывающихся от него в пользу EOS. И большинство претензий именно к скорости работы ETH. Кроме того, наличие большого количества готовых C++ программистов, которым не нужно изучать еще один язык, тоже играет свою роль.
Претензии к Solidity имеются и в плане того, что под него нет развитой поддержки - IDE, библиотек и так далее. По сети гуляет немало жалоб о том, что на Solidity постоянно приходится изобретать велосипеды, потому что нет готовых решений в виде библиотек. И это тоже ведет к ошибкам в контрактах.