[英]Is mixing Clojure with Python a good idea?
我正在开展一个涉及大量基于Web和AI工作的大项目。 我对Python非常熟悉,尽管我唯一关心的是并发编程和扩展这个项目以使其在集群上工作。 因此,Clojure for AI和支持Java函数调用并带来并发编程。
这是一个好主意,使用Python完成所有基于Web的api工作,并让Clojure处理大多数并发AI工作吗?
编辑:让我详细解释一下这种互动。 Python将完成大部分肮脏的工作(抓取,图像处理,改进数据库等等。)如果可能的话,Clojure将处理数据库或从Python获取数据。 我除了CPython与Python和Clojure之间的链接。
编辑2:这可能是一个愚蠢的问题,但这是一个相当长期的项目,将会发展很多并且经过几次迭代,Clojure是一种语言留下来吗? 它足够便携吗?
我在Clojure(在任意数量的机器上)和Ruby on Rails的前端构建了一个令人尴尬的并行数字运算应用程序。 我并不特别喜欢RoR,但这是当时的零预算项目,我们手头有一位愿意免费工作的Rails程序员。
Clojure部分由(大致)控制器,数字运算节点和实现JSON-over-HTTP API的服务器组成,该API是Rails Web应用程序的接口。 Clojure节点使用RabbitMQ相互通信。 因为我们在应用程序的不同部分之间定义了清晰的API,所以以后很容易在Clojure中重写前端(因为它更适合我们的需求)。
如果您正在开发具有长寿命和持续开发工作的分布式项目,那么将应用程序设计为多个单独的模块是有意义的,这些模块通过定义良好的API(json,bson,... over AMQP, HTTP,......或数据库)。 这意味着您可以使用您熟悉的语言快速入门,并在必要时在稍后阶段用其他语言重写部分。
我不能看到使用Python作为Web应用程序和Clojure用于并发数据处理/后端代码的大问题。 我假设你会使用像JSON这样的东西来进行两者之间的通信,这应该可以正常工作。
我个人使用Clojure(使用优秀的Noir作为Web框架,使用Korma作为数据库的东西。)但是如果你说你的经验主要是在Python中,那么从生产力中坚持使用Python可能是有意义的观点(至少在短期内)。
回答有关Clojure未来的问题:
如果你可以构建双方使用Data和Pure(ish)函数进行通信,那么这应该可以很好地工作。 将您的clojure函数包装在Web服务中,这些函数可以使用JSON(或者更优选的是clojure形式),这样可以使基于Python的前端可以访问这些函数。
当然,在Clojure中一直编写它会更有趣。 ;)
如果这是一个长期项目而不是构建清洁功能(如在接收和返回值中),那么交换数据的接口变得更加重要,因为它将使您能够独立地发展组件。
在这种情况下,我个人喜欢从下面的序列开始。
就Clojure的未来而言,这是一种由“惊人的程序员社区”而不是某些公司开发的语言。 我希望能够清除你对Clojure“长期”关注的怀疑。 顺便说一下,Clojure是LISP,所以你可以按自己喜欢的方式修改语言并自己解决问题,即使有人不这样做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.