yolo007wizard

yolo007wizard

I’ve been reading up on Firefly and it looks very impressive. Does this mean faster CPU bound Elixir? i.e. ballpark java speeds? Or at least tighter interop with Rust would be fantastic with what they mentioned in NIF section.

I also found Hologram which I think leverages Firefly to put Elixir client side and it made me drool a little.

Stuff like this makes me very excited about the beam garden.

Showing Posts 1 to 10

bartblast

bartblast

Creator of Hologram

Hey, the creator of Hologram here. Hologram is not using Firefly under the hood - it transpiles BEAM definitions directly to JavaScript, and it has a different scope than FireFly in general, think ElixirScript + LiveView + Surface. Btw expect playable version soon! :slight_smile:

D4no0

D4no0

I suppose none of the VM features are available, it is basically just limited elixir syntax?

bartblast

bartblast

Creator of Hologram

You can say so, it won’t support the stuff related to processes, at least in the initial versions. However I plan to experiment with Web Workers API later to see what can be done in this regard.

yolo007wizard

yolo007wizard OP

Thanks for clarification. Really like the page localization layout. Also do you have plans to make this work with Firefly in future?

bartblast

bartblast

Creator of Hologram

If it will have some dead-code elimination and code-splitting methods, then why not? I’d like to avoid having to ship a few MB runtime bundle to the browser on the initial page load. With the current architecture, Hologram is able to run a basic page with a few kB runtime bundle and a few kB page-related bundle.

D4no0

D4no0

Yeah, but don’t forget that you will have VM capabilities, like processes and fault-tolerance, witch IMO is worth even the full VM size (witch is currently about 30 MB), ofc this is not for all cases.

bartblast

bartblast

Creator of Hologram

Yeah, I think it would be helpful, but for more complex cases than reactive UI. Maybe something like client-side file processing to relieve the server resources? In case processes are needed, the Hologram commands can be used that handle asynchronous server code (where you basically run on BEAM) and they have very low latency since they go through websockets similarly to LiveView events. Btw do you have ideas on how BEAM capabilities can be used on the client side, besides file processing that I mentioned?

D4no0

D4no0

I think the potential is unlimited, you basically have the full-blown elixir/erlang capabilities at your disposal. You can write the part that is responsible for interaction with dom (from what I remember webassembly standard doesn’t include this) and write entire frontend applications in elixir, not having to go back to JS ever again.

Liveview is great, the biggest selling point is that you don’t have to write JS, however it has limitations for more involved applications, and currently people end up using a frameworks like react to solve this limitation, which is not something I enjoy doing.

For more possible features, think of applications as the native ones we use, the only difference is that it lives in browser.

bartblast

bartblast

Creator of Hologram

I completely agree about the benefits of using Elixir on the client. That’s precisely what Hologram aims to achieve, with state management on the client and full Elixir syntax coverage. My point is that I’m currently exploring use cases for Elixir’s concurrency in the context of UI on the client. Given that the DOM operates on a separate single thread and WebAssembly cannot directly access it, there may be limited advantages, aside from potentially enabling background file processing. However, I acknowledge that I could be mistaken in this regard, and I’m seeking other potential use cases and opinions.

djaouen

djaouen

Disregard. I got Lunatic ( https://lunatic.solutions/ ) confused with Lumen, which was rebranded as Firefly. Carry on. :slight_smile:

Where Next? Top

Trending in Discussions Top

AstonJ
As the title says, please share what you’ve been up to with Elixir. Whether that’s been learning it, looking into it, making stuff with i...
2977 92995 915
New
AstonJ
The obligatory hello world thread! Who are you and where are you from? :stuck_out_tongue:
4616 55835 594
New
caslu
I want to open this thread for you all to discuss and help those who really like Ash but are still hesitant to use it in a real project. ...
New
arcanemachine
I was working on an Ecto migration and I needed a timestamp. So, for the nth time, I looked up the different data types for timestamps, a...
New
alexslade
Fly’s CEO posted this recently - Turn And Face The Strange · The Fly Blog It says that Fly is going all-in on sprites, which is a worry ...
New
Herve37
We’re evaluating API mocking tools for OpenAPI-based projects and would love to hear what other teams are using. We’re particularly inte...
New
matt-savvy
Is there a word for the ~> symbol used in Version strings? Do you also just call it a Squiggle Arrow™ ?!
New

Other Trending Topics Top

garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
wintermeyer
There are three potential reasons for members of this forum to have a look at https://vutuv.de You are tired or annoyed of LinkedIn. Yo...
New
aseigo
ICal is a library for interacting with iCalendar data. It parses iCalendars into typed Elixir structs via ICal.from_ics, and can prepare ...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews