Remix.run Logo
cpursley 2 days ago

I agree, and it feels like JS is just the wrong runtime for agents. Really languages that can model state in sane ways and have a good concurrency story like Elixir make much more sense.

And here’s a fun exercise: ask Claude via Cursor or Perplexity with R1 to create a basic agentic framework for you in your language of choice on top of Instructor.

mikehostetler 2 days ago | parent | next [-]

> good concurrency story like Elixir make much more sense

Agree, that's why I've been building this: https://github.com/agentjido/jido

MattDaEskimo 2 days ago | parent [-]

Call me an elixir virgin until 5 minutes ago. This language from a quick glance seems perfect for agent orchestration.

Project looks great, will follow & learn.

cpursley 2 days ago | parent [-]

It's less about the language syntax and more about the capabilities of the underlying Erlang runtime. There's also Gleam on top of Erlang if you like stronger typing (gleam.run).

CharlieDigital 2 days ago | parent | prev [-]

    > Really languages that can model state in sane ways and have a good concurrency story like Elixir make much more sense.
Can you expand on this? Curious why JS state modelling falls short here and what's wrong with the concurrency model in JS for agents.
dartos 2 days ago | parent [-]

For one, NodeJS doesn’t have concurrency. It’s a single threaded event loop.

CharlieDigital 2 days ago | parent [-]

It has concurrency with Promise; it doesn't have parallelism.

cjonas 2 days ago | parent | next [-]

And these agents are all network I/O bound by the model services so a lot of use cases don't need threading.

I would argue that python is the overrated language when it comes to building agents. Just because it's the language of choice for training models doesn't mean it should be for building apps against them.

The dx typescript brings to these types of applications is nice.

CharlieDigital 2 days ago | parent [-]

    > The dx typescript brings to these types of applications is nice.
Ironically, it only gets halfways there.

What I've found is that teams that want TS probably should just move up to C#; they are close enough [0]. The main thing is that once you start to get serious with your backend API, then data integrity matters. TS types disappear at runtime and it's just JS. So you need a Zod or Valibot to validate the incoming data. Then your API starts getting bigger and you want to generate OpenAPI for your frontend. Now your fast and easy Node/Express app is looking a lot like Spring or .NET...without the headway and perf...the irony.

[0] https://github.com/CharlieDigital/js-ts-csharp

holoduke 2 days ago | parent | prev [-]

No real concurrency. No scheduling. If you are not working with a lot of IO then js would be a poor choice. But in this case we talk about network calls, so definitely IO. The settimout, promise, request methods will do their job.