Clojure API должен казаться более естественным, поскольку он создан с учетом идиом Clojure. Конечно, вы по-прежнему можете использовать Java API, но тогда ожидайте много вызовов функций взаимодействия Java.
В этом, конечно, нет ничего плохого, но это только не свободный API Clojure.
Я не вижу снижения производительности, JVM загружается медленно, независимо от того, что вы используете, будь то Java, Scala, Clojure или JRuby. Clojure действительно эффективен. Кстати, вы знаете, что в Clojure вы можете скомпилировать свой проект в формат Bytecode?
Является ли Clojure хорошим выбором для проекта по загрузке файлов?
Я бы сказал определенно!
Одним из основных преимуществ является то, как Clojure справляется с параллелизмом. Если подумать, в вашем проекте будет много потоков, блокировок и синхронизации (вы создаете загрузчик, который может загружать много файлов одновременно, правильно)?
В Clojure вы будете использовать более высокие абстракции, такие как агенты (на самом деле удобно для вашего проекта), рефы и атомы.
Я не уверен в ресурсах, которые вы читали о производительности JVM и управлении памятью. JVM — это сложное программное обеспечение. JVM предлагает множество стратегий управления памятью. Одни подходят для настольных приложений, другие — для серверов. Вы можете выбрать подходящую стратегию в зависимости от требований вашего приложения/системы.
Кстати, планируете строить свое приложение на Swing? Если да, и вы решили использовать Clojure, взгляните на Seesaw.
Seesaw — это библиотека/DSL для создания пользовательских интерфейсов в Clojure. Так случилось, что он построен на Swing, но, пожалуйста, не держите это против него.
person
Chiron
schedule
09.08.2013