Настольные приложения, написанные в clojure
Какие технологии из экосистемы clojure можно рекомендовать для разработки автономного настольного приложения? Технология, которую я ищу, должна иметь поддержку
- доступ к локальной файловой системе (например, файловые диалоги).
- доступ к сети через http/https
- поддержка обновления настольного приложения
- асинхронная поддержка (запуск нескольких потоков)
- кроссплатформенный (хотя для смартфонов не нужен)
- поддержка взаимодействия с родными библиотеками (не требуется на 100%, но есть риск, если у него нет поддержки)
- разумная экосистема. Например, мне нужно проверить xml-файлы на xsd, в конце концов мне нужно сделать некоторые вычисления по линейной алгебре.
Мне приходят в голову следующие альтернативы:
Clojure/ качели:
- - требует времени выполнения Java
- - стандартный внешний вид качания может быть недостатком
- ++ надежная платформа Java
- ++ огромная экосистема
- Поддержка взаимодействия ++ не проблема
- ++ core.async
clojurescript / html5 / CSS:
- ++ может использоваться с node-webkit или appjs для предоставления автономного настольного приложения.
- ++ гибкий внешний вид через CSS
- ++ надежная платформа
- меньшая экосистема. Например, как насчет обработки XML-файлов или поддержки математических библиотек?
- - поддержка взаимодействия может быть проблемой. Могу ли я назвать, например, нативные библиотеки из node-webkit?
- однопоточная среда, как насчет асинхронной поддержки?
- - неясно, как обновить приложение.
пьедестал
- ++ упрощает разработку архитектуры приложения
- - не уверен, что его можно развернуть как приложение node-webkit или appjs.
2 ответа
Я думаю, что clojurescript + node-webkit - хороший выбор:
- поддерживает родных библиотек,
- clojure.core.async,
- реализовать простое обновление самостоятельно с помощью простого HTTP-запроса или socket.io,
- lighttable - хороший пример.
Электрон должен быть заменой NW.js (node-webkit) и предлагает больше гибкости, чем когда нужно показывать и скрывать окна.