Почему Python популярен в биткойн-проектах?

Изучая проекты с открытым исходным кодом, связанные с Биткойном, я вижу, что многие из них написаны на языке Python или широко его используют. В основном я использую Ruby и у меня мало опыта в Python; поэтому я хотел бы знать, почему это так.

В этом результате поиска Github вы можете видеть, что Python занимает второе место при поиске по ключевому слову «биткойн».

Это не ограничивается биткойнами, но Python в целом популярен в проектах финансовых технологий по причинам, упомянутым в ответах.
Мне нужно получить краткое изложение Ruby, чтобы вы знали, почему Python лучше, но следуйте сообщению в блоге Ричарда Кисса в моем ответе, чтобы увидеть, насколько хорош Python (используйте Python v 2.7)
Теперь существует среда Python для разработки приложений для криптоактивов: bitbucket.org/miohtama/cryptoassets (отказ от ответственности: я являюсь одним из авторов)

Ответы (2)

По сравнению с такими языками, как Java или C++, у Python есть несколько преимуществ для кодирования проектов биткойнов:

  • Упрощенные правила кодирования позволяют как новичкам, так и опытным кодировать и получать результаты, не увязая в форматировании и т. д.
  • Shell позволяет выполнять расчеты на лету
  • Код Python легко читается и поэтому может быть отредактирован в соответствии с вашими потребностями.
  • Python можно скомпилировать в исполняемый файл или запустить в нескомпилированном виде.

По сути, я полагаю, что Python отлично подходит для небольших скриптов/приложений, и эти небольшие приложения часто согласуются со сложными механизмами протокола Биткойн, которые значительно упрощены.

Предупреждение, конечно, заключается в том, что для большинства утилит Bitcoin Python (Pybitcointools, Pycoin, sx/libitcoin) требуется Python версии 2, тогда как Python 3 является текущим выпуском, и, что ошеломляет, 3.x не имеет обратной совместимости с Python 2 .

Если вы хотите получить представление о том, что может предложить Python, ознакомьтесь с:

Я думаю, что многие проекты движутся к совместимости с Python 3 ATM, даже если это еще не сделано.
@MikkoOhtamaa да, ты прав. Меня просто поразило, когда я задал вопрос «почему мой Python 2 не работает в Python 3?» и ответ был общепринятым "без обратной совместимости"
Вы можете написать Python, который напрямую совместим с Python 2 и Python 3. Но большинство людей этого не сделали. Сейчас мир медленно переходит к этапу, когда библиотеки работают на обоих.

Я использую pycoin ( https://github.com/richardkiss/pycoin ) в проекте прямо сейчас, чтобы проверить данные, которые должны быть подписаны в транзакции биткойнов, поэтому я думаю, что могу говорить об этом.

  • Python хорош тем, что с его помощью легко и быстро запускать проекты.
  • Есть библиотеки, которые берут на себя работу таких вещей, как ECDSA.
  • Python — более доступный язык, чем пытаться кодировать на C++ со всеми этими указателями и ссылками, не говоря уже о компиляции. Запуск на интерпретируемом языке, таком как python, имеет здесь преимущество.

Недостатком, однако, является то, что Python не будет достаточно масштабируемым для всех приложений. Например, есть причина, по которой клиент Core не был написан на python.