Discussion: Porting 58000 lines of D and C++ to jai, Part 0: Why and How

ryuukk_ ryuukk.dev at gmail.com
Wed Nov 23 21:17:42 UTC 2022


On Wednesday, 23 November 2022 at 17:20:54 UTC, Kyle Ingraham 
wrote:
> Hi all. I came across this article on Hacker News: 
> https://www.yet-another-blog.com/porting_the_game_to_jai_part0/
>
> I’m interested in reading your thoughts on the ‘Why not D’ 
> section. Anyone have experiences that match the specific points 
> there? I haven’t experienced them but I also don’t debug on 
> Windows. I also find D’s documentation to be excellent.
>
> I’m super-positive on D but also interested in whether there 
> are others with the same issues as the article’s author.

Some valid criticisms, specially regarding to debugging, it has 
improved so there is that

> Reducing noise in the code due to various syntax improvements

This one i agree too, it's nice when the language allows you to 
be expressive without being noisy

The Enum Type Inference DIP is a move in the right direction imo

> Replacing build-scripts with jai code

I also like that idea, i wonder if dub could support something 
like it, at the end of the day, dub just parse a json into a 
struct

```D
// build.d

import dub;

void build(Builder* builder)
{
     builder.target_type = .exe;
     builder.target_name = "game";

     auto config = builder.create_configuration("config_a");
     config.(..)

     config.prebuild_commands ~= () {
         // do stuff
     };
}

```

And then dub could just run that function directly instead of 
parsing a json

> Reducing compile times from about 60s right now to under 5s, 
> hopefully around 1s

This one i find suspicious and very surprising

My 30+k LOC game rebuilds fully in just 1.2 sec, i don't touch 
phobos and i'm light on templates

On picks D because it's fast at compilation, so by the time it 
reaches 60s i wonder why he didn't think there is a problem 
somewhere before... like at 2-5 seconds it already is slow, at 
that time you need to guess that the code you wrote is cat piss 
and it is time to reflect on what you are doing..

I suggest that autho to stick to D for fast iteration and to ping 
the forum whenever there is a bug that's blocking you...

That's why it's important to be pro active, most users won't 
complain about issues, they'll just move on..

Programming languages should:

- be easy to debug out of the box
- be easy to write/read without being verbose
- be fast at compilation
- be fast at runtime

Once my game will be at a visually pleasant state, i'll write a 
proper blog post, i'll prove these people wrong



More information about the Digitalmars-d mailing list