Remix.run Logo
dlahoda 13 hours ago

do they have sustained at least one prominent rust first and rust core customer? i doubt, rust has a lot of tooling and catches at compile time what their product does in runtime.

also not sure about antithesis biz practices. you pay them for integration, you spend time educating them and improving their product. and in the end get vendor locking on their compute with arbitrary non transparent pricing.

if your are not in rust - sure it can be price efficient.

vlovich123 12 hours ago | parent [-]

I think you are misunderstanding. Rust does not solve or prevent distributed systems bugs, just memory safety and certain kinds of thread safety problems. For that you’d need to use a formal proof system like Coq.

There’s a reason you should still be writing unit tests and hypothesis/property tests in Rust, to catch issues the compiler can’t catch at runtime which is a huge surface area.

lmm 9 hours ago | parent | next [-]

> There’s a reason you should still be writing unit tests and hypothesis/property tests in Rust, to catch issues the compiler can’t catch at runtime which is a huge surface area.

It would be irresponsible to suggest that Rust eliminates a large enough proportion of common errors that you can YOLO anything that compiles and achieve an acceptable defect rate... but it does happen to be true in my experience.

dlahoda 8 hours ago | parent [-]

yes.

tests test what? logic. logic = types (proven). so stronger type system less test needs to be written.

more, if proc macro or build.rs can execute logic, based on parsed """types"""(partial info only), we can extend type systems with custom logic (and panic at compile time and/or startup time if usage violation detected).

on top of that, add fail fast (fail at compile time, build time or start up time) and newtype and errors-part-of-api culture; and lack of late binding (dyn is very limited use, no runtime reflection), and we get even less reasons to write tests.

some examples of industrial """typing"""(eDSLs, construction time) solutions in rust :

- https://github.com/elastio/bon

- https://github.com/contextgeneric/cgp

- https://github.com/paritytech/orchestra

- https://git.pipapo.org/cehteh/linear_type.git

sure we need write tests, and tests like antithesis helps with.

but list of tools helping with tests exactly as antithesis does(and more of others) is huge. that is built on top of absolutely strong supply chain audit, quality and security. there is even """levels""" of determinism tooling to decide how much to pay for cloud compute.

vlovich123 2 hours ago | parent [-]

Ok. Please write me an implementation of RAFT using no tests and have the Rust type checker prove correctness. I admit complete ignorance into how to get Rust to even go about partially proving that.

dlahoda 10 hours ago | parent | prev [-]

i guess most of issues anthitesis finds are preventable by simple or more evolved rust (patterns).

in rust i just have more time for other things you mentioned.

also it is clear you are misunderstand rust. rust type and macro system allow to write adhoc partial proves of things around in my code with no extra tooling. that is easy bits what rust adds on top of thread and mem.

and definetely i do need to run for help of rocq right away, rust ecosystem has a lot of options.

also not only lang itself matters, but also cargo which goes along.

Smaug123 10 hours ago | parent [-]

You still seem to be completely misunderstanding, as is evident from the fact that your argument "proves" that in Rust you don't even need to write any tests. Again, Antithesis is designed to test distributed systems, deterministically.

dlahoda 10 hours ago | parent [-]

sorry, where exactly i stated no need to write tests?

i argue, overall, that antithesis less likely will be adopted in rust because language itself (in sense extended to typelevel patterns and in macro simulations) and its ecosystem (by ecosystem i mean available libraries and tools and integrations which cover a lot of antithesis agenda). i did not expanded ecosystem argument so, because there was objection to that yet.