3 ms·
Additions & corrections: 1) While the majority of all users will profit from the convenience of the GC, it's not a big deal to use D without a GC. (apart from
by gver1 10y ago
Additions & corrections:
1) While the majority of all users will profit from the convenience of the GC, it's not a big deal to use D without a GC. (apart from this kernel, another famous example is the next-level large-scale storage company Weka. They have had such real-time concerns that they invented their own Ethernet protocol - more details: http://dconf.org/2016/talks/zvibel.html http://dconf.org/2016/talks/zvibel.html)
Moreover since last summer D got an amazing support of allocation building block with it's new Allocator API:
http://dlang.org/phobos/std_experimental_allocator.html http://dlang.org/phobos/std_experimental_allocator.html
2) What's Rust's advantage on concurrency? This can be done quite well in D too, see e.g. this book chapter: http://www.informit.com/articles/article.aspx?p=1609144 http://www.informit.com/articles/article.aspx?p=1609144
There are a couple of advantages of D that are important to me and you didn't mention:
- error-saving contracts (builtin unittests, assert, in & out blocks, invariants)
- OOP (abstract classes, interfaces, ...)
- mixins & code generation
- compile time function evaluation and introspection (this makes your code even faster)
- clean syntax & style (@property methods, lambdas, ...)