Задать вопрос
@Maxim192

Сложно ли создать тг бота на c++?

Хочу попробовать создавать тг ботов на с++, так как хочется попробовать что-то кроме консольных программ, а этот формат мне импонирует. Сложно ли писать ботов на плюсах? Есть ли видео курсы, литература на эту тему? Какие есть библиотеки? Чем отличается программирование тг ботов на с++ и на других яп, скажем питоне?
  • Вопрос задан
  • 10947 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 3

Сложно ли писать ботов на плюсах?

Сложно.


Есть ли видео курсы, литература на эту тему?

Не видел таких.


Какие есть библиотеки?

Google: "C++ HTTP client", "how to create rest API with C++"


Чем отличается программирование тг ботов на с++ и на других яп, скажем питоне?

На C++ код в среднем менее приятный получается и чувствуешь, будто из пушки по воробьям стреляешь. Для реализации той же асинхронности нужно сильно больше букв.

Если это не самоцель и просто хочется сделать телеграм-бота, который потребляет 2мб оперативки и отвечает на запросы за 1мс, то я бы лучше Rust изучил.
Ответ написан
@dima20155
you don't choose c++. It chooses you
Отличается все прежде всего тем, что написание такого бота потребует чуть больше усилий в отличии от классического бота на python как минимум из-за меньшей популярности С++ в данной сфере. Судя по официальному сайту есть несколько библиотек для С++ для работы с телеграм API (https://core.telegram.org/bots/samples). Хотя вы всегда можете отправлять HTTP запросы напрямую с помощью какой-нибудь либы или совсем без неё.

Но если вы ищите прежде всего видео о том как написать/воспользоваться той или иной либой на С++, то спешу вас огорчить: все что находится за пределами stl/boost/qt/sfml/sdl и ещё некоторого количества либ/фреймворков требует от вас чтение документации и, иногда, исходников.

Сама программа (и её разработка) в случае С++ будет отличаться лишь, возможно, большей сложностью.
Самая первая задачка, с которой вы столкнетесь - это собрать библиотеку и все зависимости. Одна из готовых библиотек использует следующий набор зависимостей:

CMake
Boost
OpenSSL
ZLib
Libcurl (optional unless you want to use curl-based http client CurlHttpClient).

И каждая библиотека за собой может тянуть ещё зависимости.
Вот, например, installation notes для OpenSSL
Это не всегда сложно, особенно для популярных библиотек, но требует время, а иногда и настройку/допиливание под свой тулчейн.
Ответ написан
Комментировать
mayton2019
@mayton2019
Bigdata Engineer
Мне кажется что проблема не в телеграм библиотеках а как всегда в классических вопросах С++.
Контроль над памятью например. И если взять за формулу что ТГ-бот - это типичное реактивное
приложение то преимуществ С++ здесь вобщем-то нет. Нету задач которые бы загрузили CPU.

А если задачу развивать в части интеграции например с MQ/документными БД (Mongo) или с
веб-апи криптовалют то окажется что С++ в такой интеграции стоит еще в 2 раза дороже
и во времени разработки и в поддержке. А конечному пользователю вообще плевать на чем
бакенд бота написан.

И окажется в сухом остатке что наговнячить бота на Node или на Python будет дешевле. И поддерживать
код тоже дешевле. Вносить изменения - легче и быстрее. Для бизнеса - вообще скорость внесения
изменений в продукт - это метрика №1. Кто вышел с маркетинг акцией в срок - тот заработал денег.

Если-бы я был бизнесом и хотел бы свой ТГ-бот то я-бы не вкладывался в С++ (хотя я уважаю этот язык).
Я-бы нанял команду Ноде-Жс и все было бы норм.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@pashudzu
Ну я разрабатываю бота на c++, мне также надоело писать консольные программы, и в принципе это поинтереснее консольных программ. Я знаю только одну библиотеку -> https://github.com/reo7sp/tgbot-cpp. Если говорить о видео уроках то тут либо выбирать этот -> https://www.youtube.com/watch?v=d5a0_UL-SeY&list=P..., ну или можно смотреть индусов хех, также обучатся можно по samples по ссылке -> https://github.com/reo7sp/tgbot-cpp/tree/master/samples. Для бизнеса как уже другие люди писали бота на c++ писать невыгодно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы