I'm excited to share Nova, a new web framework built for Erlang, designed to make web development in Erlang simpler, faster, and more approachable. Nova leverages Erlang's concurrency, reliability, and scalability to create a robust yet lightweight framework for building modern web applications.
Key features:
* Lightweight and modular: Easy to integrate with existing Erlang projects.
* Built for concurrency: Harnesses Erlang's actor model for high-performance web apps.
* Developer-friendly: Simplifies routing, middleware, and template handling.
* Extensible: Supports plugins and custom integrations.
Check it out: GitHub: https://github.com/novaframework/nova Homepage: https://novaframework.org Getting Started Guide: https://dev.to/taure/getting-started-with-nova-1ioo/stats
We’re early in development and would love feedback from the community! If you’re an Erlang enthusiast or curious about building web apps with a language known for its reliability (think WhatsApp or RabbitMQ), give Nova a spin and let us know your thoughts.
What do you think about using Erlang for web development? Any features you’d love to see in a framework like this?
https://novaframework.org/
https://nitrogenproject.com/
Could you compare/contrast Nova to Nitrogen?
https://youtu.be/PgBzV1-E00k?si=sULVBvLsVPm2S3zl
Why someone might like Elixir:
For me, I love the clarity and brevity of Erlang the language but I find Elixir a lot more pleasant to use day-to-day. This is just personal, I am not making a general statement saying Elixir is better.> Last I checked, the debugging experience with elixir was pretty subpar.
Just curious, why is this? All of the Erlang debugging stuff seems to work.
But you'd see a decompiled Erlang-ish code in the (WX-based, graphical) debugger, no? Genuinely curious, I think it was like that last I checked, but that was in 2019.
Easy:
(Assuming you're not trolling: you chose to focus on features that can only be judged subjectively, and therefore can only be discussed as preferences. It's ok to have them, but actively displaying them is a bit pointless. Objectively measurable features of both languages put them very close together, with both having slight advantages over the other in different areas, on average making them almost equivalent. Especially compared to anything non-BEAM.)Whereas writing the same thing in Elixir would look like:
This is because Elixir allows `x` to be rebound, in effect changing what data `x` points to, but not mutating the underlying data itself. Under the hood Elixir rewrites each expression into something resembling the Erlang version.The practical effect of this is that if you for example insert a process spawn somewhere in between any of the lines that references `x`, that process gets its own totally immutable version of the data that `x` points to at that point in time. This applies in both Erlang and Elixir, as data in both is completely immutable.
State variables are what I think corpos call a "code smell". The BEAM/OTP isn't a number cruncher, there are better tools out there if you're doing a lot of that. Erlang is, at it's core, about constraint logic programming. It should be best thought as a tool for granular, scalable, distributable userspace scheduling. If you need something outside of that, NIFs or Ports. Both are quite nice.
This kind of process and function-local static single-assignment code is all over the place in Erlang codebases. It's incredibly common. The other popular method is tail recursion.
I searched for literally 30 seconds and found these:
This is more to have a smooth web framework similar to Phoenix but for Erlang.
You can also use Nova for elixir.
Edit: Uranus is Latin too :)
[1]: https://www.snopes.com/fact-check/chevrolet-nova-name-spanis...
[2]: https://en.wikipedia.org/wiki/Chevrolet_Chevy_II_/_Nova