Hacker News new | ask | show | jobs
by atonse 412 days ago
I am literally debugging an issue with our OpenAI client in our Elixir app due to connections mysteriously timing out and closing, and I think this sort of library might be really good for enabling more widespread use of OpenAI stuff in our app.

But since it's Erlang, I hesitate to add this since I don't want to now start debugging stuff in Erlang. And I've coded full-time with Elixir since 2016/2017 time frame.

So I'm biased here, but I definitely would try this out if it were Elixir, but the Erlang gives me pause since it still is a pretty different language, and I'd have a hard time debugging any issues.

2 comments

Learning Erlang and understanding it is an important skill for any serious Elixir developer. Erlang has been around longer and has a larger set of available tools, it's what Elixir piggybacks on, and we can't just rewrite everything in Elixir.
I’ve never needed to use erlang in all these years. I have to imagine I’m not alone in finding erlang’s syntax more cryptic, given that erlang hit a limit and elixir broke through to a much wider audience. I don’t know what would make me a more “serious” developer though, having successfully built a few mission critical apps with elixir.

I have built one supervision tree and built GenServers, but I haven’t done much more OTP or cluster and node communications, if that’s what you meant. I’m genuinely curious about what you mean by serious elixir developer.

Well you yourself mentioned being hesitant to add a library that could likely help you solely based on it being in Erlang.

Erlang has many useful libraries, it's been around far longer. If everything has to be wrapped by Elixir to be useful, well that seems like a pretty significant limitation.

I didn’t say it has to be wrapped by elixir to be “useful”, but after having been in debugging hell with an erlang OIDC library a couple years ago, I’ve been burned and won’t touch native erlang libraries unless there’s no other choice.

That’s not a criticism of erlang. That’s a comment on my personal limitations of time.

One great thing from erlang to be aware of is observer:start, or :observer.start in iex, to check out process supervision trees
To be fair, I want to clarify this is an experimental repo. It would be a dream to eventually properly structure and deploy this in such a way its usable for all downstream consumers, Erlang, Elixir, maybe even weird COBOL RPC (joking)

I posted this because I got some funny outputs (read: deep research quality from gpt-4o over 37 minutes) with a derived repo using this repo, so I figured it was usable enough for others in this immediate space.

If you have any desired functionality, or you want to contribute, please file issues + file pull requests.

I have also been in the Elixir space for around 10 years, so we're in good company! https://github.com/stochastic-thread/snek.ex ;)