Оказывается, совсем немного

В предыдущих статьях этой гостевой серии DAML было исследовано, как опытные ветераны финансовой индустрии из GFT и IntellectEU оценивают язык смарт-контрактов Digital Asset, DAML, для создания решений на основе технологии распределенного реестра (DLT). Но как насчет молодых, относительно неопытных программистов? В этой записи блога мы рассказываем о небольшой группе студентов университета, которые этим летом провели с нами, используя DAML для создания прототипа рыночной инфраструктуры.

Просмотрите документацию по многим архитектурам платформы DLT на основе блокчейнов (Corda и Hyperledger Fabric, чтобы выбрать два хорошо известных примера), и вы обнаружите, что можете писать контракты для этих платформ в широком спектре популярных общих: целевые языки, такие как Java, Python, Kotlin и Go. Преобладает мнение, что для привлечения разработчиков к этим новым платформам DLT необходимо позволить им использовать любимые, знакомые языки при написании смарт-контрактов.

В Digital Asset мы считаем, что смарт-контракты DLT требуют нового архитектурного стиля программирования, и что дизайн языков смарт-контрактов играет основополагающую роль в воплощении этого нового стиля в жизнь. В серии записей в блоге (начиная здесь) мы подробно изложили свои аргументы в пользу этого тезиса и представили наш собственный язык смарт-контрактов, DAML - тщательно обрисовывая свойства, которые делают DAML идеальным выбором для кодирования любого контракта, особенно тех, которые предполагают передачу стоимости.

Конечно, такая позиция вызывает контраргумент о том, что требование к разработчикам изучать новый язык обязательно ограничит принятие Платформы цифровых активов. Что ж, как мы ожидали - и теперь подтверждаем - ничто не может быть дальше от истины. Фактически, наличие языка, специально предназначенного для создания рабочих процессов, которые синхронизируют оркестровку бизнес-процессов, оказывается преимуществом, а не ограничением.

Нет лучшего способа погрузиться в эту дискуссию, чем поговорить с разработчиками, которые работали с DAML SDK Developer Preview.

К счастью, для некоторых из этих дискуссий нам не пришлось заходить слишком далеко. Шесть студентов университетов, за плечами которых один, два и три года обучения, провели это лето с нами в нашей штаб-квартире в Нью-Йорке в рамках стажировки инженеров. Их миссия - успешно выполненная - заключалась в том, чтобы использовать DAML для создания полной работающей инфраструктуры финансового рынка, которая будет использоваться в качестве полностью работоспособной эталонной реализации в документации SDK.

Ни один из наших стажеров не имел практического опыта работы на финансовых рынках - и уж точно никогда не видел DAML - и большинство из них не занимались каким-либо значительным программированием до начала своего университетского образования. По прибытии в Нью-Йорк они прошли тот же двухдневный тренинг по синтаксису и семантике, который мы предоставляем нашим клиентам и партнерам по разработке, после чего они приступили к проекту.

Итак, что группа относительно новых программистов думала об изучении нового языка для создания сложных рабочих процессов для отрасли, которую они не знали? В целом отзывы заключались в том, что это вообще не проблема, и на самом деле наличие инструмента, адаптированного для работы, имело решающее значение для их успеха.

Сара, которая покидает нас, чтобы поступить в последний год обучения в Колгейтском университете, поступила на стажировку довольно свободно на Java, Python и C - на самом деле, ее любимом языке. Имея близость к низкоуровневому языку, например C, вы могли подумать, что Сара сочла бы домен-ориентированный DAML ограничивающим, но это было совсем не так. Наличие абстрагированного языка для области контрактов помогло мне компенсировать недостаток знаний в этой области, - говорит она. Это заставило меня перестать думать о компьютерных науках традиционным способом и позволило мне больше сосредоточиться на простом кодировании финансовых рабочих процессов.

«Я думаю, что наше знакомство с программированием в целом ускорило процесс присоединения к нам, а затем мы просто погрузились в дело и начали заключать контракты с DAML. Мы быстро его взяли ». - Сара

Джейми, выпускник Стэнфордского университета 2020 года, начал свое программирование с Java, но с тех пор добавил в свой репертуар C, C ++ и Visual Basic за два года в Стэнфорде - и с нетерпением ждет возможности поработать с Python и R в ближайшем будущем. год. В отличие от Сары, Джейми предпочитает Java более высокого уровня в качестве основного инструмента и охарактеризовал переход на DAML как плавный. Хотя он вырос с пониманием финансов благодаря членам семьи в бизнесе и провел лето, работая в венчурном капитале, варианты использования, с которыми он столкнулся в Digital Asset, были для него совершенно новыми.

