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

water
I’m aware of 2 such projects, are there others? git: GitHub - team-alembic/realworld: A fullstack Phoenix LiveView application with back...
New
katta
I having some trouble figuring out if I have set myself too strict of standards for my production server. Currently I can handle 75% of r...
New
peck
Hi everyone. My team and I have been working on a fairly modest app based around video streaming and chat, but we’ve landed a customer t...
New
bradley
I really like the adapter patterns that ecto, nebulex, waffle, etc. use and would love find something similar for a key management servic...
New
unaware8150
Hello folks! So at work, we are seeing some situations where we have to define some “fixed” strings that are used across the codebase in...
New
Alvinkariuki
How Can I Optimise Compile Time Dependencies I have been building an elixir application for about 2 years now. Many modules and files ha...
New

Other Trending Topics Top

budgie
A little off-topic, but I feel like people here have a good head on their shoulders. I used to be quite good at making software. Was luc...
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
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
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
juhalehtonen
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New
budgie
I love Elixir. It’s one of 2 programming languages I’ve ever fallen in love with. But I don’t use it anymore. Serverless was the promis...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews