Jonathan Blow's presentation

Nick Sabalausky (Abscissa) via Digitalmars-d digitalmars-d at puremagic.com
Mon May 8 20:05:43 PDT 2017


On 05/08/2017 09:21 AM, Rel wrote:
> What do you guys think of the points explained here:
> https://www.youtube.com/watch?v=gWv_vUgbmug
>

Watched the first 15-20 min of it. Definitely want to watch the rest. 
Buuuuuutttt.....so far it's a good example of the *one* little thing 
that kinda bugs me about Johnathan Blow:

I keep hearing him say the same things I've been saying for years, but 
because he wrote Braid, he can sometimes get people to actually listen 
instead of blindly dismissing everything. :/ (Granted that's not a fault 
of Blow's. But it still bugs me!)


> 1) The compile times seems very fast in comparison
> with other modern programming languages, I'm wondering
> how he managed to do it?

By being a game (and engine) developer and knowing the basics of writing 
efficient code, unlike the majority of the software industry.

(Seriously, if other circles of dev would pull their ***** out of their 
***** long enough recognize all of what game programming obviously 
involves (ex: It's more than the glorified calculators that the upptity 
banking software is, and don't get me started on "enterprise" in 
general), then they could finally start learning how to write grown-up 
code and software today wouldn't suck so f****** badly.)

Also, not using header files.


> 2) Compile-time execution is not limited, the build
> system is interestingly enough built into the language.

Nemerle had that years ago (although I'm guessing/hoping that unlike 
Nemerle, Blow's implementation probably doesn't require manually 
compiling to a DLL before being able to use given code at compile-time).

My inclination is that it's the right approach, and is one thing that 
makes D look clunky and awkward by comparison. I never bought D's 
argument that compiling source shouldn't be allowed to do arbitrary code 
execution or I/O because, come on, "build scripts" and "build systems". 
That "no arbitrary code execution" ship sailed ages ago: Who in hell 
compiles software from source without using the provided buildscript or 
buildsystem configuration (all of which, by necessity, allow arbitrary 
code execution and IO)? Nobody who isn't searcing for their own little 
corner of hell, that's who.

The *one* thing that does give me a little pause though is the 
possibility that order of compilation could change the results of 
generated code. I think it'll be interesting to see how that plays out 
in practice. "Don't do that" sounds nice, but the question remains: "Is 
it something that will happen without the author knowing he's doing it? 
If so, will it be a problem?"



More information about the Digitalmars-d mailing list