Check out a free preview of the full Building Your Own Programming Language course

The "Course Project" Lesson is part of the full, Building Your Own Programming Language course featured in this preview video. Here's what you'd learn in this lesson:

Steve introduces the course project, which is to create a scheme-based language called dropbear.


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.

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.

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.

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.

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?

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.

There's the Egg programing language in Eloquent JavaScript. The Super Tiny Compiler, which is just a very small Lisp-like compiler written in JavaScript. There's lots of different resources where you can take this for more spins that will serve as both a kind of a prequel and a sequel to what we're doing today, right?

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.

Learn Straight from the Experts Who Shape the Modern Web

  • In-depth Courses
  • Industry Leading Experts
  • Learning Paths
  • Live Interactive Workshops
Get Unlimited Access Now