Walter, I need a __trait please.

ZombineDev via Digitalmars-d digitalmars-d at puremagic.com
Tue Mar 15 17:59:38 PDT 2016


On Tuesday, 15 March 2016 at 19:59:01 UTC, deadalnix wrote:
> On Tuesday, 15 March 2016 at 11:47:20 UTC, ZombineDev wrote:
>> Instead I think that if we improve D's existing introspection 
>> capabilities and expose the compiler as a library at 
>> compile-time, we will have a much powerful system than any 
>> potential macro system, for a fraction of the complexity.
>>
>> These videos are what changed my mind:
>> 1. https://www.youtube.com/watch?v=OHZwYYW9koI
>> 2. https://www.youtube.com/watch?v=59lKAlb6cRg
>> (Jonathan Blow's programming language for games)
>
> It is like one of these simili good idea that everybody tries 
> and everybody regrets it. You DON'T want to expose your 
> compiler implementation to the language.
>
> Jonathan Blow is certainly a talented person, but he has a very 
> grave NIH syndrome and various blind spot in language design.

Well I agree with most of what you said. While I was watching his 
videos, I could't stop thinking "but you can already do this in 
D" about a lot of the stuff he "invented".
On the other hand, his videos are quite  interesting, especially 
considering he has no PL design/compiler background. I like that 
he takes some ideas to the extreme. I'm certain that if he didn't 
have such strong NIHS, it would have taken him years to get same 
results with D.
Pointers with ownership semantics, SoA/AoS, purely CTFE-based 
build system, compiler message loop, etc. are are all very 
powerful things (as he demonstrates), and sadly I don't see them 
comming to D in the near future, so it's good that he decided to 
pursue them, so we can see if they're worthwhile exploring for D.
An interface to the compiler is not the same as exposing the 
internels of the implementation. If you're skeptical about 
robustness or scalability of such system, I will point out this 
access can restricted to certain well-defined places (maybe 
something similar to shared static this()). But certainly his 
direction game-changing if not game-enabling (to quote Andrei).


More information about the Digitalmars-d mailing list