D3 - Programming in 3D

Ernesto Castellotti erny.castell at gmail.com
Mon Jun 15 22:30:23 UTC 2020


On Friday, 12 June 2020 at 13:12:35 UTC, Chris wrote:
> 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

Removing new 
(https://dlang.org/spec/expression.html#new_expressions) and 
replacing it with a library-based solution (such as 
https://dlang.org/phobos/std_experimental_allocator.html)
New is seen as the obligation to use the gc, we need a new 
solution that includes the choice of allocator.

I know that you can currently choose but it is not a great 
marketing to propose two methods of allocating one of which uses 
gc and the other would be excellent but it has been 
"experimental" for years


More information about the Digitalmars-d mailing list