On Tuesday, 16 June 2020 at 09:15:10 UTC, Atila Neves wrote:
On Tuesday, 16 June 2020 at 03:56:52 UTC, Petar Kirov [ZombineDev] wrote:
On Saturday, 13 June 2020 at 15:11:49 UTC, Atila Neves wrote:
https://code.dlang.org/packages/tardy
https://github.com/atilaneves/tardy


Looks interesting, nice work!

How does it compare to:
https://dlang.org/phobos/std_experimental_typecons#.wrap ?

For starters, that uses a class and inheritance internally and therefore has all the drawbacks of that approach as laid out in tardy's README.md. Then there's the lack of allocator support.

In the more longer-term, is the goal of the project to implement a Typescript / Go interfaces like structural type system in user space?

Yes. Other than allowing multiple interfaces, I think it's already implemented.

Cool!

Also how would it compare to Rust traits?

Rust's traits are usually used like D's template contraints and Haskell's type classes. The only way they're relevant here are trait objects:

Yes I meant trait objects actually.

https://doc.rust-lang.org/reference/types/trait-object.html

The main difference is that tardy is supposed to give the user choices over how the dispatch is actually implemented. Allocators alone are huge.

Interesting!

I guess the main difference, would be that Rust enforces a nominal type system like approach, where 2 differently named traits that otherwise define the same interface are not considered interchangeable.

Yes, that's also a difference.


Reply via email to