Fact checking for my talk
Ethan Watson via Digitalmars-d
digitalmars-d at puremagic.com
Sat Aug 13 05:47:40 PDT 2016
So I fly to Cologne tomorrow morning, and will be presenting on
Tuesday. Got my talk written, gave it a dry run at the office and
got feedback on it. Seems to be in a good spot.
But before I go up and feature compare to other languages, it'll
be a good idea to get my facts right.
There's three spots in my talk where I go through some D code,
and then show a table indicating whether the features I used in
those examples are available in other, trendier languages. In
some cases, the features become available with after-market add
ons. But I'm focusing exclusively on stuff you can get out of the
box, ie write some code and compile it with a stock
DMD/LDC/GDC/SDC install and it'll Just Work(TM).
So here's a dodgy table indicating the features I'm showing on
the slides, and the languages that are most relevant to game
developers - C# and Swift - with Rust thrown in since that's the
new language everyone knows about.
If I've got something wrong with the out-of-the-box solution,
please let me know. If there is something you can do with an
add-on, also let me know since it will allow me to prepare for
the inevitable audience questions saying "but you can do this
with this etc etc"
| Rust | Swift | C# |
-----------------------------|---------+---------+---------|
Template Constraints | Y | Y | where | [1]
-----------------------------|---------+---------+---------|
Template "if" Constraints | where | where | where |
-----------------------------|---------+---------+---------|
static if | N | N | N |
-----------------------------|---------+---------+---------|
Eponymous templates | N | N | N |
-----------------------------|---------+---------+---------|
Compile time reflection | N | N | N |
-----------------------------|---------+---------+---------|
CTFE | N | N | N |
-----------------------------|---------+---------+---------|
User defined attributes | Crates | Runtime | Y |
-----------------------------|---------+---------+---------|
Deep function inspection | N | N | N |
-----------------------------|---------+---------+---------|
Mixins | N | N | N* | [2]
-----------------------------|---------+---------+---------|
[1] Limited comparisons can be made with template where
constraints
[2] Mixins in swift are essentially traits and protocol
extentions, not like D mixins at all
More information about the Digitalmars-d
mailing list