Выбор зависит от определенной задачи. Есть универсальные, с которыми знакомы большинство разработчиков, а есть специально заточенные под блокчейн.
Универсальные:
Go, C++, Rust – подходят для создания высоконагруженных систем и сети с нуля, открывают доступ к железу.
Java, Python, Kotli, C# - создание децентрализованных приложений для какой-то платформы
Специализированные:
Solidity – контракто-ориентированный, предназначенный для написания полных смарт-контрактов на платформе Ethereum. Позволяет составлять код повышенного уровня для цифровой валюты и собирается в машинный код низкого уровня.
Simplicity – относительно новый, создавался для улучшения работы сервиса и безопасности.
Vyper – экспериментальный язык программирования общего назначения, который можно скомпилировать в байт-код EVM (виртуальная машина Ethereum), как и Solidity.
Rholang – заточен конкретно под sma rt, проверяет правильность и безопасность написания кода, уменьшает количество ошибок и демонстрирует все возможности уже написанного кода.
Понятно, что количество языков со временем будет увеличиваться, но для того, чтобы работать в данной сфере, достаточно знать, на каком языке разрабатывается блокчейн и уметь работать на базовых Java, C++ и Python.