Вопрос

Я буду писать XMPP-бота (Jabber), и мне нужно решить, на каком языке я должен его написать.В настоящее время я рассматриваю Python, Java и PHP.

Поскольку я ожидаю, что бот будет работать большую часть времени (т.е.23.5/7), есть ли какие-то конкретные аргументы за или против использования одного из этих языков?(например,не "$ x отстой", а "у $ y хорошая библиотека демонов" или "у $ z утечка памяти")

Целью бота в основном будет отвечать на вводимые пользователем данные.

Если ни один из этих языков не кажется вам подходящим, что бы вы порекомендовали?

Это было полезно?

Решение

Я бы сказал, Python с Скрученный рамки.Twisted - это потрясающий фреймворк для асинхронных сетей, и в большинстве случаев он уже поддерживает нужный вам протокол.Существует небольшая кривая обучения из-за паттерна reactor, но после преодоления вы сможете делать удивительные вещи с минимальным количеством кода.Что касается протокола IRC, то он уже есть в twisted, поэтому, хотя я не эксперт по IRC-ботам, я бы определенно рекомендовал Python и Twisted.

Кстати, это первое, что придумал Google: IRC-бот на Python, использующий Twisted

Другие советы

Если вы хотите обслуживать несколько пользователей одновременно (возможно, вы этого хотите), PHP может оказаться неподходящим выбором, поскольку он не поддерживает (или экспериментально не поддерживает) потоковую обработку, вам придется создать копию вашего приложения для каждого пользователя.

Я рекомендую Java для этой цели.Sun описывает Java как "простую, объектно-ориентированную, распределенную, интерпретируемую, надежный, безопасный, архитектурно нейтральный, портативный, высокопроизводительный, многопоточный, и динамичный"..

На мой взгляд, за исключением критичных по времени заданий Java лучше всего подходит для клиент-серверной архитектуры.

Из опубликованных вами вариантов я бы предложил Java.PHP, например, просто не собирается делать то, что вы от него хотите;это должен быть язык веб-сценариев, а не какой-либо другой язык сценариев.Python способен делать то, что вы хотите, но я думаю, что Java обеспечит более готовую поддержку функциональности, которой вы пытаетесь достичь.

Лично я бы начал с эджабберд кодовая база и работа оттуда - для безголового агента сетевого сервера Erlang был бы тем языком / платформой, к которым я бы обратился в первую очередь, если бы не было убедительных аргументов в пользу другой технологии.Неизменяемые данные и параллелизм на основе действующих лиц переносят весь обычный код для ведения домашнего хозяйства на платформу, позволяя вам свободно сосредоточиться на тех элементах, которые действительно предназначены для вашего приложения.

Написал несколько лет назад бота для IRC с использованием delphi.Это намного лучше, чем языки-переводчики - потребляет меньше памяти, работает намного быстрее, и вы можете быть уверены, что у него будет большой запас скорости, если вам понадобится добавлять все больше и больше функций в будущем - разбирать фразы пользователей, обрабатывать их.Например, мой бот специально регистрировал весь чат и выполнял быстрый поиск по запросу пользователя (пользователь только что написал !search слово/фраза - бот выполнял поиск и отправлял пользователю результаты в виде коротких цитат, чтобы пользователь мог выбрать одну из цитат и получить больше сообщений вокруг нее из журнала).Это практически невозможно реализовать, используя, например, php, потому что это слишком медленно.Если боту предлагается работать под * nix - просто используйте c / c ++ :)

Если вы хотите использовать только языки, перечисленные в вашем посте, то, на мой взгляд, только Java.Читайте выше, почему.

Питон - Джаббербот

Это довольно простой способ создать jabberbot с помощью python.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top