Live data from Hacker News

Lua for Elixir

davelucia.com

41–50 of 86 posts

Re: Lua for Elixir

#42
davydog187, I just wanted to thank you for stepping up and lending Robert a hand. It's nice to see new releases and lots of cleanups happening in Luerl. The project is a real gem and it's nice to see new activity in it!

Re: Lua for Elixir

#43

How sandboxed is BEAM really?

My understanding is that Luerl can remove various modules from being used, like preventing use of the IO library for instance.

I would say BEAM itself is not particularly sandboxed, and certainly clusters of Erlang nodes assume a lot of shared trust.

Re: Lua for Elixir

#44

  This is not embedding the C Lua runtime and compiler, but rather a
  complete implementation of Lua 5.3. This feat is made possible by the
  underlying Luerl library, which implements a Lua parser, compiler,
  and runtime, all in Erlang.
Okay, that's actually pretty cool (:

Also a sign of Lua's maturity and popularity, that it's got various independent implementations (LuaJIT, this one, perhaps others I don't know about).

Re: Lua for Elixir

#45

Earlier quoted context omitted.

That's the typical use case if you want a web server. If you're writing for low-level devices, you'd use `mix nerves.new project_name`. If you're writing an Elixir app that won't be a web server, you'd use `mix new project_name`. If you're writing an elixir script, you'd use `touch script_name.exs`

Yes, of course. You are right.

I tend to build my prototypes as single file Elixir scripts. These are sometimes rather bulky with a bunch of logic and IO modules with some helper modules on the side. It's only when I believe in the idea that I reach for phx_new and start writing tests and copying in code into a full Phoenix project.

When I started out with Phoenix I learned a lot from studying the boilerplate it can generate. If you just need a route and serve some JSON or a file on it you can turn off most of the code generation and do precisely that, in case you're sure that's what you want. I think the default being that you can immediately flesh out auth and CRUD for whatever tabular data model you want is rather sensible.

Re: Lua for Elixir

#46

Earlier quoted context omitted.

I am talking about the typical / usual case. In fact, you typically use "mix phx.new" for projects using Phoenix in Elixir, and it creates lots of files, as opposed to "import ..." in a single Go file. I never said that it is impossible to do in Elixir (or Java), but it is not the typical case.

Typical no one writes a large web app in a single Go-file.

Well, that is unfair, because you added "large". If we compare large web apps between Elixir and Go, I am pretty sure Go would still have fewer files overall.

Re: Lua for Elixir

#47
I've been considering adding Lua support to Keila for a while already. It seems like a perfect fit for when I'm going to implement email automation and want to allow custom business logic. This would certainly make that plan easier. Thanks OP for sharing the library with the community!

Re: Lua for Elixir

#48
post #45

Earlier quoted context omitted.

Yes, of course. You are right.

I tend to build my prototypes as single file Elixir scripts. These are sometimes rather bulky with a bunch of logic and IO modules with some helper modules on the side. It's only when I believe in the idea that I reach for phx_new and start writing tests and copying in code into a full Phoenix project. When I started out with Phoenix I learned a lot from studying the boilerplate it can generate. If you just need a ro…

I typically use specific flags to "mix phx.new" that gets rid most of the files, especially JavaScript and whatnot. I am not at my PC right now and I forgot the flags, but I am sure you know what I am referring to.

I never tried starting with Elixir scripts, I will give that a try.

Re: Lua for Elixir

#49
post #4

Recently, I had a simple Flask project, just a single Python file, and wanted to convert it to Elixir using AI. But what I got was a sprawling directory of modules and files in Elixir. Apparently, that’s just how things are done in the Elixir world. That moment made me realize why some languages catch on while others struggle. If spinning up a basic web server already feels like jumping through hoops, I can’t imagine…

Elixir is somewhat lacking in training data compared to some more popular languages, so AI will often regurgitate nonsense (more so than in more popular languages).

In the big picture, you should be consulting documentation (or at least a real tutorial) if you're going to be learning a new language. Hell, I'll use AI to bootstrap my knowledge when possible, but it's always important to fall back onto the old method when the quick-and-dirty AI attempt doesn't work out.

Re: Lua for Elixir

#50
post #13

Earlier quoted context omitted.

It kind of is though, regardless of what the LLM did there, the 'happy path' with something like Phoenix is using the phx.new and the generators which gives you a ton of files and structure that is a bit overwhelming for people used to more 'minimalist' web frameworks. Check this out this guide from the Phoenix docs: https://hexdocs.pm/phoenix/json_and_apis.html That's a ton of stuff just to return some JSON from an…

Elixir is to Phoenix as Ruby is to Rails. The original comment was about Elixir, not Phoenix. It also explicitly mentions Flask, which would be inane to directly compare to either Phoenix or Rails. How complex is your Django app, Mr. Python?

Ok sure, but Phoenix is the go-to solution for web projects in Elixir, especially newcomers are frequently told to just use Phoenix instead of trying to build on Plug.

The feedback from the Python person was a bit harsh, and evaluating a language based on LLM generated code is of course silly, but I think some of it still holds true. I'd love for Elixir to be a more approachable solution for simple web services.

Post reply on HN