I don't know, as far as I can tell the demo on the homepage is bugged? Or maybe I misunderstand how it's supposed to work? If I click reset after 2 seconds and then click add 1 right after it, the reset never fires. What's up with that, that's not what I expected to happen?
I guess it comes from the `tagsExhaustive` keyword. But I tried to search what it does in the documentation, and it doesn't return any hit. I then searched in the git repository and found it in some examples and CLAUDE.md but it doesn't really seem straightforward.
Perhaps it makes sense for AI agents, but as a human, I will pass.
Yeah, I can see how some scenarios might want that behavior, but it sort of defeats the purpose of the demo. It wouldn't hurt to have the reset be cancelable too if you wanted to really showcase how it should work
Just wondering how a matching backend framework for correctness would look like. Ideally something that doesn't repeat the React mess with two routers but fits right in Inertia style.
I use it from years, it's the only sane way to write typescript.
The learning curve is steep tho.
In any case it's a hard technology to sell, you don't appreciate it from hello worlds. In fact you hate it for trivial programs.
It shows it's benefits at scale.
Lots of tools like T3 and opencode use it at their core because they solve non trivial problems made of queues, retries, dependency injection, schemas, etc.
Is it just me? But every time I use a paradigm of global immutable state, almost always I run into edge cases where practically it falls apart either semantically (mental model explosion) or creates performance issues, whether they stem from architectural problems with the framework itself, or just the way computers operate.
I love both effect and elm, but I cannot swallow yet another Vue/React crap even if it adds effect niceties.
Especially after having used ruby and elixir extensively after years of react/Vue, it feels so backwards (and LLM unfriendly) to split front and backend unless you have gargantuan reactivity needs (you don't).
I wish JS offered just one proper server side focused frontend solution.
As agentic coding matures, this kind of project is the right direction. The mechanics of writing the code become less important. But having a language framework that naturally resists mistakes will become increasingly useful and important.
Similar to how Rust is obviously a better choice today than C++. Who cares if the language is “more difficult” to code in, if the agents are doing the coding. What we need is building blocks that make it harder to author bugs.
That's an interesting - and maybe correct - point. Looking at the examples, it seems very long winded and not something I would want to write myself - but maybe I don't need to care about that anymore, as you say!
I was thinking about agentic coding as well and a few years ago I probably would have really been interested in this project. But now it sits at a lower abstraction where I care less since the agent is the one managing it. It's strange
I don't know, as far as I can tell the demo on the homepage is bugged? Or maybe I misunderstand how it's supposed to work? If I click reset after 2 seconds and then click add 1 right after it, the reset never fires. What's up with that, that's not what I expected to happen?
Yep, it seems that if you hammer messages things get easily dropped or the async behavior is not executed.
IMO the reset should fire regardless what happens after it.
I guess it comes from the `tagsExhaustive` keyword. But I tried to search what it does in the documentation, and it doesn't return any hit. I then searched in the git repository and found it in some examples and CLAUDE.md but it doesn't really seem straightforward.
Perhaps it makes sense for AI agents, but as a human, I will pass.
The whole setup reminded me of the mess people would make with RxJS, and this comment chain seems to indicate it's got the same drawbacks.
Yeah, I can see how some scenarios might want that behavior, but it sort of defeats the purpose of the demo. It wouldn't hurt to have the reset be cancelable too if you wanted to really showcase how it should work
Just wondering how a matching backend framework for correctness would look like. Ideally something that doesn't repeat the React mess with two routers but fits right in Inertia style.
That is a fair question. Probably one could inspiration by https://github.com/lustre-labs/lustre
This feels a lot like sagas and redux sagas. Anyone else got that vibe?
Its the same "solved" pattern, but with the pattern being more deeply rooted in a project.
How is Effect, for those who have used it? It's good that algebraic effects are becoming more mainstream.
I use it from years, it's the only sane way to write typescript.
The learning curve is steep tho.
In any case it's a hard technology to sell, you don't appreciate it from hello worlds. In fact you hate it for trivial programs.
It shows it's benefits at scale.
Lots of tools like T3 and opencode use it at their core because they solve non trivial problems made of queues, retries, dependency injection, schemas, etc.
I've written a vscode extension with it:
https://github.com/dearhuman/effect-decorate/blob/main/src/e...
Is it just me? But every time I use a paradigm of global immutable state, almost always I run into edge cases where practically it falls apart either semantically (mental model explosion) or creates performance issues, whether they stem from architectural problems with the framework itself, or just the way computers operate.
its a trade off for sure
but my experience working with elm is that things just work almost always the first time
if they can bring that over, many will take that trade off
yes somethings are harder to express, but its subjective if its a bad thing given the correctness guarantees
i haven't firmly run into the perf ceiling myself, but yes it is obviously there for more interactive apps
I love both effect and elm, but I cannot swallow yet another Vue/React crap even if it adds effect niceties.
Especially after having used ruby and elixir extensively after years of react/Vue, it feels so backwards (and LLM unfriendly) to split front and backend unless you have gargantuan reactivity needs (you don't).
I wish JS offered just one proper server side focused frontend solution.
This looks interesting, and I've been keeping an eye on this for a while - but does anyone have experience from actually using this for real?
Finally someone said it
As agentic coding matures, this kind of project is the right direction. The mechanics of writing the code become less important. But having a language framework that naturally resists mistakes will become increasingly useful and important.
Similar to how Rust is obviously a better choice today than C++. Who cares if the language is “more difficult” to code in, if the agents are doing the coding. What we need is building blocks that make it harder to author bugs.
That's an interesting - and maybe correct - point. Looking at the examples, it seems very long winded and not something I would want to write myself - but maybe I don't need to care about that anymore, as you say!
And tla+ / sequence diagram / user flow diagrams / data models all in one "thing"
I was thinking about agentic coding as well and a few years ago I probably would have really been interested in this project. But now it sits at a lower abstraction where I care less since the agent is the one managing it. It's strange