Комментарии 8
Посоветуйте, есть ли разница в том чтобы писать тг бота на js и python ?
Стоит ли учить python ради производительности именно телеграмм бота?
Посоветуйте, есть ли разница в том чтобы писать тг бота на js и python ?
Пишу на JS (на TypeScript, конечно). С помощью библиотеки TelegrafJS очень удобно писать сценарии взаимодействия с ботом. Там они в терминологии библиотеки так и называются - Scenes, Actions. Особенно это удобно для меня пишется на серверном фреймворке NestJS - знай себе декорируй и в модули инкапсулируй. Это скорее профессиональная деформация, так как я Ангулярщик, мне Nest лучше всего зайдёт чисто автоматически.
Стоит ли учить python ради производительности именно телеграмм бота?
Вы немного путаете предмет вопроса. За любым ботом в любом мессенджере стоит какой-то бекенд. Всё взаимодействие с ботом происходит по HTTP и зависит полностью от скорости работы платформы (Telegram), качества сети и только потом от того, как вы напишете свой бекенд.
Можно написать быстрый бекенд на чем угодно. А можно тупануть и довести тысяч раз считывать файл хоть на питоне, хоть на джаваскрипте.
Зависит от задач. Если ваш бот должен OCR'ить большие PDF'ки или гонять огромные нейронки - тут вы никак его почти не ускорите без глубочайших оптимизаций самих алгоритмов, выигрыш от ЯП будет мизерным (мы ведь говорим от пет-проектах, да?). Он всегда будет медленно работать.
Или, наоборот, если вы захостите бота где-нибудь в Уганде на сервере, который подключён к мобильному свистку у ОпСоСа со скоростью 228 кбит/сек и пингом 1488 мс, то хоть наоптимизируйтесь - бутылочным горлышком будет канал связи даже на Hello World'ах.
Вот у меня на обработку 10 картинок от фронтенда, занесение их в базу и затем отправку двух сообщений по 5 картинок в телеграмовского бота уходит до 10-15 секунд, хотя на бекенде всё выполняется за пару-тройку сек. (засекал вместе с аплоадом файлов) - виной всему даже не библиотека TelegrafJS, а сама платформа Телеграм, которая сообщения сначала кладёт в очередь и потом шлёт в бота. Вот ты хоть за 0.00069 сек. в моей задаче отработай, а сама платформа будет съедать ≈85% времени работы.
Спасибо закону "О рекламе" и его конским штрафам, который заставил меня кранчить последние три недели для автоматизации маркировки промо-материалов... именно он дал мне понять всё то, что я написал выше.
Вывод: пишите на чем угодно, вряд ли бутылочным горлышком будете вы, если вы не будете грузить серверную бизнес-логику тяжелейшими задачами.
P. S. Python чуть медленнее JS. Just sayin'
Какая производительность вам нужна? Реально бот будет обрабатывать сотни команд в секунду?
Логика и архитектура работы бота в разы важнее, чем язык на котором он написан.
Я вот бот на bash потихоньку колупаю. Производительность от него не ожидаю, но для парочки домашних групп он вообще ничего не занимает на самой дешевой виртуалке в инете. И софт ему вообще никакой не нужен. Только sqlite поставил для удобства
писать тг бота на js и python ?
Я обычно использую WWW::Telegram::BotAPI
При использовании python-telegram-bot у меня не работает аутентификации через Updater
:
updater = Updater(token='YOUR_BOT_TOKEN', use_context=True)
выдается ошибка TypeError: init() got an unexpected keyword argument 'token' .
Но работает таким образом:
application = ApplicationBuilder().token('YOUR_BOT_TOKEN').build()
logging.exception(msg, *args, **kwargs)
Взгляд на телеграм-ботов изнутри