Интервью с отцом языка Move: почему язык смарт-контрактов Sui Move подходит для создания продуктов Web3?
На днях мы поговорили с техническим директором Mysten Labs, создателем языка программирования Move, Сэмом Блэкширом, о том, почему он разработал новый язык программирования смарт-контрактов Sui Move, о функциональности, которую может масштабировать Sui, и о преимуществах децентрализованных технологий для строителей.
Следующее содержание интервью:
Q1. Во-первых, не могли бы вы кратко изложить, что такое языки программирования, на какие качества разработчики обращают особое внимание при выборе языка программирования и что побудило вас разработать собственный язык программирования?
Языки программирования — это инструменты для дружелюбного, безопасного, эффективного и четкого взаимодействия с компьютером. Это особенно важно для компьютеров. Мы не можем общаться с компьютерами на естественном языке, потому что вся суть естественного языка заключается в его богатстве и выразительности.
В языках программирования самым важным является наличие четко определенной семантики. Когда вы пишете программу, вы знаете, что она собирается делать. Если вы вносите небольшие изменения, вы понимаете, какой результат это изменит.
Я считаю, что в отличие от естественных языков, суть языков программирования заключается в том, что они предназначены для конкретных областей или задач. В противном случае можно было бы использовать один язык программирования для выполнения всех задач. Однако наличие множества языков программирования объясняется тем, что невозможно хорошо справляться со всеми областями. Они стремятся целенаправленно работать над конкретными проблемными областями и сосредотачиваются на решении этих проблем.
Поэтому история Move очень похожа на это. Когда я его создал, я не собирался создавать новый язык. Разработчики, выбирая язык, задаются вопросом: "Подходит ли этот язык для задачи, которую я хочу выполнить?" Но я считаю, что, возможно, более важно: "Есть ли у этого языка большое сообщество? Есть ли много доступных баз данных? Есть ли много программистов, которые его используют? Есть ли хорошие образовательные ресурсы?" Все это очень важно, поэтому порог для создания нового языка должен быть очень высоким.
Q2, можете поделиться более подробной информацией о разработке Move?
Move возникла из проекта Libra Facebook. Моя задача заключалась не в создании нового языка, а в том, чтобы "Libra нуждается в смарт-контрактах, поэтому выясните, что нам следует сделать." Я смотрел на самые разные вещи. Можем ли мы использовать Solidity в EVM? Должны ли мы использовать обычный универсальный язык, такой как WASM или JVM, и применить его для Libra? Или нам следует создать что-то свое?
Решение создать что-то свое основано на исследовании существующих смарт-контрактов, понимании того, что пытаются сделать программисты, а также на том, в каких областях некоторые языки помогают им, а в каких разочаровывают. Мой вывод заключается в том, что во многих случаях существующие языки смарт-контрактов действительно разочаровывают их.
Это можно четко увидеть из плохой записи безопасности Solidity, но более фундаментально, эти смарт-контракты не являются очень традиционными типами программ. Solidity не является языком, созданным для того, что люди делают сейчас.
Поэтому эти смарт-контракты очень просты, они в основном выполняют две вещи. Они определяют типы активов, включая, когда активы могут быть переданы, что с ними можно делать, кто может их читать и кто может записывать правила. И проверяют политику контроля доступа, определяя, кто владеет активом, кто имеет право его использовать и кто может с ним взаимодействовать. Все сосредоточено вокруг активов, вы хотите, чтобы эти активы имели такие же свойства, как и физические активы.
В смарт-контрактах есть концепция собственности и передачи собственности, но на компьютере всё это лишь цифры и байты, которые могут свободно копироваться. И, как вы знаете, эти концепции не существуют в реальном мире. Поэтому вы хотите, чтобы был язык, который предоставил бы вам хорошую абстракцию собственности и однородности. Как в реальном мире, но без необходимости заставлять программистов изобретать его заново. Вы хотите получить основные гарантии безопасности.
Вот в чем заключается роль Move и почему мы в конечном итоге создали этот новый язык. Эти задачи являются базовыми для программирования смарт-контрактов. Их трудно воспроизвести на других языках, включая существующие языки смарт-контрактов. Мы хотели разработать целый язык, сосредоточенный на предоставлении этих базовых функций, чтобы программисты могли безопасно и эффективно писать код, не изобретая колесо каждый раз, когда им нужно написать некоторый код.
Q3, Sui использует вариант Move, называемый Sui Move. Что подтолкнуло к этим изменениям? Какие особенности Sui Move особенно подходят для создания продуктов в Web3?
Несколько факторов способствовали этим изменениям, один из которых заключается в том, что изначальной целью проекта Libra было создание соответствующей платежной сети. Поэтому мы пытались разработать Move как универсальный язык. Но мы также сознательно сделали несколько вещей, потому что Libra хотела иметь ограничения. Одним из важных моментов является то, что они не хотели, чтобы люди могли отправлять определенные активы куда угодно. Они хотели, чтобы люди явно создавали аккаунт и устанавливали некоторые правила при его создании, например, что владелец аккаунта должен пройти процедуру KYC. Или, возможно, необходимо будет уплатить сбор за создание аккаунта, или аккаунт может быть создан только небольшой группой людей, имеющих право на его создание. Поскольку вся цель состоит в том, что Libra хотела осуществлять соответствующие платежи и соответствующие смарт-контракты, существуют эти ограничения. Но в более универсальной области Web3 ситуация совершенно противоположная. Вы не хотите, чтобы на базовом уровне соблюдались нормативные требования, это концепция смарт-контрактов. Вы хотите, чтобы вещи были как можно более свободными, чтобы можно было отправить что-то на любой адрес. Затем вам не следует явно создавать аккаунт, так как это будет блокировать различные сценарии использования. Это важный фактор.
Другим фактором является то, что, хотя мы сосредоточились на активах в Move, мы тогда не учитывали, как перенести акцент на активы в саму сделку в Libra. Поэтому, когда вы доходите до уровня транзакции, у вас все еще есть только этот API, в который вы вводите числа и логические значения и т.д., которые не являются активами, а затем в Move вы используете эти числа, чтобы извлечь активы из аккаунта и выполнять другие действия. Оказалось, что большая часть кода, который вы запускаете, это такая раздражающая книжная работа, которая включает в себя извлечение этого, извлечение того, извлечение других вещей, хорошо, у меня есть все активы, которые я хочу. Они здесь, в моей студии, теперь я могу начать делать что-то значимое. Затем, в конце этого процесса, вы можете сказать: "Хорошо, верните эти активы на этот аккаунт, верните их на тот аккаунт, реорганизуйте их."
В Sui мы тщательно обдумали, можем ли мы абстрагировать это, если каждая программа начинается и заканчивается таким образом? Таким образом, логика обработки транзакций будет выполнена для программистов, с их точки зрения, им просто нужно подготовить необходимые активы и сразу же приступить к интересной работе. Вот что представляет собой объектно-ориентированная модель данных в Sui. В оригинальном Move у нас есть модель данных, основанная на счетах, активы хранятся на счетах, и программистам необходимо явно их извлекать. А в Sui, когда они входят в часть Move транзакции, активы уже были получены временем выполнения Sui. Это удобнее для программистов, так как им не нужно заниматься всей этой бухгалтерией до и после, и это также является нашим секретным оружием, позволяющим определить, можно ли параллельно выполнять одну транзакцию с другой, масштабировать Sui горизонтально и более эффективно выполнять некоторые другие операции без фактического выполнения.
Мы также провели ряд других очень интересных работ, таких как использование объектно-ориентированной модели данных для программируемых торговых блоков. Это довольно техническая тема, и я с удовольствием углублюсь в обсуждение. Но эти два фактора являются основными движущими силами, приводящими к расхождениям с оригинальным Move.
Q4, не могли бы вы поделиться дополнительной информацией о программируемых торговых блоках и их функциях?
Я люблю использовать аналогию для объяснения: другие блокчейны похожи на фуд-корт в торговом центре. Если ты хочешь мороженое, ты идешь к стойке с мороженым и расплачиваешься кредитной картой. Но если ты решишь, что хочешь еще бургер, то ты идешь к стойке с бургерами и снова платишь. Я не жадный человек, но если я хочу съесть восемь разных вещей, мне придется сделать восемь отдельных транзакций. А Sui больше похожа на шведский стол, где каждая транзакция — это не просто одно действие. Как только ты заплатил за шведский стол, ты можешь делать много вещей без дополнительных затрат. Ты можешь есть мороженое, ты можешь есть бургеры, ты можешь смешивать их.
Чтобы сделать эту концепцию более конкретной, в простом случае, если вы хотите отправить 100 транзакций для создания 100 NFT, вы можете отправить одну транзакцию на создание 100 NFT. Стоимость такой транзакции практически равна стоимости создания одного NFT. Вы также можете выполнять гетерогенные транзакции, например, первая транзакция в блоке извлекает персонажа Марио из вашего мультиподписного кошелька, а вторая транзакция запрашивает Марио и позволяет вам играть в игру. Если вы выиграете игру и получите кубок, возможно, третья транзакция поместит кубок в шкаф для кубков, которым делится с друзьями. Круто, что программируемые транзакционные блоки позволяют программистам писать код таким образом, что игре не нужно знать о мультиподписном кошельке или способах хранения Марио, ей также не нужно знать о вашем шкафу для кубков или о том, как он реализован.
Программируемые транзакционные блоки состоят из транзакций с объектами ввода и вывода. Если вам нужен объект ввода, вы можете его получить, не заботясь о том, откуда он пришел, а затем передать его вывод объекту, которому он нужен, также не заботясь о том, куда он будет передан. В других блокчейнах связь более сильная, поэтому игры должны интегрироваться с мультиподписными кошельками и трофейными шкафами, или же они все должны реализовывать какие-то общие интерфейсы и иметь более сильную связь. Sui облегчает так называемые временные комбинации. Как будто, если трубопровод подходит, мы можем завершить это в одной транзакции.
Q5、Какие преимущества программируемая торговая зона предоставляет пользователям?
Для пользователей преимущества программируемых торговых блоков включают более низкие газовые сборы, поскольку вы можете упаковать все операции в одну транзакцию, а не проводить отдельные транзакции. Кроме того, количество необходимых одобрений также уменьшается. Если используемая вами система требует одобрения транзакции, вам нужно будет провести только одно одобрение, после чего оно выполнит все операции сразу. Еще одно преимущество — атомарность: если вы хотите сделать три разные вещи и хотите, чтобы третья операция была успешной только если первые две операции успешны, если эти операции должны быть независимыми транзакциями, вы не сможете это реализовать. Но если вы можете объединить их все в одну транзакцию, то сможете это легко сделать.
Q6. Я слышал, как вы и другие говорили, что разработка на Sui — это отличный опыт для программистов, и это очень важно. Есть ли у вас какие-либо анекдоты, которыми вы могли бы поделиться с опытными и новыми Web3 программистами, начинающими использовать Sui Move?
Для разработчиков, пришедших из других языков программирования Web3, опыт разработки на Move и Sui Move действительно более эффективен и безопасен. Я только что участвовал в подкасте о Bucket Protocol, они строят очень классный DeFi проект на Sui. При демонстрации архитектуры системы они рассказали, как разные компоненты работают вместе. Они сказали, что если бы они использовали Solidity для написания этого проекта, это могло бы занять восемь месяцев, но с помощью Sui Move это заняло всего два месяца, и они очень уверены в его безопасности. Этот язык работает очень близко к тому, как они представляют свой проект. А в области Solidity такая связь не так пряма.
Это всего лишь пример, но мы слышали много подобных случаев, когда люди говорят, что они быстрее развиваются с этим языком и чувствуют себя более уверенно после завершения. Мне приятно слышать это. Но в определенной степени это не удивительно, мы исследовали Solidity и поняли его проблемы. Мы четко спроектировали решения, чтобы сделать его более безопасным и быстрым. Мы изучили, что разработчики, использующие этот язык, пытаются сделать, и как разработать язык, отвечающий их потребностям, а не приспосабливаться к существующим условиям. Этот язык был разработан для решения проблем, с которыми сталкиваются люди, поэтому, когда они переключаются на него, они действительно очень ценят этот язык.
Они говорят, что преимущество первыми очень важно, но я думаю, что в этом случае преимущество последними важнее.
Совершенно верно.
 и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
15 Лайков
Награда
15
5
Репост
Поделиться
комментарий
0/400
DegenWhisperer
· 16ч назад
Старый Хэй на этот раз говорит правильно.
Посмотреть ОригиналОтветить0
BearMarketBro
· 08-18 06:41
Новые неудачники, лучше не приходите.
Посмотреть ОригиналОтветить0
OnchainDetective
· 08-17 04:31
move удивительный sui跟着 На луну
Посмотреть ОригиналОтветить0
GateUser-44a00d6c
· 08-17 04:22
Я уже давно следую за Move удивительный
Посмотреть ОригиналОтветить0
AirdropHuntress
· 08-17 04:22
Скорость итерации кода Sui вызывает сомнения, данные показывают, что активность в основной сети не соответствует стандартам.
Основатель языка Move объясняет: почему Sui Move лучше подходит для создания продуктов Web3
Интервью с отцом языка Move: почему язык смарт-контрактов Sui Move подходит для создания продуктов Web3?
На днях мы поговорили с техническим директором Mysten Labs, создателем языка программирования Move, Сэмом Блэкширом, о том, почему он разработал новый язык программирования смарт-контрактов Sui Move, о функциональности, которую может масштабировать Sui, и о преимуществах децентрализованных технологий для строителей.
Следующее содержание интервью:
Q1. Во-первых, не могли бы вы кратко изложить, что такое языки программирования, на какие качества разработчики обращают особое внимание при выборе языка программирования и что побудило вас разработать собственный язык программирования?
Языки программирования — это инструменты для дружелюбного, безопасного, эффективного и четкого взаимодействия с компьютером. Это особенно важно для компьютеров. Мы не можем общаться с компьютерами на естественном языке, потому что вся суть естественного языка заключается в его богатстве и выразительности.
В языках программирования самым важным является наличие четко определенной семантики. Когда вы пишете программу, вы знаете, что она собирается делать. Если вы вносите небольшие изменения, вы понимаете, какой результат это изменит.
Я считаю, что в отличие от естественных языков, суть языков программирования заключается в том, что они предназначены для конкретных областей или задач. В противном случае можно было бы использовать один язык программирования для выполнения всех задач. Однако наличие множества языков программирования объясняется тем, что невозможно хорошо справляться со всеми областями. Они стремятся целенаправленно работать над конкретными проблемными областями и сосредотачиваются на решении этих проблем.
Поэтому история Move очень похожа на это. Когда я его создал, я не собирался создавать новый язык. Разработчики, выбирая язык, задаются вопросом: "Подходит ли этот язык для задачи, которую я хочу выполнить?" Но я считаю, что, возможно, более важно: "Есть ли у этого языка большое сообщество? Есть ли много доступных баз данных? Есть ли много программистов, которые его используют? Есть ли хорошие образовательные ресурсы?" Все это очень важно, поэтому порог для создания нового языка должен быть очень высоким.
Q2, можете поделиться более подробной информацией о разработке Move?
Move возникла из проекта Libra Facebook. Моя задача заключалась не в создании нового языка, а в том, чтобы "Libra нуждается в смарт-контрактах, поэтому выясните, что нам следует сделать." Я смотрел на самые разные вещи. Можем ли мы использовать Solidity в EVM? Должны ли мы использовать обычный универсальный язык, такой как WASM или JVM, и применить его для Libra? Или нам следует создать что-то свое?
Решение создать что-то свое основано на исследовании существующих смарт-контрактов, понимании того, что пытаются сделать программисты, а также на том, в каких областях некоторые языки помогают им, а в каких разочаровывают. Мой вывод заключается в том, что во многих случаях существующие языки смарт-контрактов действительно разочаровывают их.
Это можно четко увидеть из плохой записи безопасности Solidity, но более фундаментально, эти смарт-контракты не являются очень традиционными типами программ. Solidity не является языком, созданным для того, что люди делают сейчас.
Поэтому эти смарт-контракты очень просты, они в основном выполняют две вещи. Они определяют типы активов, включая, когда активы могут быть переданы, что с ними можно делать, кто может их читать и кто может записывать правила. И проверяют политику контроля доступа, определяя, кто владеет активом, кто имеет право его использовать и кто может с ним взаимодействовать. Все сосредоточено вокруг активов, вы хотите, чтобы эти активы имели такие же свойства, как и физические активы.
В смарт-контрактах есть концепция собственности и передачи собственности, но на компьютере всё это лишь цифры и байты, которые могут свободно копироваться. И, как вы знаете, эти концепции не существуют в реальном мире. Поэтому вы хотите, чтобы был язык, который предоставил бы вам хорошую абстракцию собственности и однородности. Как в реальном мире, но без необходимости заставлять программистов изобретать его заново. Вы хотите получить основные гарантии безопасности.
Вот в чем заключается роль Move и почему мы в конечном итоге создали этот новый язык. Эти задачи являются базовыми для программирования смарт-контрактов. Их трудно воспроизвести на других языках, включая существующие языки смарт-контрактов. Мы хотели разработать целый язык, сосредоточенный на предоставлении этих базовых функций, чтобы программисты могли безопасно и эффективно писать код, не изобретая колесо каждый раз, когда им нужно написать некоторый код.
Q3, Sui использует вариант Move, называемый Sui Move. Что подтолкнуло к этим изменениям? Какие особенности Sui Move особенно подходят для создания продуктов в Web3?
Несколько факторов способствовали этим изменениям, один из которых заключается в том, что изначальной целью проекта Libra было создание соответствующей платежной сети. Поэтому мы пытались разработать Move как универсальный язык. Но мы также сознательно сделали несколько вещей, потому что Libra хотела иметь ограничения. Одним из важных моментов является то, что они не хотели, чтобы люди могли отправлять определенные активы куда угодно. Они хотели, чтобы люди явно создавали аккаунт и устанавливали некоторые правила при его создании, например, что владелец аккаунта должен пройти процедуру KYC. Или, возможно, необходимо будет уплатить сбор за создание аккаунта, или аккаунт может быть создан только небольшой группой людей, имеющих право на его создание. Поскольку вся цель состоит в том, что Libra хотела осуществлять соответствующие платежи и соответствующие смарт-контракты, существуют эти ограничения. Но в более универсальной области Web3 ситуация совершенно противоположная. Вы не хотите, чтобы на базовом уровне соблюдались нормативные требования, это концепция смарт-контрактов. Вы хотите, чтобы вещи были как можно более свободными, чтобы можно было отправить что-то на любой адрес. Затем вам не следует явно создавать аккаунт, так как это будет блокировать различные сценарии использования. Это важный фактор.
Другим фактором является то, что, хотя мы сосредоточились на активах в Move, мы тогда не учитывали, как перенести акцент на активы в саму сделку в Libra. Поэтому, когда вы доходите до уровня транзакции, у вас все еще есть только этот API, в который вы вводите числа и логические значения и т.д., которые не являются активами, а затем в Move вы используете эти числа, чтобы извлечь активы из аккаунта и выполнять другие действия. Оказалось, что большая часть кода, который вы запускаете, это такая раздражающая книжная работа, которая включает в себя извлечение этого, извлечение того, извлечение других вещей, хорошо, у меня есть все активы, которые я хочу. Они здесь, в моей студии, теперь я могу начать делать что-то значимое. Затем, в конце этого процесса, вы можете сказать: "Хорошо, верните эти активы на этот аккаунт, верните их на тот аккаунт, реорганизуйте их."
В Sui мы тщательно обдумали, можем ли мы абстрагировать это, если каждая программа начинается и заканчивается таким образом? Таким образом, логика обработки транзакций будет выполнена для программистов, с их точки зрения, им просто нужно подготовить необходимые активы и сразу же приступить к интересной работе. Вот что представляет собой объектно-ориентированная модель данных в Sui. В оригинальном Move у нас есть модель данных, основанная на счетах, активы хранятся на счетах, и программистам необходимо явно их извлекать. А в Sui, когда они входят в часть Move транзакции, активы уже были получены временем выполнения Sui. Это удобнее для программистов, так как им не нужно заниматься всей этой бухгалтерией до и после, и это также является нашим секретным оружием, позволяющим определить, можно ли параллельно выполнять одну транзакцию с другой, масштабировать Sui горизонтально и более эффективно выполнять некоторые другие операции без фактического выполнения.
Мы также провели ряд других очень интересных работ, таких как использование объектно-ориентированной модели данных для программируемых торговых блоков. Это довольно техническая тема, и я с удовольствием углублюсь в обсуждение. Но эти два фактора являются основными движущими силами, приводящими к расхождениям с оригинальным Move.
Q4, не могли бы вы поделиться дополнительной информацией о программируемых торговых блоках и их функциях?
Я люблю использовать аналогию для объяснения: другие блокчейны похожи на фуд-корт в торговом центре. Если ты хочешь мороженое, ты идешь к стойке с мороженым и расплачиваешься кредитной картой. Но если ты решишь, что хочешь еще бургер, то ты идешь к стойке с бургерами и снова платишь. Я не жадный человек, но если я хочу съесть восемь разных вещей, мне придется сделать восемь отдельных транзакций. А Sui больше похожа на шведский стол, где каждая транзакция — это не просто одно действие. Как только ты заплатил за шведский стол, ты можешь делать много вещей без дополнительных затрат. Ты можешь есть мороженое, ты можешь есть бургеры, ты можешь смешивать их.
Чтобы сделать эту концепцию более конкретной, в простом случае, если вы хотите отправить 100 транзакций для создания 100 NFT, вы можете отправить одну транзакцию на создание 100 NFT. Стоимость такой транзакции практически равна стоимости создания одного NFT. Вы также можете выполнять гетерогенные транзакции, например, первая транзакция в блоке извлекает персонажа Марио из вашего мультиподписного кошелька, а вторая транзакция запрашивает Марио и позволяет вам играть в игру. Если вы выиграете игру и получите кубок, возможно, третья транзакция поместит кубок в шкаф для кубков, которым делится с друзьями. Круто, что программируемые транзакционные блоки позволяют программистам писать код таким образом, что игре не нужно знать о мультиподписном кошельке или способах хранения Марио, ей также не нужно знать о вашем шкафу для кубков или о том, как он реализован.
Программируемые транзакционные блоки состоят из транзакций с объектами ввода и вывода. Если вам нужен объект ввода, вы можете его получить, не заботясь о том, откуда он пришел, а затем передать его вывод объекту, которому он нужен, также не заботясь о том, куда он будет передан. В других блокчейнах связь более сильная, поэтому игры должны интегрироваться с мультиподписными кошельками и трофейными шкафами, или же они все должны реализовывать какие-то общие интерфейсы и иметь более сильную связь. Sui облегчает так называемые временные комбинации. Как будто, если трубопровод подходит, мы можем завершить это в одной транзакции.
Q5、Какие преимущества программируемая торговая зона предоставляет пользователям?
Для пользователей преимущества программируемых торговых блоков включают более низкие газовые сборы, поскольку вы можете упаковать все операции в одну транзакцию, а не проводить отдельные транзакции. Кроме того, количество необходимых одобрений также уменьшается. Если используемая вами система требует одобрения транзакции, вам нужно будет провести только одно одобрение, после чего оно выполнит все операции сразу. Еще одно преимущество — атомарность: если вы хотите сделать три разные вещи и хотите, чтобы третья операция была успешной только если первые две операции успешны, если эти операции должны быть независимыми транзакциями, вы не сможете это реализовать. Но если вы можете объединить их все в одну транзакцию, то сможете это легко сделать.
Q6. Я слышал, как вы и другие говорили, что разработка на Sui — это отличный опыт для программистов, и это очень важно. Есть ли у вас какие-либо анекдоты, которыми вы могли бы поделиться с опытными и новыми Web3 программистами, начинающими использовать Sui Move?
Для разработчиков, пришедших из других языков программирования Web3, опыт разработки на Move и Sui Move действительно более эффективен и безопасен. Я только что участвовал в подкасте о Bucket Protocol, они строят очень классный DeFi проект на Sui. При демонстрации архитектуры системы они рассказали, как разные компоненты работают вместе. Они сказали, что если бы они использовали Solidity для написания этого проекта, это могло бы занять восемь месяцев, но с помощью Sui Move это заняло всего два месяца, и они очень уверены в его безопасности. Этот язык работает очень близко к тому, как они представляют свой проект. А в области Solidity такая связь не так пряма.
Это всего лишь пример, но мы слышали много подобных случаев, когда люди говорят, что они быстрее развиваются с этим языком и чувствуют себя более уверенно после завершения. Мне приятно слышать это. Но в определенной степени это не удивительно, мы исследовали Solidity и поняли его проблемы. Мы четко спроектировали решения, чтобы сделать его более безопасным и быстрым. Мы изучили, что разработчики, использующие этот язык, пытаются сделать, и как разработать язык, отвечающий их потребностям, а не приспосабливаться к существующим условиям. Этот язык был разработан для решения проблем, с которыми сталкиваются люди, поэтому, когда они переключаются на него, они действительно очень ценят этот язык.
Они говорят, что преимущество первыми очень важно, но я думаю, что в этом случае преимущество последними важнее.
Совершенно верно.
![Интервью с отцом языка Move: почему язык смарт-контрактов Sui Move подходит для создания продуктов Web3?](