Elixir Livebook now as a desktop app
91–100 of 111 posts
Re: Elixir Livebook now as a desktop app
#92Earlier quoted context omitted.
I, too, am interested but I'm not terribly literate in elixir yet. I am aware that you can compile executables in elixir with a release command but I'd be curious to hear more about (or at least be pointed to the specific spots in the code) how the bundling was done to give you a discrete application per platform, with app icon and everything. Having a script that opens a web browser pages is simple enough, but the e…
Right, so our goal was to allow configuring the bundle with app icons etc and importantly custom URL schemes and file types [1]. And then macOS- [2] and Windows- [3] specific launchers capture the "open file" and "open url" events and trigger the Elixir side of things. Another reason for native launchers is if for any reason we couldn't start the Elixir side, we want to let the user know that something went wrong and…
Re: Elixir Livebook now as a desktop app
#93Earlier quoted context omitted.
Plus sane failure domains: go has had preemptively scheduled green threads from day one but failure domains are really not a thing in go.
Hm, I think I've read somewhere that both Go and Elixir and kinda cooperative. A process in Elixir can yield control after certain number of reductions (function calls I think) and in Go a goroutine can only yield control on function calls, so if you have an infinite loop just adding numbers it will run uninterrupted. Both of them are "less cooperative" than Python with explicit yield statement. Do I get this right?…
Elixir is in practice more preemptive than go (last I checked with go) because you cannot infinitely loop and lock cpu in elixir -- a loop requires you to tail-call in elixir, so that's a yield boundary, and I'm certain that in earlier go that wasn't the case if you `while true {}`
Re: Elixir Livebook now as a desktop app
#94Earlier quoted context omitted.
Elixir also opens you up to the entire erlang and Beam ecosystems. Not as common as Java, I know, but still decades of knowledge and tooling around it cutting across many industries.
Seems like Beam is a more specialized tool than JVM but if you need that sort of functionality it's phenomenal. With things like built-in performant persistent key value stores and cluster management I'm kind of surprised more people haven't pushed through the "this is useful but lacks broad adoption" barrier.
This said it’s the only environment I’m aware of that is built around the idea of cluster, not just a local process that may do some rpc to other processes.
You can find libraries for many things but they are not the same quality and breadth as the big Java ones.
Re: Elixir Livebook now as a desktop app
#95Earlier quoted context omitted.
Why would you use a notebook for quick scripts though
I often need to inspect/transform some JSON/CSV/text/whatever data, move around/organize a bunch files, and similar things. I find that notebooks work great for that as you don't need to set up an environment, you can easily collect and rerun your scripts if you do need them again, and the output options are great for debugging and looking at data.
Re: Elixir Livebook now as a desktop app
#96Re: Elixir Livebook now as a desktop app
#97Earlier quoted context omitted.
Neat, I didn't know about Discord. Whatsapp I thought it was all Erlang, are you sure about Elixir being prevalent there? I wonder if it's only a few teams handling major events at Discord, or if that's truly their default backend service language all their backend teams uses. If so, maybe I should look at their job listings :p
From the discord blog posts it seems that elixir powers the chat system, with rust and python as the other two main languages in their stack. As for whatsapp, they are mainly a erlang shop and yesterday they open sourced a type checker for erlang: https://github.com/WhatsApp/eqwalizer
Re: Elixir Livebook now as a desktop app
#98Earlier quoted context omitted.
I've wondered whether it's easier to add data analyst stuff to Elixir that Python seems to have, or add features to Python that Erlang (and by extension Elixir) provides out of the box. By what I can see, if you want multiprocessing on Python in an easier way (let's say running async), you have to use something like ray core[0], then if you want multiple machines you need redis(?). Elixir/Erlang supports this out of…
[I have no experience with Elixir.] Would that be possible to have elixir intelligently manage multiprocessing of python scripts? I would be especially interested in being able to have the scripts talk to each other, but have no idea how it could work, besides perhaps having them communicate by writing to / reading from the same files, which seems risky.
Re: Elixir Livebook now as a desktop app
#99Earlier quoted context omitted.
I've wondered whether it's easier to add data analyst stuff to Elixir that Python seems to have, or add features to Python that Erlang (and by extension Elixir) provides out of the box. By what I can see, if you want multiprocessing on Python in an easier way (let's say running async), you have to use something like ray core[0], then if you want multiple machines you need redis(?). Elixir/Erlang supports this out of…
[I have no experience with Elixir.] Would that be possible to have elixir intelligently manage multiprocessing of python scripts? I would be especially interested in being able to have the scripts talk to each other, but have no idea how it could work, besides perhaps having them communicate by writing to / reading from the same files, which seems risky.
This is just my amateur guess -- I'd be happy to hear an Elixir/BEAM/OTP expert chime in.
Re: Elixir Livebook now as a desktop app
#100The Elixir ecosystem is growing incredibly well. I am impressed both from an engineering and a product perspective. It shows that they are playing the long game. I think they are achieving what I wished happen to the Clojure ecosystem: productive, well designed, respected and popular. Clojure missed the last step, unfortunately.
Because of the Java ecosystem, in Clojure you are in much more advantageous position than with Elixir.