我将编写一个 XMPP (Jabber) 机器人,我需要决定应该用哪种语言编写它。目前我正在考虑Python、Java 和PHP。

因为我预计机器人大部分时间都在运行(即23.5/7),是否有一些支持或反对使用其中一种语言的具体论据?(例如。不是“$x 很糟糕”,而是“$y 有很好的守护进程库”或“$z 泄漏内存”)

机器人的目的主要是响应用户输入。

如果这些语言都不适合您,您会推荐什么语言?

有帮助吗?

解决方案

我会说Python 扭曲的 框架。Twisted 是一个令人惊叹的异步网络框架,大多数时候它已经支持您正在寻找的协议。由于反应器模式,存在轻微的学习曲线,但一旦克服,您就可以用最少的代码做一些令人惊奇的事情。至于IRC协议twisted已经有了,所以虽然我不是IRC机器人方面的专家,但我肯定会推荐Python和Twisted。

顺便说一句,这是谷歌提出的第一个: 使用 Twisted 的 Python IRC 机器人

其他提示

如果你想在同一时间(可能是你想要的)为多个用户提供服务,PHP可能不是一个很好的选择,因为它不支持(或实验支持)线程,你必须到餐桌的应用程序的副本为每个用户。

我推荐的Java实现此目的。太阳描述Java作为 “简单,面向对象的,分布式,解释的健壮下,安全的,中性结构,便携式的,高性能的,的多线程,然后动态。”

在我随着时间的关键工作异常舆论的Java客户端 - 服务器架构最适合。

您发布的选项中,我会建议的Java。 PHP,一个,根本不会做你希望它是什么;它的意思是一个Web脚本语言,而不是一个东西,其他的脚本语言。 Python是能够做到你想要什么,但我认为Java将提供你想要实现的功能更外的现成支持。

我个人倒与 ejabberd 的代码库,并从那里开始工作 - 为一具无头网络服务器剂,二郎将是语言/平台,我会达到第一,除非有另外的技术令人信服的理由。不可改变的数据和基于角色的并发推动所有正常的看家代码下到平台上,让你自由地专注于那些真正的你的程序是什么位。

使用Delphi写若干年前机器人的IRC。它比解释语言好得多 - 吃更少的内存,工作起来更快,你可以肯定,这将有速度的巨大储备,如果你需要在未来增加越来越多的功能 - 解析用户的短语,对它们进行处理。例如我的机器人特别是记录所有聊天,并通过用户请求进行快速搜索(用户只写了搜索的词/短语的 - !机器人进行搜索,并发送至用户的结果短期行情,因此用户可以选择的一个报价,并获得更多的职位围绕它从日志)。它使用例如PHP,因为实在是太慢了几乎是不可实现的。 如果机器人提出下* nix的工作 - 只用C / C ++:)

如果您希望只使用在帖子中列举的语言 - 那么只有Java来我的脑海里。阅读上述原因。

的Python Jabberbot

这是创建一个蟒jabberbot一个相当简单的方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top