Building Your Own Programming Language Course Project
Transcript from the "Course Project" Lesson
>> Steve: So what are we gonna build today? We're gonna build a little language called Dropbear. Are you all familiar with what a Dropbear is? A Dropbear is an urban myth or I guess, not an urban myth, an Australian mythical creature that hides in the top of trees and then body slams people.
[00:00:16] So I started with the name a few years ago and said, whenever I write a programming language, it is going to be called Dropbear. That it like, it has no real, the language doesn't do that. But I always knew that the language is going to be called Dropbear before I even knew what the syntax was going to look like.
[00:00:35] It's important to have names, the same way you buy a domain name before you start the project. All right, same idea. With that said, it basically looks like Scheme, right? And this is mostly for practical reasons and also aspirational reasons. I am the person that when I finally do become rich, and I get to actually quit my job, I will sit here and write Lisp all day.
[00:00:59] Right now, that's not a thing [LAUGH] that's not gonna happen so this is a little chance for me to live my glory days. But there's also a very practical reason to work on a Lisp, which is, if you think about Python, Python has 33 keywords and 110 syntactic forms, Java has 133 syntactic forms.
[00:01:19] We'd be here for a good month, right? Scheme is a lot simpler, right? It's effectively a bunch of Lisps. And so it'll be a little bit easier to kind of get started with. The other nice part about Scheme is that it is, if you ever look at Handlebars, Handlebars is very much like a Lisp with strings of texts in the middle, right?
[00:01:39] A lot of templating languages are very close to this as well. So you can kind of use it practically there too. So there's a lot of inspiration, if you feel really inspired after this, and you want to do more things, Peter Norvigs's Lispy is a Lisp written in Python that inspired some of this.
[00:02:19] We use a lot of these techniques on our own templating language that we're working on right now to kind of make dynamic templates. Part of our goal is to make it so that developers and marketers don't have to talk to each other anymore, right? And if we can make the language very easy to use, so that they don't have to file a ticket to change the email template, then I win, technically.