[OT] Unity's HPC#
Nick Sabalausky (Abscissa)
SeeWebsiteToContactMe at semitwist.com
Thu Feb 28 17:08:02 UTC 2019
On 2/28/19 7:05 AM, Dukc wrote:
>
> This is exactly where D has the largest advantage over C#. I find that
> C# is generally good to code with, as long as you don't care about
> performance beyond avoiding big O crimes. But when you try to do stuff
> like using structs when you don't need polymorhism or trying to minimize
> allocation when working with an array, it gets inpractical. With D, of
> course you still need to put a bit more thought in, but it doesn't feel
> like the language is fighting your optimization efforts.
Yea, at one point, I used to be just as big a fan of C# as D, but
eventually C#'s difficulty of low-level control and lack of
expressiveness (compared to D) pushed me away. Although I do still
consider it one of the few languages I don't actually hate.
Nonetheless, Unity seems to have very much addressed the "low-level
control" problem with plain-C#. As as for the expressiveness, well, like
any major game engine developer, they're coming from C++, so as far as a
D-like level of expressiveness, they wouldn't have had that before, so
they're not really loosing much in that area.
What I think is important for us to look at is: How does D's offering
stack up to HPC#, and what could we do to improve?
To be honest, I'm not entirely happy with how D compares:
+ Expressiveness: The only aspects where I think D has a clear advantage.
+ Memory Layout: We're no worse, but HPC# seems to have caught up to us.
- "Performance is correctness": I could be wrong, and I hope I am, but
I'm not sure D does much better than C++ in this area. Certainly not as
well as HPC# appears to do.
- Cross-architecture: D has improved here from the past, but it's still
nowhere near as mature on as wide a range of platforms as Unity is.
- Machine code viewer: We have disassembly and such, but judging by
their screenshot, no tool that's quite that nice.
+ Memory Safety: D's probably about on par here.
- Concurrency Safety: We're way beyond many languages, but we have
nothing that goes nearly as far as the job scheduling system they describe.
Being basically a better C++, this is exactly the sort of software that
D should excel at, so it's rather disappointing how D seems to stack up
to HPC#. We *should* be absolutely demolishing it.
More information about the Digitalmars-d
mailing list