
Jonathan Blow: “C++ is a weird mess” - axiomdata316
https://www.gamesindustry.biz/articles/2018-07-02-jonathan-blow-c-is-a-weird-mess
======
olliej
I feel any article on a new language should have at least a partial spec and
preferably at least a rudimentary interpreter or compiler. Otherwise what’s
the point of the article? Especially when it’s lobbing around things like 50%
win for instance.

The only actual information I can find about it is videos, which is kind of
useless.

~~~
erikpukinskis
I am a little disappointed he hasn’t released the source, but I am also
sympathetic. He wants to be free to change major things about the language
while he’s designing it, and that’s harder if other people are using it.

That said, if you want to know what Jai is about, I recommend starting from
his first video: [https://youtu.be/TH9VCN6UkyQ](https://youtu.be/TH9VCN6UkyQ)

The first couple dozen videos are all pretty dense, with him presenting the
basics of the language pretty efficiently. (His more recent vids are more like
development vlogs) Yes, videos are slow, but for me I don’t think I would’ve
appreciated his design choices without all the context.

I also found watching his process for inventing the language extremely
instructive, just as a programmer. It has substantially formed my own process
and thinking over the last few years.

~~~
geezerjay
> He wants to be free to change major things about the language while he’s
> designing it, and that’s harder if other people are using it.

I don't se why, if proper versioning is implemented.

~~~
Doxin
You'd have to implement proper versioning for one, which takes nonzero effort.
Furthermore people being people, they'll complain about breaking changes
regardless.

------
EliRivers
_People think a programming language should be a complicated ecosystem_

Who thinks that? Everyone I work with wishes for simplicity. Sure, we
recognise that there are tradeoffs and constraints, but simplicity is prized
above complications.

------
obl
Jai seems like an overall nice design, conservative and practical. I certainly
hope it does well.

If I had to ask for one language feature for game-related code, it would be a
compiler backend targeting the various shader "ISAs". It should be relatively
easy since the exposed architecture by the APIs are quite high level.

It would be useful, if only to make sharing data layout between the GPU & CPU
less annoying (padding float4 slots by hand, sigh ...), as well as constants
and other stuff.

Especially as modern rendering techniques are more and more compute shader
heavy (tiled/clustered shading etc) we could definitely use some nicer high
level language features in there instead of the usual preprocessor
contraptions.

~~~
shawn
_If I had to ask for one language feature for game-related code, it would be a
compiler backend targeting the various shader "ISAs". It should be relatively
easy since the exposed architecture by the APIs are quite high level._

It is pretty easy to write a Lisp that does this.

But for now, glslify seems to simplify things.
[https://github.com/glslify/glslify](https://github.com/glslify/glslify)

~~~
db48x
I've not used it, but from the videos I've seen Varjo
([https://github.com/cbaggers/varjo](https://github.com/cbaggers/varjo)) looks
like a good one.

------
stcredzero
I would ask: Why not Rust?

~~~
naikrovek
If you watch his videos, he explains it a few times. Same with Go, D, and
several others over the course of all of those videos.

~~~
steveklabnik
Specifically, he says he doesn’t like “big idea” languages, and says that Rust
is one of them.

~~~
geezerjay
> Specifically, he says he doesn’t like “big idea” languages, and says that
> Rust is one of them.

If that's the full scope of his technical argument then I don't see why it's a
good idea for anyone to waste their time reading up on his vaporware language.
I understand why the author feels the need to promote his work but his
promotion angle and lack of technical arguments speaks for itself.

~~~
topspin
His view of Rust is a little more nuanced then you're getting here. Back in
2014 when Jonathan Blow started talking about the reasons for making a new
programming language he discussed several languages including Go, D and Rust
and provided specific reasons why they didn't satisfy his view of what a
language for game programming should be. During that talk he said at one
point; "if we're all writing programs in Rust ten years from now then that's
great because I think it'll be a lot better than C++."

You should consider watching at least the first part of that talk. It made a
splash at the time because there are several insights that people found
provocative.

[1]
[https://www.youtube.com/watch?v=TH9VCN6UkyQ](https://www.youtube.com/watch?v=TH9VCN6UkyQ)

