Programming languages 为Jabber机器人选择哪种语言?

Programming languages 为Jabber机器人选择哪种语言?,programming-languages,xmpp,bots,Programming Languages,Xmpp,Bots,我将编写一个XMPP(Jabber)机器人,我需要决定用哪种语言编写它。目前我正在考虑Python、Java和PHP 由于我预计bot大部分时间都在运行(即23.5/7),是否有一些具体的理由支持或反对使用其中一种语言?(例如,不是“$x很烂”,而是“$y具有良好的守护程序库”或“$z泄漏内存”) 机器人的目的主要是响应用户的输入 如果这些语言都不适合您,您会推荐什么?如果您想同时为多个用户提供服务(可能是您想要的),PHP可能不是一个好的选择,因为它不支持(或实验上支持)线程,您必须为每个用户

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

由于我预计bot大部分时间都在运行(即23.5/7),是否有一些具体的理由支持或反对使用其中一种语言?(例如,不是“$x很烂”,而是“$y具有良好的守护程序库”或“$z泄漏内存”)

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


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

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

为此,我推荐Java。Sun将Java描述为“简单的、面向对象的、分布式的、解释的、健壮的、安全的、与体系结构无关的、可移植的、高性能的、多线程的和动态的”


在我看来,除了时间关键型作业外,Java最适合客户机-服务器体系结构。

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

为此,我推荐Java。Sun将Java描述为“简单的、面向对象的、分布式的、解释的、健壮的、安全的、与体系结构无关的、可移植的、高性能的、多线程的和动态的”


在我看来,除了时间紧迫的工作之外,Java最适合客户机-服务器体系结构。

几年前使用delphi为IRC编写了bot。它比解释器语言好得多——占用更少的内存,工作速度更快,而且如果将来需要添加更多的功能,您可以确信它将有很大的速度储备——解析用户短语,处理它们。例如,我的机器人特别记录了所有聊天,并根据用户请求执行快速搜索(用户刚刚编写了!搜索词/短语-机器人执行搜索并将搜索结果作为简短的引语发送给用户,因此用户可以选择其中一个引语,并从日志中获取更多关于它的帖子)。例如,使用php几乎无法实现,因为它太慢了。 如果建议bot在*nix下工作-只需使用c/c++:)


如果你只想使用文章中列举的语言,那么我只想使用Java。阅读上面的原因。

几年前使用delphi为IRC编写了bot。它比解释器语言好得多——占用更少的内存,工作速度更快,而且如果将来需要添加更多的功能,您可以确信它将有很大的速度储备——解析用户短语,处理它们。例如,我的机器人特别记录了所有聊天,并根据用户请求执行快速搜索(用户刚刚编写了!搜索词/短语-机器人执行搜索并将搜索结果作为简短的引语发送给用户,因此用户可以选择其中一个引语,并从日志中获取更多关于它的帖子)。例如,使用php几乎无法实现,因为它太慢了。 如果建议bot在*nix下工作-只需使用c/c++:)


如果你只想使用文章中列举的语言,那么我只想使用Java。请阅读上面的原因。

在您发布的选项中,我建议使用Java。比如说,PHP根本不会做你想做的事情;它是一种web脚本语言,而不是其他任何脚本语言。Python可以做你想做的事情,但我认为Java将为你试图实现的功能提供更多的现成支持。

在你发布的选项中,我建议使用Java。比如说,PHP根本不会做你想做的事情;它是一种web脚本语言,而不是其他任何脚本语言。Python可以做您想做的事情,但我认为Java将为您试图实现的功能提供更多现成的支持。

我想说Python与框架一起使用。Twisted是用于异步网络的惊人框架,大多数情况下它已经支持您正在寻找的协议。由于reactor模式,有一个很小的学习曲线,但是一旦克服了这个问题,你就可以用最少的代码完成惊人的事情。至于IRC协议twisted已经有了它,所以虽然我不是IRC机器人的专家,但我绝对推荐Python和twisted


顺便说一句,这是谷歌推出的第一款:

我想说的是Python框架。Twisted是用于异步网络的惊人框架,大多数情况下它已经支持您正在寻找的协议。由于reactor模式,有一个很小的学习曲线,但是一旦克服了这个问题,你就可以用最少的代码完成惊人的事情。至于IRC协议twisted已经有了它,所以虽然我不是IRC机器人的专家,但我绝对推荐Python和twisted


顺便说一句,这是谷歌推出的第一款:

我个人会从代码库开始,然后从代码库开始工作——对于无头网络服务器代理,Erlang将是我首先想到的语言/平台,除非有令人信服的理由支持另一种技术。不可变的数据和基于参与者的并发将所有正常的内务管理代码推送到平台中,让您可以自由地专注于应用程序真正涉及的内容。

就个人而言,我将从代码库开始,并从代码库开始工作——对于无头网络服务器代理,除非有令人信服的理由支持另一种技术,否则Erlang将是我首先想到的语言/平台。不可变的数据和基于参与者的并发将所有正常的内务管理代码向下推到平台中,让您可以自由地专注于应用程序真正涉及的内容。

<