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).

Reply via email to