Это не все C ++

Технология блокчейн - это увлечение. Специально для разработчиков он бросает вызов тому, что вы знаете и понимаете о технологиях. Поэтому технология блокчейн меня очень рано зацепила. Как и в случае со всеми техническими стеками, здесь есть чему поучиться. Итак, какие языки программирования используют блокчейны? А что оправдывает их выбор? Посмотрим, как строится дивный новый мир!

Кардано - Haskell

Мне нравится блокчейн Cardano. Тем более что я хотел узнать, чем это движет. При этом я был удивлен: Haskell - это язык программирования, управляющий Cardano. Почти все, кошелек, узлы и язык смарт-контрактов, основаны на Haskell. Но что такое Haskell?

Наверняка вы слышали об этом языке программирования. Тем не менее, большинство не знает, что это такое. Это не твоя вина. Haskell не очень популярен как язык программирования.

Парадигма Haskell - это функциональное программирование. Язык заставляет писать функциональный код. Все вращается вокруг функций и неизменяемых данных. Следовательно, так называемые побочные эффекты не принадлежат стилю Haskell. Побочные эффекты? Это имя для таких операций, как изменение значения глобальной переменной внутри функции.

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

Кроме того, Haskell довольно известен в академическом мире. Haskell становится все более популярным, особенно среди математиков, поэтому он является отличным выбором для Cardano, который состоит из множества кандидатов наук по математике.

Алгоранд - Go и C

Algorand стремительно вырос за последние несколько дней и в настоящее время занимает 18 позицию по рыночной капитализации. Кроме того, Algorand - один из моих любимых блокчейн-проектов. Самое смешное: его основной язык программирования, Go, также является одним из моих любимых. Для меня Голанг выглядит как если бы у Python и C был ребенок.

Python известен своим простым синтаксисом и крутой кривой обучения. У Голанга это тоже есть. Синтаксис очень удобен для чтения, и вы можете быстро освоить программирование на Go. C, с другой стороны, очень производительный и низкоуровневый язык программирования. Go также предлагает хорошую производительность и низкоуровневое программирование.

Кроме того, парадигма Си - это императивное программирование, которое также является наиболее распространенным стилем в Go.

С момента своего выпуска Go приобрел популярность, особенно в мире профессиональных серверов. Программисты, которых я знаю, утверждали, что этот язык хорош для работы в больших командах, даже для создания сложного программного обеспечения.

Algorand явно такой случай. Хотя Go используется в качестве основного языка, используется также его близкий родственник. При просмотре GitHub от Algorand я обнаружил, что многие существующие библиотеки и коды для криптографии написаны на C. Это может быть связано с огромным количеством кода C, уже существующего для целей блокчейна, но также и по соображениям производительности. Код, оборачивающий эти библиотеки, - Go.

Полкадот - Ржавчина

Я просто действительно понял Polkadot. Его основная цель - это блокчейн, на котором другие могут строить блокчейны. Основная сеть Polkadot называется релейной цепочкой; Блокчейны, созданные пользователем, называются парачейнами. Я упоминаю об этом, потому что нам это нужно, чтобы понять, какой язык программирования выбрал Polkadot.

Итак, чтобы позволить пользователям создавать собственные цепочки блоков, необходима некоторая поддержка: структура для создания цепочки блоков. Команда, стоящая за Polkadot, предлагает этот фреймворк: Substrate.

Но зачем вообще фреймворк? Что ж, Substrate можно рассматривать как любую библиотеку или фреймворк в мире технологий - React, NumPy, Express.js и так далее. Их цель: предложить пользователю рабочий код для создания своего проекта, не изобретая велосипед. Substrate предлагает нетворкинг, консенсус, голосование по блоку и многое другое. Он пытается охватить все для построения работающего блокчейна.

Для этого Substrate использует в качестве среды выполнения песочницу WebAssembly. WebAssembly? Да, формат машинного кода для Интернета - ну, изначально для Интернета. Преимущество WASM заключается в том, что он не зависит от платформы - он может выполнять одни и те же инструкции на всех машинах. Это огромное преимущество при создании такого сложного и распределенного программного обеспечения, как блокчейн.

Наконец, в игру вступает Rust. Этот язык программирования действительно эффективен и используется для создания приложений, близких к системе. Кроме того, Rust - отличный язык программирования для компиляции в WebAssembly.

Биткойн - C ++

Это сложно. Хотя мы можем исследовать утверждения авторов блокчейна о выборе языка программирования, мы не можем этого сделать, когда речь идет о биткойнах. Никто не знает, кто такой Сатоши Накамото, и ему нелегко это изменить.

Я не смог найти никаких заявлений с его стороны о том, почему он выбрал C ++ для биткойнов. Гадать - это единственное, что мы можем сделать. К счастью, есть несколько веских причин использовать C ++ - по крайней мере, по мнению некоторых людей, которые знают язык в деталях (я не знаю).

C ++ - действительно хорошо зарекомендовавший себя язык программирования. Он существует уже почти 40 лет и использовался во множестве проектов. Операционные системы, видеоигры, веб-серверы, микроконтроллеры и так далее - C ++ повсюду.

Из-за этого использования C ++ также предлагает множество библиотек, которые можно использовать для построения блокчейна, особенно когда речь идет о криптографии.

Помимо всего кода сторонних разработчиков, C ++ также предлагает отличную производительность «из коробки» и функции, повышающие производительность кода. Некоторые утверждают, что возможности управления памятью на уровне системы упрощают написание надежного программного обеспечения. Другие утверждают, что злоупотребление продвинутыми концепциями, такими как предлагаемые в C ++, легко - и, следовательно, серьезная проблема для надежности.

Мы, вероятно, никогда не узнаем, почему Сатоши выбрал C ++.

Спасибо за чтение! Если вам понравилось то, что вы прочитали, ознакомьтесь с другой моей статьей: