Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

desktop applications written in clojure

Which technologies from the clojure ecosystem can be recommended to develop a standalone desktop application? The technology I am looking for should have support for

  • access to the local file system (e.g file dialogs).
  • access to the web via http/https
  • support for updating the desktop application
  • async support (running multiple threads)
  • cross platform (no need for smartphones though)
  • interop support to native libs (not 100% required, but it's a risk if it doesn't have support for it)
  • reasonable ecosystem. E.g. I need to validate xml files to xsd's, eventually I need to make some linear algebra calculations.

The following alternatives come to my mind:

clojure/seesaw:

  • -- requires java runtime
  • -- standard swing look/feel might be a disadvantage
  • ++ robust java platform
  • ++ huge ecosystem
  • ++ interop support is not an issue
  • ++ core.async

clojurescript/html5/css:

  • ++ can be used with node-webkit or appjs to deliver standalone desktop app.
  • ++ flexible look/feel via css
  • ++ robust platform
  • -- smaller ecosystem. E.g. what about handling xml files or support for math libraries?
  • -- interop support might be an issue. Can i call e.g. native libs from node-webkit?
  • -- single threaded enviroment, what about async support?
  • -- unclear how to update the application.

Pedestal

  • ++ simplifies developing the application architecture
  • -- not sure it can be deployed as node-webkit app or appjs.
like image 762
shaft Avatar asked Jan 21 '14 10:01

shaft


1 Answers

I think clojurescript + node-webkit is a good choice:

  • it supports native libs,
  • clojure.core.async,
  • implement a simple update on your own by simple HTTP request or socket.io,
  • lighttable is a good example.
like image 181
llj098 Avatar answered Oct 17 '22 07:10

llj098