Hey, so I gave a talk at Queerness and Games Conf this weekend on making your own programming language, and it's up on the #QGCon Twitch page!

The talk went over the power dynamics of making your own language, why small-scale languages can be useful in game dev, and there's a demo of making a simple language interpreter (embedded in a JavaScript game).

You can see the slides and the code from the demo here: https://mcclure.github.io/qgcon-2018/

You can watch the talk here:
https://www.twitch.tv/videos/316750486?t=05m35s

qgcon-2018

QGCon 2018 talk

qgcon-2018

This is my favorite line of the talk, on why one would make a language:

When we write code, we are restructuring our thoughts to fit the language of the computer.

When we design our own languages, we rewire the computer to match the structure of our thoughts.

@mcc I really love that summary, do you mind if I quote you on that?
As an update, the URL for the Twitch video linked here changed! You can now find the video at https://www.twitch.tv/videos/319700428?t=00h00m36s or it's linked from the page with the slides http://mcclure.github.io/qgcon-2018
Twitch

Twitch is the world's leading video platform and community for gamers.

@mcc Can't wait to watch it!
@mcc awesome as always. curious on your thoughts on that don't write a package manager part. c++ is a mess due to lack of cohesive packages/modules, people tend to hate on js for npm etc, what is the solution if not "none" or "npm" (or nuget, or any other similar model) that you have in mind?
@_discovery Well, my thought is more "don't write your own package manager, use an existing one". So I guess my answer is to use NPM. Or a thing I've been wondering about is starting by extending Rust, and then you can use Cargo.
@mcc right yea, I personally don't think npm fits as a general purpose package manager because it makes a whole boatload of assumptions about being for node, but the idea of trying to use what's there makes total sense
@_discovery i feel like a lot of node's assumptions hold for other dynamic languages. a compiled language might be different
@mcc yea, I can see the potential for overlap, having tried it before several times in practice, I don't know if it aligns. The resolution stuff, the layout of the modules, the many, many node/npm specific json keys that go unused or get in the way and so on. Some underlying concepts like "engine" might translate, but the implementation details of what it does, ultimately means it _almost_ fits but just ... doesn't, not without actual changes to make it fit.
@mcc then there's the package index issue, would you submit some random lua stuff to npm site? I know people submit all kinds of stuff to there, but I don't find that compelling either
@_discovery well, there's namespaces, so i assume you'd use one of those. when i've asked npm staff about this before they've said this is an acceptable use of the site.
@mcc This talk sounds awesome! Unfortunately Twitch tells me that the talk is no longer available. Is there another way to watch (or listen) to it? Thanks!
@sg Yeah, uh, Twitch took it down, but… hm. There's another video up and I can't find it! Let me get back to you.
@mcc Thanks, I appreciate it!
@sg this looks like the new url https://www.twitch.tv/videos/319700428
Twitch

Twitch is the world's leading video platform and community for gamers.

@mcc type systems are dangerous...

...and awesome! 🌊🌋☄️