4 ms·
> Making a programming language specifically for the needs of one program, then developing that language and the program together, is an underestimated strategy
by codetrotter 8y ago
> Making a programming language specifically for the needs of one program, then developing that language and the program together, is an underestimated strategy. I believe the world would be more interesting if more people applied it—because then we'd get more qualitatively different new systems.
One example of this is video game designer and programmer Jonathan Blow, best known for creating the game Braid.
https://en.wikipedia.org/wiki/Braid_(video_game) https://en.wikipedia.org/wiki/Braid_(video_game)
http://braid-game.com/ http://braid-game.com/
He's working on a language for writing games.
https://www.gamesindustry.biz/articles/2018-07-02-jonathan-blow-c-is-a-weird-mess https://www.gamesindustry.biz/articles/2018-07-02-jonathan-b...
https://www.reddit.com/r/programming/comments/7okvam/jai_language_status_update/ https://www.reddit.com/r/programming/comments/7okvam/jai_lan...
https://www.reddit.com/r/programming/comments/8ywd77/gamelab2018_jon_blows_design_decisions_on/ https://www.reddit.com/r/programming/comments/8ywd77/gamelab...
https://www.reddit.com/r/programming/comments/89209l/jonathan_blow_on_jai_deep_work_and_software/ https://www.reddit.com/r/programming/comments/89209l/jonatha...
Here is one of many videos of him using the language:
https://www.youtube.com/watch?v=AAFkdrP1CHQ https://www.youtube.com/watch?v=AAFkdrP1CHQ
A couple of moments in that video which I would like to highlight:
At 11:15, responding to a question from chat:
> Is there a specific reason the game is kind of in top-down 3D?
> Because that is what helps the game mechanics that we need for this game. If it was in first-person (laughs)... it would be kind of amusing... maybe we should do that (smiles) that'd be fun.
At 14:05, responding to another question from chat:
> Do I find the language scaling, well, now that I am dealing with a more complex program?
> Yes. I've been dealing with a program this complicated for like five or six months so this is nothing new.
At 14:15, responding to another question from chat:
> Do I have my own shader language?
> No, right now we are using OpenGL and [unintelligible] GLSL.
The answer to this third question indicates to me that he is focusing on getting something that works better for him than pre-existing alternatives without getting bogged down too much that every side of his language needs to be perfect right off the bat.
In other words, he is balancing the time to perfect his language against the time he wants to spend making games rather than spending 100% of his time working on the tooling and not getting to write any games.
- codetrotter 8y agoAnd while we're on the subject of people making their own languages to make games, see also Andy Gavin. He made Game Oriented Object Lisp (GOOL) for himself and the other people at Naughty Dog to use when making Crash Bandicoot for the original PlayStation. He later made another language, Game Oriented Assembly Lisp (GOAL), for the Naughty Dog game Jak and Daxter: The Precursor Legacy for the PS2. https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp He has written a series of articles about the making of Crash Bandicoot on his website. Well worth a read! https://all-things-andy-gavin.com/video-games/making-crash/ https://all-things-andy-gavin.com/video-games/making-crash/
- p0nce 8y agoYou talk as if this was an example of a successful strategy of writing a general purpose language for one program. However Jon Blow's successful games, Braid and the Witness, were not written with that new language.
- codetrotter 8y agoI am just saying it seems like a good strategy. The mention of Braid was just to give some context about who I was talking about since I think at least more people have heard of Braid than the amount of people who knows who he is if you don’t state that he made Braid.
- SomethingOrNot 8y agoHe doesn’t have a programming language. He has a series of YT videos. Until he open sources the code (or at least lets someone else try it/look at it) discussing his “language” is giving him too much credit.