«Мне очень понравилось использовать DAML для определения вариантов, которые можно сделать в контрактах, потому что этот процесс заставляет меня задуматься о том, как все работает в реальном мире. Ясно, что DAML был разработан с учетом этого, и он позволяет легко перейти от ментальной модели к коду ». - Джейми

Трио наших стажеров приехало к нам из класса Университет Карнеги-Меллона 2020 года, но по совсем другим программам. Департамент компьютерных наук CMU имеет богатое наследие в области функционального программирования, поэтому Кьяра и Булут столкнулись с некоторыми проблемами, связанными с DA, потому что DAML построен на принципах функционального программирования. Оба знают SML, и Кьяра тоже освоила Haskell. Python - также знакомый друг им обоим.

Хотя она является ассистентом преподавателя C, Кьяра предпочитает языки высокого уровня, потому что они приводят к более абстрактному мышлению - так что DAML был естественным подходом. «DAML - это язык высокого уровня, но он построен по-другому», - говорит она. «Это касается темы, которую я никогда раньше не видел, чтобы какой-либо другой язык работал хорошо».

«Раньше я никогда не моделировал рабочий процесс, но как только вы знаете, как написать шаблон в DAML, все готово! Это поможет вам меньше сосредоточиться на языке и больше на финансах ». - Кьяра

Булут по-другому предпочитает тип языка. Он является ассистентом преподавателя Python, но предпочитает такие языки, как C и SML, потому что, как и Сара, ему нравится больше контроля. Тем не менее он считает, что DAML идеально подходит для поставленной задачи - кодирования контрактов, моделирующих передачу стоимости.

«Мне было интересно, зачем им нужно было создавать новый язык. Но потом каждый раз, когда у меня возникала какая-то мелочь, которую нужно было учесть в контракте, я обнаруживал, что у DAML есть именно та функция! » - Булут

Джордан также является CMU 2020, но участвует в школьной программе когнитивных исследований. Тем не менее, программирование - его страсть, и хотя у него еще нет такого же опыта функционального программирования, как у его одноклассников CMU, он имеет такое же образование в Python и C. Джордан характеризует себя как «парень алгоритмов», и поэтому моделирует правила позади финансовых рабочих процессов определенно был в его рулевой рубке. Он охарактеризовал DAML как «очень интуитивно понятный и читаемый» и, как и Булут, заметил, что «все, что мне нужно для кодирования контракта, имеет особую встроенную функцию DAML». Джордан также считал, что DAML хорошо подходит для профессионалов в области финансов, а не только для профессиональных программистов.

«Я думаю, что выучить DAML будет еще проще, если вы сначала разберетесь с доменом. Если вы сначала поймете, что вам нужно реализовать с контрактной точки зрения, было бы так легко взять DAML и закодировать его ». - Иордания

По иронии судьбы, самый молодой из наших стажеров, Варун из класса Калифорнийский университет / Беркли 2021 года, пришел с наибольшим опытом программирования. Варун начал программировать в 6-м классе, изучая такие стандарты, как Java и Python, но также используя MATLAB для проекта искусственного интеллекта. Через своего отца он также разбирался в финансах и посещал несколько бизнес-классов. Тем не менее, он никогда раньше не программировал контракты и говорит, что освоить DAML было намного проще, чем большинство других языков, только потому, что он сделан очень простым способом. Варун обнаружил, что DAML значительно упростил кодирование контрактных рабочих процессов, потому что код был настолько тесно связан с этими концепциями.

«Даже если вы хорошо владеете другим языком, то небольшое время, необходимое для изучения DAML, - это отличное вложение в долгосрочной перспективе из-за того, что объем кода абстрагируется. Это намного лучше, чем многократное кодирование шаблонов Python ». - Варун

Ну вот и все; набор студентов университетов с самым разным опытом и предпочтениями, которые с минимальными усилиями используют DAML продуктивно.

Если вы их пропустили, ознакомьтесь с записями в блогах наших партнеров GFT и IntellectEU.

Подпишитесь на нас в Medium или Twitter или присоединитесь к сообществу и зарегистрируйтесь, чтобы загрузить предварительную версию DAML SDK Developer Preview на www.daml.com.