Pergunta

Eu vou estar escrevendo um bot XMPP (Jabber), e eu preciso de decidir em que língua eu deveria escrevê-lo. Atualmente estou considerando Python, Java e PHP.

Desde que eu estou esperando que o bot para ser executado na maioria das vezes (ou seja, 23,5 / 7), existem alguns argumentos específicos contra ou a utilizar um destes idiomas? (Por exemplo, não "$ x suga", mas "$ y tem boa biblioteca daemon" ou "$ memória z vazamentos")

O objetivo do bot vai ser maioritariamente responder a entrada do usuário.

Se nenhuma dessas línguas parece adequado para você, o que você recomendaria?

Foi útil?

Solução

Eu diria Python com o quadro do torcida . Torcido é framework incrível para a rede assíncrona e na maioria das vezes ele já tem o suporte para o protocolo que você está procurando. Há uma ligeira curva de aprendizagem por causa do padrão do reator, mas uma vez superada você pode fazer coisas incríveis com a quantidade mais pequena de código. Como para o protocolo IRC torcida já tem, por isso, enquanto eu não sou um especialista em IRC bots, eu recomendaria definitivamente Python and Twisted.

BTW, este é o primeiro que veio com google: Python IRC bot usando torcida

Outras dicas

Se você quiser serviço para vários usuários ao mesmo tempo (provavelmente você quiser), PHP pode não ser uma boa escolha, uma vez que não suporta (ou experimentalmente apoio) threading, você tem que desembolsar uma cópia do seu aplicativo para cada utilizador.

Eu recomendo Java para esta finalidade. Sun descreve Java como "simples, orientada a objetos, distribuído, interpretado, robusta , fixe, arquitetura neutra, portátil e de alto desempenho, multithreaded , e dinâmico.".

Na minha opinião, com exceção dos trabalhos críticos de tempo Java melhores ternos para arquitetura cliente-servidor.

Entre as opções que você postou, eu teria que sugerem Java. PHP, por exemplo, simplesmente não vai fazer o que você quer que ele; que está destinado a ser uma linguagem de script web, não é uma linguagem de script nada-mais. Python é capaz de fazer o que quiser, mas eu acho que Java irá fornecer mais out-of-the-box suporte para a funcionalidade que você está tentando alcançar.

Pessoalmente eu começaria com a ejabberd código base e trabalhar a partir daí - para um servidor de rede sem cabeça agente, Erlang seria o idioma / plataforma de eu chegar para o primeiro, a menos que houvesse argumentos convincentes para outra tecnologia. dados imutáveis ??e simultaneidade baseada ator empurra todo o código de limpeza normais para dentro da plataforma, deixando-o livre para se concentrar sobre os bits que são realmente o que a sua aplicação está em causa.

escreveu há alguns anos bot para IRC usando Delphi. É muito melhor do que as linguagens de intérprete - come menos memória, funciona muito mais rápido, e você pode ter certeza que ele vai ter uma grande reserva de velocidade se você vai precisar adicionar mais e mais recursos no futuro - usuários parsing frases, processá-los. Por exemplo o meu bot particularmente logado todos chat e realizada busca rápida a pedido do utilizador (usuário escreveu apenas procurar palavra / frase - bot realizada busca e enviado para resultados do usuário como citações curtas, assim o usuário pode selecionar um dos citações e obter mais posts em torno dele de log). É quase unimplementable utilizando, por exemplo, php, porque é muito lento. Se bot é proposto para trabalho sob * nix - basta usar c / c ++:)

Se você quiser usar apenas os idiomas enumerados no seu post - só então Java à minha mente. Leia acima porquê.

Python Jabberbot

Esta é uma maneira bastante fácil de criar um jabberbot com python.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top