Some absolutely great work, but I don't know why you would come up with a new term for a server component (shard). Why not just use the obvious client/server annotations so you don't have to define a novel term for new users?
I haven't tried to the web app part but I've tried Toasty. The API seemed to be a little simpler and nicer to use than SeaORM for me. Here are a few things I liked in Toasty:
- In SQLite UUIDs are default stored as compact blobs instead of inefficient varchar/text (SeaORM)
- Timestamps were easier via jiff instead of chrono (SeaORM)
- Model structs use the actual name of the $table instead of being named like $tablemodule.(Model|ActiveModel) (SeaORM) they are just $Table. This makes writing libraries a little simpler that need to use entity struct's from two separate modules/crates otherwise you get a name collision on Model/ActiveModel and need to do alias imports.
- There's an API to fetch related data to a query similar to Django ORM. IIRC this is missing from SeaORM
- The query expression language doesn't cover as much of SQL as SeaORM but seems to be enough for most web apps.
- I didn't like how the migration system works. I would skip that part of the library
I have tried it.
It feels pretty good to use, but you have to keep in mind that it's very early software.
They currently break the API every other week, and it's still missing a lot of fundamental features.
I have made a few basic web apps with it, and on v0.8.1 it was still missing a lot of reactivity which meant you had to use Javascript to bridge the gap.
We’re using it to build our web app (https://uncook.xyz) and while it’s a slight departure from my team’s NodeJS background it’s been pretty cool to work with
Luckily there's a lot of people who write prototype code, toy projects, and other "non-production" code that can experiment with a new project like this
> write it in C and ask an LLM to weed out the memory bugs?
because a non-determinist chain of reasoning is not the same as a fully deterministic algorithm. Its the best tool when a deterministic system is not feasable.
Reuse is bad / NIHS is good and it's hard to reach token metrics using accepted engineering practices. That leads to the point of having the LLM invent a new specialized job security chip architecture for your IR just to run CRUD app.
Why bother with rust when you can write it in C and ask an LLM to weed out the memory bugs?
Here is a idea, why not combine both? Have the advantage of Rust its build in checks and LLMs independent checks. Now you get both for a even more safe program.
So actually the answer to your question is that Rust provides excellent guardrails against memory safety issues, and in some cases, for code correctness as well, by allowing more behavior to be encoded in types. One of those guardrails is borrow checker.
I don't get the complaints about the horrible syntax. The syntax is fine... Which is weird cause I only get complains from c/c++ folk, and that set of languages have objectively AWFUL syntax
Some absolutely great work, but I don't know why you would come up with a new term for a server component (shard). Why not just use the obvious client/server annotations so you don't have to define a novel term for new users?
Sounds a lot like Liveview in Phoenix.
Has anyone here tried it?
I haven't tried to the web app part but I've tried Toasty. The API seemed to be a little simpler and nicer to use than SeaORM for me. Here are a few things I liked in Toasty:
- In SQLite UUIDs are default stored as compact blobs instead of inefficient varchar/text (SeaORM)
- Timestamps were easier via jiff instead of chrono (SeaORM)
- Model structs use the actual name of the $table instead of being named like $tablemodule.(Model|ActiveModel) (SeaORM) they are just $Table. This makes writing libraries a little simpler that need to use entity struct's from two separate modules/crates otherwise you get a name collision on Model/ActiveModel and need to do alias imports.
- There's an API to fetch related data to a query similar to Django ORM. IIRC this is missing from SeaORM
- The query expression language doesn't cover as much of SQL as SeaORM but seems to be enough for most web apps.
- I didn't like how the migration system works. I would skip that part of the library
I have tried it. It feels pretty good to use, but you have to keep in mind that it's very early software. They currently break the API every other week, and it's still missing a lot of fundamental features. I have made a few basic web apps with it, and on v0.8.1 it was still missing a lot of reactivity which meant you had to use Javascript to bridge the gap.
I used it in the early days, and it seems it's still the same. Thank you.
We’re using it to build our web app (https://uncook.xyz) and while it’s a slight departure from my team’s NodeJS background it’s been pretty cool to work with
cute app
> Look, I don’t know where we are going.
As honest as it is I can't risk using this anywhere near production if this is the attitude.
Luckily there's a lot of people who write prototype code, toy projects, and other "non-production" code that can experiment with a new project like this
Go use Java and it’s ilk then.
I'd rather honestly than false confidence, there's something admirable about being this clear for sure
Why bother with rust when you can write it in C and ask an LLM to weed out the memory bugs?
> write it in C and ask an LLM to weed out the memory bugs?
because a non-determinist chain of reasoning is not the same as a fully deterministic algorithm. Its the best tool when a deterministic system is not feasable.
If you go that way, why not write LLVM Intermediate Representation? And if you know your server arch anyway, why not write machine code?
I personally like Rust for web applications a lot because you can catch many bugs at compile time instead of during tests or runtime.
>If you go that way, why not write LLVM Intermediate Representation? And if you know your server arch anyway, why not write machine code?
Nah, C is good enough for me.
> catch many bugs at compile time...
Rust borrow checker is too dumb that you catch many non-bugs as well...I don't like that.
Mmm..LLMs also generates false positives. But at least you can reason with it...
Reuse is bad / NIHS is good and it's hard to reach token metrics using accepted engineering practices. That leads to the point of having the LLM invent a new specialized job security chip architecture for your IR just to run CRUD app.
Soon we're gonna need a way to catch bugs at prompt time
Why bother with rust when you can write it in C and ask an LLM to weed out the memory bugs?
Here is a idea, why not combine both? Have the advantage of Rust its build in checks and LLMs independent checks. Now you get both for a even more safe program.
Why bother with asking an LLM to weed out the memory bugs when you can write it in Rust?
> when you can write it in Rust..
Because fuck borrow checker..(and the horrible syntax)
So actually the answer to your question is that Rust provides excellent guardrails against memory safety issues, and in some cases, for code correctness as well, by allowing more behavior to be encoded in types. One of those guardrails is borrow checker.
Thus, the agent needs to iterate less.
I don't get the complaints about the horrible syntax. The syntax is fine... Which is weird cause I only get complains from c/c++ folk, and that set of languages have objectively AWFUL syntax
As if C was any better than rust. So much clutter. So hard to grok with all the macros. I'd rather read rust than C.
Why bother with C when you can get an LLM to write it in Rust and not waste tokens on finding memory bugs