D3 - Programming in 3D

Chris wendlec at tcd.ie
Fri Jun 12 13:12:35 UTC 2020


How would you go about D3?

     1. Which features would you keep?
     2. Which features would you definitely get rid of?
     3. What type(s) of memory management would you chose?
     4. How would you design Phobos?
     5. What restrictions would you impose? (see below)
     6. How would you handle backwards compatibility?
     7. How would you design the tooling?
     8. How would you make it “industry friendly”? (see below)

As to point 5: I know that it’s great to have a lot of freedom (I 
know: freedom => responsibility). However, there’s a reason why a 
lot of programming languages impose certain restrictions on the 
programmer. E.g. if every library is designed differently, it’s 
hard to build up a proper ecosystem of libs and reusable code. 
There’s the aspect of security too.

As to point 8: it closely ties in with point 7. Approach it from 
the point of view of a project manager or a small tech company. 
It is important that it is easy to set up and use (IDE, 
toolchain) and that it caters for different needs. One of the 
first questions will be how well it ties in with other 
technologies (e.g. C interop) and if it can easily be ported to 
the most common platforms (Android, iOS etc.) and architectures. 
It should be as easy as writing a few lines of a CMake file to 
cross compile and it should easily interop with the host OS (e.g. 
it can be laoded as a dynamic lib out of the box). IMO, this is 
something one should think about right from the start and not 
leave for later, especially because D already has features that 
would facilitate this.

D3 - Programming in 3D


More information about the Digitalmars-d mailing list