gnat

gnat

I’m completely new to Elixir and don’t know Ruby, either.

Is anyone writing GUI applications in Elixir? I don’t know the language and the easiest way for me to learn (not to mention the way I’d primarily be using any language right now) is for desktop applications with a GUI front end - ideally something that will work on both Mac and Linux. What are my choices and how well supported/ integrated are they? In case it matters, I’m specifically interested in writing a distributed business application connecting multiple machines over the internet. From that standpoint, Elixir seems like it might be a good fit. But I need to have a GUI interface and not just in a browser.

I tried to research this question first with a web search and then with a search on this site; I haven’t found any good answers so far.

Showing Posts 1 to 10

AstonJ

AstonJ

Will the app be connected to a central server?

If so I would look at http://electron.atom.io for the GUI and then use Elixir on the back end/server. (@kofno has some experience with Electron. Hopefully he’ll spot this and add some thoughts.)

Mandemus

Mandemus

https://twitter.com/chris_mccord/status/593907559129550848

For a cross-platform desktop app Java would be my choice. If the Java client isn’t ready then you might investigate the possibility of channel integration by executing Phoenix.js through Nashorn.

JavaFX is really easy to work with and can deliver a great looking GUI.

kofno

kofno

If you have web development experience, I would recommend Electron. It’s fairly easy to build and distribute a desktop application if you already have experience with web technologies. I wrote an app using Elm and distributed it as an Electron app.

elixir and a server and elm as a frontend is pretty popular right now. I’ve actually started working on something built that way (though I’m not sure if I’m going to use electron, or just the browser).

gnat

gnat OP

Wow. I recently been using Atom a bit and have been impressed by it. I never bothered to wonder how they were handling their gui. I guess this is it! A lot of stuff to digest but if Atom is basically using electron (I understand it was formerly called “atom shell”) for its gui then it ought to be good enough! At least I will presume so for now.

I’m intrigued that Elm – another language which I’ve read a bit about but not yet learned – and Elixir are being used together… Does this qualify as a real symbiosis? Are the communities cooperating? I previously would have classified Elm and Elixir as “competitors” in somewhat the same space. I had read something about a project to bring Elm to the server.

Any links or comments on any of these things would be appreciated.

gnat

gnat OP

Thanks. It will have a centralized store, of sorts, but not really client-server. The nodes are supposed to maintain their own limited data and keep operating in case of any outage and, later, synchronize. The purpose is to tie together a number of loosely coupled businesses.

AstonJ

AstonJ

No they are not competitors at all - Elm is front end and Elixir is backend. Elm is a HTML/CSS/JS transpilier, I can’t see why they would want it on the server as well, and even if they did, it would be JS - nobody in their right mind would want JS on the server :043:

Mandemus

Mandemus

At the latest Elixir conference which you can find on Youtube, the author of Elm gave a presentation in which he said he was working on a tight integration with Phoenix channels.

Time frame given was about a month.

gnat

gnat OP

Yes. I guess I saw that - didn’t read it. Thanks for locating the comment. I figured Elm was at least originally written in Haskell (don’t really know, but figured). So it doesn’t have to stay with HTML/CSS/JS manipulation, right? It’s getting kind of crazy out there. You should see the kind of stuff they’re planning with red-lang. Although not a purely functional language, imo red will upset a few applecarts…to put it mildly.

NobbZ

NobbZ

For GUIs in Elixir you can still use Erlangs wx-module. For this to work, of course, it is necessary that your Erlang release is compiled with wx included.

But for the client side I’d prefer a more lightweight solution that does not pull in a full gigabyte as runtime dependency…

This in mind, I do think, currently the best approach is a JavaScript-application which runs in the Browser and is written in a way that it can work without internet access. This could even update itself silently whenever necessary (and online). Also there are multiple tools available, that can convert HTML5/JS-Applications into native applications for iOS, Android or Win mobile. They might need additional tweaking of the source though.

But if you really want to use the same language in the complete applications stack, I heard about a language called haxe which promisses exactly that, but I never tried more than a hello-world, because I#ve no project which could make use of it.

mackenza

mackenza

if this is your goal, Elixir is not at all well suited to learn by creating GUIs. All the answers you got above are about actually creating the GUI itself in another language (Elm, JS/HTML/CSS with Electron, Java) not in Elixir. All the above answers are good, but if your stated goal is to learn Elixir by doing GUI programming (non-web), you won’t find much/anything to support that in Elixir itself.

Where Next? Top

Trending in Questions Top

stjefim
Hello! Suppose you are building workflow (order / task / payment) processing system with the following requirements: Each workflow con...
New
itzmidinesh
Hi all, I’m working on a Phoenix project where I need to make external HTTP requests and I’m trying to choose between Req and HTTPoison....
New
pragdave
How do I tell Hologram not to escape HTML when substituting into templates? {Textile.render(@product.long_description)} escapes the HTM...
New
rlipscombe
I’d like to create a file with 600 permissions (rw-------), but there’s a race condition if I create it and then change the permissions. ...
New
leoschweizer
Hi, we run different LLM models across a cluster, with each node loading a configurable subset. Model-specific queues let nodes consume ...
New
saleyn
Is there a way to import record definitions in the iex shell for pretty printing (similar to the rr command in the erl shell)? This woul...
New
rlipscombe
When I use Mix.install with a git dependency, using git@github.com:... how do I change the SSH identity used? I’ve got two Github accoun...
New

Other Trending Topics Top

bartblast
Hologram v0.12.7 has been released. Bug Fixes Fix dev server pages not responding after running mix test alongside it (#1180) Fix comma...
New
dominicletz
Hey there, I haven’t seen a list of useful Elixir specific skills for the popular AI tools yet so I’m starting one here with my first. ...
New
raa-ziq
Hi everyone :waving_hand: I wanted to share something I’ve been building — NowBlind, a random chat app designed to help people discover ...
New
mudasobwa
I fully migrated to my own harness from Anthropic/Gemini and I think it’s time to share it. Welcome DSH, the DeepSeek Harness, fully writ...
New
KristerV
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
OndrejValenta
(I just needed to vent somewhere and LinkedIn is full of hope, or hype, I’m not sure which exactly) AI dream has many faces, but general...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews