D had compile time execution of functions in 2007.
Order-independent top level declarations.
Underscores embedded in integer literals. (I stole this idea from Ada, which had been forgotten. Soon after D popularized it, it became standard in other languages.)
Continue or break to labeled loop.
Fixed sizes for ints, longs, etc.
Of course, I don't know if there's a straight line here, and Zig is welcome to use any features from D that they like. But it's just interesting that things innovated in D pop up in subsequent designs.
Perl had this years before D even existed [1]. Given its earlier age and higher reach, it's likely that Perl did more to popularize the idea as well.
> Continue or break to labeled loop.
Also a feature that Perl had years before D's existence [2].
These two are the ones I immediately recognized because of my familiarity with Perl, but given the trend, I'm doubtful of the other claims as well now.
I did not know Metaware and Perl did this, as I've never used either. I know that my inspiration for it came from Ada.
I accept that Metaware and Perl did this before D. But I still claim that adoption of it in other languages came shortly after I popularized it in D, as I included it in many presentations about it.
Javascript has had this for functions since 1995. This has been part of zig from the start, not added later.
> Fixed sizes for ints, longs, etc.
this has existed in stdint.h since C99. It doesn't take a genius, only years of pain with C/C++, to realize this is the better way to do things. And also, this was in zig from the start, not added later.
> Underscores embedded in integer literals
Also in zig from the start, not added later. Others have commented on the provenance.
I could be convinced that continue/break to labels was inspired by D.
Order-independent top level declarations.
Underscores embedded in integer literals. (I stole this idea from Ada, which had been forgotten. Soon after D popularized it, it became standard in other languages.)
Continue or break to labeled loop.
Fixed sizes for ints, longs, etc.
Of course, I don't know if there's a straight line here, and Zig is welcome to use any features from D that they like. But it's just interesting that things innovated in D pop up in subsequent designs.