Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hologram? #227

Open
nelsonic opened this issue Jan 19, 2025 · 5 comments
Open

Hologram? #227

nelsonic opened this issue Jan 19, 2025 · 5 comments

Comments

@nelsonic
Copy link
Member

Today on HN: https://news.ycombinator.com/item?id=42710376

Image

The comments aren't very friendly ... 😕
Ref: bartblast/hologram#165

https://hologram.page
Image

Most of the pages on their docs site are "Coming soon ..."

https://hologram.page/docs/layouts
Image

https://hologram.page/docs/template-syntax
Image

https://hologram.page/docs/context
Image

https://hologram.page/docs/commands

Image

Most importantly, their Roadmap is "Coming soon ..."
https://hologram.page/docs/roadmap
Image

They've already got 512 stars on GitHub for a very unfinished Alpha ... ⭐
https://github.com/bartblast/hologram
Image

I gave them a ⭐ and ⌚ as vote of confidence. But don't have time to dive into using it ...
Quite honestly unless they tell me exactly how it's better than Phoenix / LiveView e.g: built-in offline support, I cannot invest the time right now.

@bartblast
Copy link

Hey @nelsonic, it's Bart - Hologram creator. Thank you for the star and for sharing your thoughts! You're absolutely right - Hologram is still in early alpha stage, as I explained in more detail in this ElixirForum post: https://elixirforum.com/t/hologram-an-isomorphic-elixir-web-framework-is-here/68602

Documentation is currently my main focus and I'm gradually adding more content. The HackerNews comments highlighted some valid concerns, particularly about the hamburger navigation on mobile which had a bug that has since been fixed. There is still some lag in the menu due to Hologram using a temporary bitstring implementation - once this is rewritten to its final form, everything will be snappy and instant.

I appreciate your feedback about wanting to see a clear comparison between Hologram and LiveView. This is a great point and I'll make sure to add a detailed comparison to help developers understand the key differences and benefits of each approach.

The project is indeed in its early stages, but I'm committed to building it out properly with comprehensive documentation and examples. Thank you for your vote of confidence - it means a lot!

@ndrean
Copy link
Contributor

ndrean commented Jan 24, 2025

I would love to be enlightened as I am puzzled. Does this means you are willing to shift even more CPU usage to the server? Why? Clients have plenty of free CPU. Then scalability. How do you properly scale websockets? And how do you ensure the stateful websocket memory is minimized? Then, the Elixir server code is very nice, especially message passing/matching and pubsub, but it is not as efficient as Go or even Node. Not saying it is bad, not at all, but I don't get the selling point.

@bartblast
Copy link

Hey @ndrean! I appreciate your questions! Actually, Hologram does the opposite of what you're describing. Instead of shifting CPU usage to the server, it transpiles Elixir code into JavaScript that runs in the browser. This means:

  • The server's CPU stays light since most computation happens on the client side
  • WebSocket usage is minimal - just for initial page loads and necessary server interactions
  • Scalability is improved because processing is distributed to users' browsers

The real innovation is letting developers write their entire app in Elixir while getting the performance benefits of client-side JavaScript. So rather than burdening the server, we're actually taking advantage of all that free CPU on clients' devices!

@ndrean
Copy link
Contributor

ndrean commented Jan 27, 2025

@bartblast Many thanks! So this is very good, a "great" selling point, at least for me. Sorry if my question was a bit harsh.

@bartblast
Copy link

No worries! :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants