繁体   English   中英

要编写下载器,请使用Clojure.java.io还是Java的io api?

[英]To write a downloader, Clojure.java.io or Java's io api?

我正在尝试在Clojure中编写一个常规的http / ftp文件下载器。 我进行了一些研究,发现可以使用java的api-BufferedReader BufferedInputStream等,也可以使用Clojure.java.io的api-作家,读者,输入流,输出流。

  1. 我发现Clojure的api比Java的api更易于使用和阅读,但是在性能,速度等方面,java的api会是一个更好的选择吗?

  2. 还有其他理由选择一个而不是另一个吗?

  3. 作为一种jvm平台语言,就性能而言,Clojure是文件下载程序项目的不错选择吗? 在进行研究时,我还阅读了一些有关jvm平台上的速度和内存性能的文章,现在我想知道我的语言选择是否与我的项目非常匹配。

考虑到Clojure习语创建的Clojure API应该更加自然。 当然,您仍然可以使用Java API,但随后会调用许多Java互操作函数。
当然,这没有什么错,但是它并不是流利的Clojure API。

我看不到性能损失,无论您使用的是Java,Scala,Clojure还是JRuby,JVM的启动速度都很慢。 Clojure确实表现出色。 顺便说一句,您是否知道可以在Clojure中将项目编译为Bytecode格式?

Clojure是文件下载器项目的不错选择吗?
我肯定会说!
主要优势之一是Clojure如何处理并发。 如果您考虑一下,您的项目将执行大量线程,锁定和同步操作(您正在构建一个可以同时下载许多文件的下载器,对吗?)?
在Clojure中,您将使用更高的抽象,例如代理(对于您的项目而言非常方便),引用和原子。

我不确定您阅读的有关JVM性能和内存管理的资源。 JVM是一款复杂的软件。 JVM提供了许多策略来管理内存。 有些适用于桌面应用程序,有些适用于服务器。 您可以根据您的应用程序/系统要求选择合适的策略。

顺便说一句,是否打算使用Swing构建您的应用程序? 如果是,那么您决定选择Clojure,然后看看Seesaw

跷跷板是用于在Clojure中构建用户界面的库/ DSL。 它恰好建立在Swing上,但是请不要反对它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM