用clojure编写的桌面应用程序

sha*_*aft 7 clojure clojurescript pedestal

可以推荐使用clojure生态系统中的哪些技术来开发独立的桌面应用程序?我正在寻找的技术应该得到支持

  • 访问本地文件系统(例如文件对话框).
  • 通过http/https访问网络
  • 支持更新桌面应用程序
  • 异步支持(运行多个线程)
  • 跨平台(不需要智能手机)
  • 对本机库的互操作支持(不是100%需要,但如果它没有支持则存在风险)
  • 合理的生态系 例如,我需要将xml文件验证到xsd,最终我需要进行一些线性代数计算.

我想到了以下替代方案:

Clojure的/跷跷板:

  • - 需要java运行时
  • - 标准的挥杆外观可能是一个缺点
  • ++健壮的java平台
  • ++庞大的生态系统
  • ++互操作支持不是问题
  • ++ core.async

clojurescript/HTML5/CSS:

  • ++可以与node-webkit或appjs一起使用,以提供独立的桌面应用程序.
  • ++通过CSS灵活的外观/感觉
  • ++健壮的平台
  • - 较小的生态系统 例如,处理xml文件或支持数学库呢?
  • - 互操作支持可能是一个问题.我可以从node-webkit调用例如本机库吗?
  • - 单线程环境,异步支持怎么样?
  • - 不清楚如何更新应用程序.

  • ++简化了应用程序架构的开发
  • - 不确定它是否可以部署为node-webkit app或appjs.

llj*_*098 4

我认为 clojurescript + node-webkit 是一个不错的选择:

  • 它支持本机库,
  • clojure.core.async,
  • 通过简单的HTTP请求或socket.io自行实现简单的更新,
  • lighttable 就是一个很好的例子。