Domanda

Scriverò un bot XMPP (Jabber), e ho bisogno di decidere in quale lingua devo scriverlo. Attualmente sto considerando Python, Java e PHP.

Dal momento che mi aspetto il bot essere in esecuzione la maggior parte del tempo (vale a dire 23,5 / 7), ci sono alcuni argomenti specifiche favorevoli o contrarie utilizzando una di queste lingue? (Ad esempio non "$ x succhia", ma "$ y ha buona biblioteca daemon" o "$ z fughe memoria")

Lo scopo del bot saranno principalmente risponde all'input di utente.

Se nessuna di queste lingue sembrano adatti a voi, che cosa mi consiglia?

È stato utile?

Soluzione

Direi Python con quadro la ritorto . Ritorto è quadro sorprendente per asincrona in rete e la maggior parte del tempo ha già il supporto per il protocollo che si sta cercando. C'è una leggera curva di apprendimento a causa del modello del reattore, ma una volta superati si possono fare cose incredibili con la quantità più piccola di codice. Per quanto riguarda il protocollo IRC torse già lo ha, così, mentre io non sono un esperto di bot IRC, consiglio vivamente Python e Twisted.

A proposito, questo è il primo che si avvicinò con google: Python IRC bot utilizzando ritorto

Altri suggerimenti

Se si desidera assistere per più utenti allo stesso tempo (probabilmente si desidera), PHP non può essere una buona scelta, dal momento che non supporta (o sperimentalmente supporto) filettatura, si deve sborsare una copia della domanda per ogni utente.

Vi consiglio Java per questo scopo. Sun descrive Java come "semplice, orientato agli oggetti, distribuito, interpretate, robusto , sicura, architettura neutro, portatile, ad alte prestazioni, multithreaded e dinamico.".

A mio parere, ad eccezione di posti di lavoro a tempo critici Java più adatto per l'architettura client-server.

Tra le opzioni di cui hai postato, avrei dovuto suggerire Java. PHP, per esempio, semplicemente non sta andando a fare quello che vuoi che; è destinata ad essere un linguaggio di scripting web, non un linguaggio di scripting niente-altro. Python è in grado di fare ciò che si vuole, ma penso che Java fornirà più supporto out-of-the-box per la funzionalità che si sta cercando di raggiungere.

Personalmente mi piacerebbe iniziare con la ejabberd base di codice e lavorare da lì - per un server di rete senza testa agente, Erlang sarebbe la lingua / piattaforma che avevo raggiungere per prima, a meno che non vi erano argomenti convincenti per un'altra tecnologia. Dati immutabile e concorrenza attore a base spinge tutto il codice di pulizia normale giù nella piattaforma, lasciandovi liberi di concentrarsi sui bit che sono davvero ciò che la vostra applicazione è di circa.

ha scritto qualche anno fa bot per IRC utilizzando Delphi. E 'molto meglio di lingue interprete - mangia meno memoria, funziona molto più veloce, e si può essere sicuri che avrà grande riserva di velocità, se avrete bisogno di aggiungere più funzionalità e più in futuro - frasi utenti parsing, elaborarli. Per esempio il mio bot particolarmente registrato tutta la chat ed eseguito rapida ricerca su richiesta dell'utente (user appena scritto ricerca parola / frase -! Bot eseguito di ricerca e inviato ai risultati utente citazioni come brevi, in modo da utente potrebbe selezionare una delle citazioni e ottenere più posti intorno ad esso dal log). E 'quasi unimplementable utilizzando, ad esempio PHP, perché è troppo lento. Se bot si propone di lavorare sotto * nix - basta usare C / C ++:)

Se si desidera utilizzare solo le lingue elencate nel tuo post - allora solo Java alla mia mente. Leggi sopra il motivo.

Python jabberbot

Questo è un modo abbastanza semplice per creare un jabberbot con python.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top