Steve: Val Town secretly kind of is also. Not only an app store, but a social network. And I have to like, and like a collaborative place. Like, it's kind of like GitHub and the App store and Twitter all in one. There's, it's so much to build. It's overwhelming and also very energizing and fun.
Andrew: Hey, before we get started, I'd like to remind you that the full version of this episode is only available to our paid subscribers. The current platforms where you can pay for a subscription are Apple Podcasts, Spotify, and Patreon. In the full version of this episode, we talk about things such as Steve's past startups, his life-changing, talk with Alan Kay, some of the cool community creations that people have made on ValTown, how he plans to monetize, and of course, all of our tooltip for the week.
And with that, let's get onto the episode.
Hello, welcome to the Dev tools FM podcast. This is a podcast about developer tools and the people who make 'em. I'm Andrew, and this is my co-host Justin.
Justin: Hey everyone. I'm really, really excited today to have Steve Krouse on the podcast with us. Uh, Steve was the creator of the Future of Coding Pod, uh, podcast, which, uh, we'll talk about a little bit today. Uh, he's also the founder of Val Town, uh, which is a really, really cool, uh, platform for writing type script code.
[00:01:19] Who is Steve?
Justin: Uh, and we'll talk a little bit more about that. But before we dive into all that, uh, Steve, do you wanna tell our audience a little bit more about yourself?
Steve: Sure. Uh, first of all, thanks for having me, guys. I'm a big fan of the podcast. Uh, as uh, Justin was saying, I had my own podcast called The Future of Coding, uh, which is now in the fantastic hands of Ivan Reese and Jimmy Miller. Uh, but sometimes I feel like they're, where they took the podcast is kind of the, the history of coding cuz they, they do like old, uh, old interviews and it's, it's fantastic and very ironic that a future of coding podcast, you know, it is like exclusively now about, uh, his, the history of, of computing.
Uh, and in some sense I find that you guys are like the, the true successor to the future of coding podcast, particularly in like who you choose to interview. Um, I think like your guys' style is like, like a little tighter and more modern than my, like, rambly style. But, um, I've really been enjoying like, your choice of guests and, and the way you've been, uh, handling the interviews.
So well done.
Andrew: Thank you.
Justin: Yeah, we, we, you're a part of that illustrious guest list. Uh, this is exactly one of the reasons why we really wanted to talk to you because I feel like some of the stuff both that you've worked on and that you're working on currently is like really sort of like fits really nicely into that niche of like working towards the future.
Steve: Hmm. Thanks. Uh, alright. So tell you about myself. So, um, I was, um, I guess my story is that I was computer nerd. Um, and then I, I, as a kid, I really liked, like, helping people with computer stuff. And then I found my way to an afterschool computer science program that really blew my mind. And, um, I guess that's where I fell in love with programming languages and education because I saw the power that they had to change the way I thought about things.
It made me, um, better at school, particularly mathematics. And then, uh, in college I found at this, at this wonderful hackathon, I could tell you more about the, the details of that story. But anyways, the short of it is I, I found my way to Brent Victor's essay learnable programming, which, which sent me to Seymour Papert's And, uh, I realized that all that stuff, uh, like me getting good at math through computer science was the whole point. Like Seymour Papert Set, out to do that on purpose and logo. The programming language was actually like a Trojan horse to teach kids who hate math, to love math. Uh, it, it wasn't about teaching coding anyways.
It blew my mind the power of programming languages, programming environments to change the way people thought. Uh, both from like a perspective of programming is powerful and amazing. And also, uh, education. There's like so much, so many interesting things to be done in education. And, uh, I guess that's decent preview of kind of what I ended up doing with my career.
Uh
[00:03:58] Teaching Kids
Andrew: Yeah. That's awesome. You had access to a program like that. Like, I personally grew up in a farm town and we had an ag department, but uh, computer, the computer class was literally, uh, use apple paint. So I, I had no introduction. But it's awesome that you had that, uh, uh, that realization. Did that feed into creating the coding school, and that's why you chose that path.
Steve: Yeah. Yeah. So I, I feel like I always wanted to do something in programming education to like give back, uh, and give to other fo kids what happened to me because it just seemed to me like the difference between me and other kids in math was, uh, like this access to this education. And there was like no reason why everyone couldn't be good at math.
Uh, I think most people have the experience of you being bad at math or good at math. Uh, and I went from being one to the other, so I was like, ah, it's not genetic. Like, like most people kind of think. So I wanted to do it eventually. Uh, and then I think I was watching some YC interview where they said like, do the startup that you can't not do and like, don't, don't do like the startup that you think you might do one day.
Do that one now. Uh, and so that was the one I did first.
Andrew: Awesome. And that, that was like a pretty successful venture, right? You, you ended up selling that?
Steve: Yeah. It was never. Well, okay, so I, I didn't think too much about it at the time we were scaling like a services business. It wasn't like, like a huge venture outcome, but it was like nice for putting in a couple years of work. Um, but really ultimately, like, ultimately it was, I wanted to work with kids. I wanted to experiment with programming languages with kids, uh, and kinda like get up close and personal with like how to, like, I wanna do product work where the product was like inside ch children's minds.
You know, it's, it's like I just wanted to get, I like wanted to get up close and personal and like ex experiment and see how learning happens, what, what makes it hard to learn to code. So, um, it's like the business was kind of just a vehicle to do that.
Andrew: Awesome.
Justin: I, I wonder sort of on this, there's this like collage, uh, there's a, there's a bunch of, of different topics that come together here, um, both on like future of coding and, and sort of your past and the coding school, but there have been a lot of attempts to make programming more approachable to children in particular.
So I think of Scratch, um, and there are like other like sort of semi simple scripting environments that, that like have been built for kids. What do you, what do you think about those? Were you thinking about those in, in that time when you were sort of like doing that as like, um, or was it that just sort of like a, you know, off to the side and you're thinking more about like, how do you get kids more in, in tune to the traditional model?
Steve: Oh yeah, yeah. No, no, no. I was definitely, that was like the whole point. The whole point was building programming environments in the like school of thought. That logo was. So like, like logo was conceived of and crafted to be like perfectly learnable for kids. And then I found that right Victor essay learnable programming, which blew my mind and I recommend to everybody.
And so like the goal was always to like find the best programming environment for kids to live in and explore. Uh, and, and it's like not a coincidence that I actually chose Scratch as the way to start my program. I tried a lot of different things. Originally, I really didn't wanna do Scratch cuz I feel, cause it like had a, it had a weird reputation at the time, uh, which I think was undeserved.
I think Scratch is fantastic and you know, really is the successor logo. It was created by Seymour Packards, you know, grad student, Mitch Resnick. Well he's not a grad student anymore, but he, you know, his, uh, I guess protege. Uh, and yeah, so we started with Scratch. And then I guess just to tell you about the journey, uh, what, what happened was kids at a certain point felt done with Scratch.
Uh, so I wrote this essay. Um, scratch has a marketing problem, uh, which the basic thesis is that scratch really makes itself seem easy and fun and like for kids. And so the problem with that is, is that it's, it is easy and, and fun and good for kids and it does bring people in the door. But programming is hard sometimes.
And if you do something that's supposed to be easy, but it's sometimes hard, that's a scary thing cuz like, even if you succeed, you. It's like, well, what did you actually accomplish? Like you told me programming was easy, uh, and if you failed, it's like, wow, you must be a real idiot. So, so anyways, uh, at a certain age, kids are like, no, no, screw this baby stuff.
I want real programming, which is like a normal and adult, it's like a normal thing for kids to want. Uh, and there was no place to go. Like, I tried JavaScript and I tried, I tried all these other places. And so eventually I made, like, I made this, uh, intermediate step, uh, called woof js. Like woof, it's kinda like a pun on scratch.
Uh, and it was a JavaScript framework where there was a one-to-one mapping between every concept and scratch, every block and scratch and like a JavaScript function in woof. Uh, and so you could even like drag and drop, uh, scratch blocks into your code and it would like paste his code. And so like you, you could pull up on a scratch project and put it side by side with a wolf project and just like translate it one by one from blocks into text.
And the thesis there that panned out was that syntax itself is like a difficult thing to learn and. Like for any language, just like the concept of syntax. And so we should focus on like, kids already know programming concepts from scratch. Let's keep those concepts the same. Like let's not have them learn any new concepts.
Let's have them just focus on semicolons and bra and like matching braces and matching parentheses. And, uh, I like they need their whole focus on that. Uh, and then, and then we can move on. So that works pretty well.
Justin: This is a space I was interested in back in like, I think it was like 2008, uh, Microsoft released Small basic, which is like this, this scripting environment that was like kind of approachable to kids. And I remember when that came out, I was like so excited about it because it was still a scripting language like anything else.
But they had this like, pretty tight gooey integration with these like big intelligent selectors that gave you like inline documentation. And I was like, oh, this is really slick. And I remember, uh, in college, you know, getting in the, the Minecraft sort of thing, like digging through that. And there, there was a lot of like, Lua programming and computer craft and a lot of like kids getting into that sort of thing.
And now kids these days have like Roblox and they're like building whole freaking applications and, and selling that and it's like wild, you know? Um, so it's just interesting to see that sort of progression of like, I don't know, kids and software anyway.
Steve: Yeah.
[00:10:40] Entering Val.Town
Andrew: Okay, so, uh, now moving on and looking to what act, what you're actually doing now, uh, you started a company slash platform recently called Val Town. So can you explain to us what Val Town is and why you started it?
Steve: uh, Val Town is a delightful place to code online. That's the, the short of it. Uh, I think sometimes it's hard to explain exactly what it is cuz it's so simple and generic and horizontal. If I'm gonna put it in VC terms. Uh, I, we just changed the website.
Uh, here, let me, let me re read from you that, like the two new lines on the, uh, the website. Cause I think, I think they're, they're, they're pretty evocative. Uh, hold on. Uh, let's see. If AWS Lambda were fun, like GitHub gifts that run a little poem. A little poem. Uh, yeah. So it's, it's a, it's a, it's a text box, uh, at val.town in a browser.
You write JavaScript or type script. Uh, you hit run, it runs on our servers. We show you the result. We make it really easy to hit that same code via an API or schedule it or, uh, let anyone else kind of import it and call it very, very fluidly.
Justin: It is really deceptive. How much power is in that like, simple statement. Um, what, what, what inspired this? Like what motivated you to come up with, uh, with val?
Steve: Yeah. Uh, it's, I, I feel, you know, like you can always connect the dots going backwards, but I feel like I've been working up to this for so many years and that like so many of my, my research and my experiences have prepared me, uh, to do this, like, uh, So for many years I was like, uh, teaching kids a code on Chromebooks, and then I started using a Chromebook to kinda be more like one of the kids.
Uh, and whenever I knew coding, the browser product would launch or take off, like rep it or, uh, glitch or Cloud nine even. Like, I was always the first user trying to actually make it my like, main programming workflow. Uh, and I think it's like a bummer that I, I like, one of the main reasons I have a Mac even is just so I can use VS code, uh, because like that still is like the best, the best way to do it.
But, um, so anyways, I'm like, I've been a, a big fan of like, in browser programming environments, but I never thought like, seriously thought about competing in that space. I just thought it was like too crowded and too difficult. Uh, and so my story, it's kind of a weird, a weird origin story of a company. So after Zap Lib, uh, shut down, I went around and asked all the like venture capitalists that I talked to, uh, and like angel investors, just like everyone I talked to for Zap Li.
It was like kind of still in my life. I was like giving them their money back. And they were like, what are you gonna do now? Like, do you wanna interview at my company? Uh, or do you wanna start a new company? And everyone, and I was, I was eagerly asking everyone for advice for what to work on next. And one of these people was, uh, this investor, Dan Levine, uh, who's at Excel, and he was one of the first investors in, sorry, he's ac at Excel, one of the first investors in Vercel.
Uh, and he and, uh, let's see a bunch of others, uh, readme and scale AI and mx, he's, he's like a big dev tools investor. And he, he was so ready for his question. He's like, I got like some, I, I like five business ideas for you. And he just like started listing 'em. And, and when we went into them and, uh, he really had me at the first one, it was the idea for val town.
Uh, and so, uh, I was like, yeah, but like, it, it is a competitive space. Like how are we gonna make this work? And he's like, Yeah, but before Slack there was HipChat, you know, before Facebook there was Friendster. Like, just because the space exists and it's crowded doesn't mean that anyone's won it yet. Like, I don't think anyone's won this space.
I think it's a huge opportunity. Uh, and, and, uh, it'd be fun to go after it. So, uh, we prototyped for a little bit. Him and I just casually, and then we decided to make an official with like a little investment, and that's, that's, that's how it kind of happened.
Justin: That's super exciting. It's really interesting to get pitched by a vc to build a company. It's like, actually, this is the business you should build.
Steve: Yeah. Yeah. It's, it's very weird. Uh, it's very cool though, uh, because, you know, like, it, it's rare obviously. Uh, so it's a, a cool gig if you can get it. Uh, I guess if anyone wants this to happen to them, I will say, like, it seems like basically how it happened for me, you know, you could ask Dan, but he emailed me after reading my blog for a long time.
And so, uh, Like the whole working in public learning, in public sharing your insights thing really does pay off in my experience. Uh, so, um, so yeah, he found me through that. We got to know each other and, uh, and, and yeah, he, he invests is all about taste. He's like, I think, I think you have like, the taste to, to make a, uh, a delightful product in this space.
Uh, so, so yeah, cra I spent like the last 10 years, uh, blogging as a job interview, I guess kind of. Uh, and, and yeah. And I, and then to your point about like how it's cool to be pitched an idea by vc, like usually the way it goes is the other way. Like we're, uh, uh, you have an idea and then you have to like constantly convince VC that it makes sense.
And then like every roadblock that happens, like vc like kind of loses faith and you have to like reconvince them. This is the opposite. Like, like he's got the conviction and he, and he, uh, And he, yeah. So that, that's been, that's been like fun. And for some reason that feels like, feels like a more stable place to be, like the VC has as much or more conviction than the entrepreneur in the, in the idea.
[00:16:15] End User Programming
Andrew: Yeah, that's a, a nice shortcut to take. So, uh, I was, uh, reading through the, the docs, uh, and one of the things that was called out super immediately was the idea of end user programming. So what is end user programming and how does Val Town step us closer to that idealized.
Steve: Yeah. Yeah. So end user programming is a super long dream. Uh, and many people, uh, kind of schooled in like modern technology and like the Silicon Valley mindset might be naive or like, might not realize how long, uh, this dream has been around of like end users, just normal people, uh, who don't know how to code could be given the full expressive power of, of programming without learning how to code.
Uh, it's, it's a super old dream and it's. Been very resistant to progress over the years. Like maybe like, like some of the bigger success stories in end user programming HyperCard is, is, is touted as one, spreadsheets is touted as another. Uh, if, if you can squint, you know, squint spreadsheets are programming language, you know, the most popular programming environment.
Um, and yeah, so it's been really hard to make progress in this front. Um, the low-code and no-code movements have been very impressive in recent years, and I've been quite excited to watch those thi those guys go do their thing. I, I would say like Retool is a huge inspiration of mine. Uh, I, I admire that company a lot.
Um, but, uh, ultimately the thesis of Val, the thesis that I've been developing for many years, which, which actually has been, uh, partially inspired by Paul Chissano, one of, one of the founders of Unison, which, uh, I know you interviewed his co-founder Runar on this podcast. Uh, so, so Paul gave this talk that then was never, he gave this talk in a private setting.
It was never. Published, but, and I think it's a real shame cause it really influenced my thinking. He was like, would you rather have a a, a text, a brain to text interface to, to basic, uh, or like X 86 so you don't have to use your, you know, as fast as you could think, the X 86, it'll get written. Or would you rather like have to use vi or nano, but you have to write Haskell?
Like would you rather have like better abstractions, but like a worse porcelain or would you rather have worse abstractions, but unbelievable connection. And he really, he really made the case of what you want actually is better abstractions. Um, not like easier use. And so like the no-code movement is like, we're keeping the same extractions or we're even like making our abstractions poorer, but giving end users like a prettier way to interact with them, uh, where what Unison was trying to do.
And, and what I think val town is trying to do is make more powerful abstractions, make programmers even more powerful. And then, and then, and then like, kind of hope that on the other side of that we can find our way towards democratizing that extra power towards end users. But like you search for the elegance first, not the, uh, the ease of use.
So, uh, anyways, that was kind of a roundabout way of explaining it. Uh, I have, I'll just say one more thing and then I'll, I'll stop rambling. I published this essay end, uh, end Programmer programming, uh, because I think it's an excellent, like, end user programming is just too far away. They're like too many problems to get to get all the way there.
Uh, and so like wh when programmers come home, they don't use their programming to like customize the software they use. Like programmers ultimately just use apps like their normal users. Uh, but at work they're like wizards. And so part of the, the vision of Allan is how can we make, uh, Programmers when they come home, wizards in automations and, and their normal everyday life.
Uh, and then, and then trying to democratize that power to real, to, you know, to normal people after that. So, and, and programmer programming is a pit stop to end user programming.
Andrew: Yeah. A, a great way to solve problems I've seen in programming is getting your primitives right and going straight to end user programming without all the primitives in between seems like a, a pretty large leap. So things like this where it's like end programmer programming, just kind of like ups the bar and gets the primitives to the right level where we can start focusing on the next problems.
Justin: Yeah, I, I wish that talk would've been published cuz I, I, I am like just digesting what you're saying. And there's a lot of things that I think are really interesting and the things that I, when I look at Val, there are things that are sort of like hit in the middle there that I think are true. So f for those of you who haven't tried Val, who are listening, you should try it because it's super fast to get started with.
And I think that is one of the key areas of like value is like, it is reducing the, the barrier of entry is somewhat because like, I think like average people, just normal people who have no program experience, you can explain like what a loop is or like what a variable is or like what a function is. And people can get that, like all the basic primitives of programming.
When I tried to teach myself programming, like in high school, Uh, the thing that I got stuck on was not the programming language, it was just like getting set up and like getting the like compiler installed and like finding all the right stuff and path issues and like all this stuff that's like required but unfortunate, you know?
Um, so I think like we're lowering that barrier entry is really valuable. But then your, your, your point about abstractions is, is true too. One of the things that Val does that's like really, really powerful is it makes it trivial to share code. It's like adding somebody in a tweet basically. And like that same sort of, uh, sort of interface for, for reason using code is extremely, extremely powerful and I think it builds the network effects of, of the utility val.
And it's a combination of those two things, the lower barrier of entry and these powerful abstractions that I think really unlocks a lot of platform value in an interesting way.
Steve: Thank you. Yeah. I love how, uh, I, I love how you can see, see where we're trying to go with it. Uh, I found that in the current incarnation of the product, cause it's still so new, it's like nine months old. Either people are just utterly confused. They're like, I don't know what this is or what it's for. Or people are like, oh, I, I see, like you're gonna, you're fucking taking over the world.
Like, I, I feel like there's nobody in the middle. It's either like, wow, this, this platform's so powerful, or like, I have no idea who would ever use this.
Andrew: You either understand math or you don't. Uh, same thing. Uh, so one more question I have on this topic, while we're still focused on end user programming. Uh, recently, uh, a bot came into the space and made a lot of people think that they can be programmers now. Uh, so chat, G P T has, uh, really changed the landscape, I think, on how people view what programming should be.
Us as programmers might have a slightly different view, but what are your thoughts on the whole, on what's happening with chat G P T right now and maybe how it might integrate with Val Town in the future?
Steve: Yeah. Great question. Very of the moment, uh, there's, uh, a conversation. That was started in the future of coding Slack, uh, recently that like, kind of, that took my end end programmer programmer essay as a, as the prompt. And like, you know, someone asked me like, like how would I react to it now in the age, in the light of GPT four?
Uh, and my thesis, and I pulled in a quote from Amjad of Replit is that it's, it's stunning how good it is, and yet it doesn't seem to be good enough at all for someone who doesn't know how to code to fully code with GPT four, it seems like, or GPT four. It seems like for people who know how to code a lot, or even like if, um, if you're a mediocre programmer, but like if you're a programmer of some amount, uh, it gives you, you know, maybe it'll make you twice as good or five times as good, but it can't multiply zero.
You know, you can't multiply by zero and expect anything other than zero today. Uh, it it, it seems like if you don't know, understand how to write, like if you can't read, understand syntax. Or like you just don't have the basics. It can't fully get you there, it seems. Uh, cuz it's just, there's just too many there.
Like what it seems to me is there are too many ways it can go wrong. And ultimately what you're ending up with in is the same situation that the people who make self-driving cars ended up in. Like, there are just too many nines, like at the end of this to like, make it, like, to make it work. Like, like full self-driving or like full programming, uh, is just so much harder than like 99.999.
Like the more nines each nine is like, requires an extra, you know, billion dollars of training a day or whatever. Uh, like, or you know, exponentially more, the more nines out you go. Uh, and so for a programmer who's able to like bridge that gap, you know, like when you're driving your self-driving Tesla, you have your hands on the wheel.
Uh, it's, it's an amazing tool. But for people who don't know how to code at all for like full end user programming, I don't thi it, it makes a difference, but it's, it's definitely not like, ah, the job is done. Like we can all go home. So, and, and I don't see it happening like next year that like end user will be able to program like in the same, in it, it, it, it does seem like it's a diminishing returns kind of thing, like, like self-driving cars.
Uh, but to answer your question of like, how will we leverage those? How will we leverage it? Cuz, cuz you know, it'd be stupid not to leverage it. Um, I'm a big user of co co-pilot. I use it all the freaking time and, um, I mi whenever I'm programming in Val Town, probably the biggest thing I miss is like, where's my co-pilot suggestion?
Like, it should be able to help me here. And, uh, I, I'm kind of just waiting for someone to build the like, um, code, uh, code Mirror six, uh, kind of co-pilot ask integration thing and just, uh, get it for free whenever someone else builds it. Uh, but if, if by the time we, we have the bandwidth to build it, it's hasn't been built, we'll build it, uh, maybe later this year.
Um, the, the thing about val town that's, uh, Or great. Or one of the things about it that's great is that it's the focus, the style, the Val Town style has some small snippets of code. Uh, like Twitter has been a big inspiration here. Small composable snippets of code functional programming has also been a big inspiration here.
Unison, dark, uh, languages that people, listeners of this show will have heard of. And, uh, well, I, I think if I, if we put do it right and it seems like we've been doing it decently well, um, Val can feel like you're using a spreadsheet, not a programming language. And, and what I mean by that is that a spreadsheet mostly when you're like using a spreadsheet, mostly it's running and working.
And if you're editing code, you're editing it in one cell and it's a small amount of code and if it breaks or works or doesn't work, it doesn't really affect the other cells all that much. It's like kind of isolated and small. And if you want to like fork someone else's thing, you just have to like change it in little places.
You don't have to learn like the whole language all at once and figure out how to host it and deploy it. It's just like you're, you're in a running, working system and you just have to tweak a little thing here or there. And so I was hoping that that thesis would play out well in like helping people who don't know how to code, learn JavaScript, um, or learn to code.
But what we've seen in practice, uh, we don't have any people who don't know how to code using val town today. But we do have a, a ton of users. Like some of our best users are people who didn't know JavaScript. They were programmers in other languages and they just wanted our like hosting capabilities.
And they were like, oh, I guess I have to use Val. I have to learn JavaScript. But it was so easy for them to learn JavaScript cause they didn't have to learn the whole language all at once. They just had. Fork, someone else's vow and like change it from like a plus sign to a multiply sign or whatever, you know, like little things around the edges.
And then they, they, they'd add a weight keyword and, ah, oh no, I have to add async at the top. Like, when you learn a programming language in small snippets, it's a lot easier. So, uh, I could definitely imagine like AI helping this whole process along, uh, where, where like you, where like you can imagine, uh, error messages automatically come with suggestions too, anyways.
Like, these are things that the whole industry's gonna adopt and hopefully I can just get them for free cuz like, uh, you know, we've rely on open source tools and hopefully they'll all kind of just integrate together.
Justin: So we've talked about chat, GPT, and sort of like this, this like forward looking, uh, integration, but, but sort of grounding it back down if you're.
[00:28:44] Comparing Agaist Other Tools
Justin: Trying to describe Val in terms of things that people may have already used. So maybe like replit, which we discussed earlier, uh, observable notebooks, which are a great like, place to play with code in the browser.
Um, you know, there's things like, uh, code sandbox or code pen. There's like a lot of like different ways to play with code in the browser. How do you, how would you really sort of position Val in relation to a lot of these other tools?
Steve: Yeah, really fantastic prompt for me. So, yeah, I, I, I'm such a student and lover of all these tools. Uh, I don't know if anyone's seen my whole code catalog where I reviewed like a couple dozen of them. Um, I would say that the first way to distinguish Val Town is that it's server side code. So, um, we were on your code, on our servers always.
Uh, we initially launched with like no kind of, uh, front endy thing, but immediately people were like, I want to output html. And so, you know, now you can output html, uh, and that will like, but not even in an iframe like you, that's only kind of via our api, but, but it works. Um, but like when you output html, it's still service I compute and then like if someone chooses to load their HTML and a browser.
Sure. Now, now there's clients that compute happening, but we're not really involved with that yet. Uh, so Valan is a server side platform very similar, uh, in that way to Replit. Uh, who else? So Code Sandbox is more client side, absorbable is more client side code Pens client side. Yeah. Relet is definitely server side.
Uh, I'm trying to think who else would be similar in that way. Um, Uh, yeah, I'm a big fan of Replit. Ija Relo was the sponsor of the Future Coding Podcast actually. Um, let's see the difference between Val town and Relet, I would say one difference is that they are, there are like 50 languages on relet. Cause that there, I dunno if you guys know the, the history of Relet, but it was originally started as a WAM project, or I, it was an ASM project before wam.
It was like Amjad saw that you could, uh, evaluate any language in the browser by just first converting it to, uh, ASM and then, and then running it in the browser. And so that was the original version of repl. And only later did they, uh, take it outta the browser and, uh, run on Docker containers. Um, but, uh, yeah, so part of Rep's strength is that you can do any programming language without setup.
You get that amazing, like you just boom, you press a button and then you're like popped in this environment and, and you can go. Uh, and I think it's particularly for education use cases with kids, it's just so perfect. For, for high school kids, uh, you know, any computer, just press a button. Boom, you're, you're, you're programming and where you need to be. Um, but I would say that replit is fundamentally, it's like a web interface to a Docker container that's specialized for programming. It's not a new internet medium besides the fact that it was like took something from a desktop and put it onto the browser. So in that way, like sometimes the metaphor, the metaphor I draw is that like, replit is like, uh, like replit took like newspapers and made them blogs.
So like, in that way, replica's like medium.com or like substack maybe where Val Town is more like a new form of media that's about all about smallness and composability. So Val Town's more like, uh, Twitter, where, um, replit's more like medium. It's like, it's like heavier, uh, and made for more like serious things where Val town's made for like small more composable things.
Uh, and it's, it's just like lighter. So, um, Like we just, we just launched unauthenticated in, uh, evals on Val.Town So you can like go to our website and just like type Java through code and hit run. We'll just run immediately and show you the results on server side, um, which I don't think replit does. I think you have to like create an account like launch instance, like boot up a docker container, boom.
Now you're in and now you can do stuff. Um, ValTown is just like a little bit more light and fun. Uh, at least that's the idea.
Andrew: So like on replit, like you'd have to take like extra steps to like have basically like a long standing service where like that's just built straight into Val Town. Like your function can just easily be an API with like no clicks.
Steve: Yes. Yes. Very well said. Um, yeah, there, I think for, for programmers, sometimes it's like hard to believe how every val is just automatically in api. There's like no extra steps. There's no hosting, there's no configuring. It's just like you wrote a function. That function is just automatically accessible via the api.
Pass the arguments in as, as you expect. Uh, yeah.
Andrew: Well, I, I, I do. I'd say you don't even pass them in as you expect. Cuz like, I saw an example where you're like calling a function in a query string peram. Like that's, that's not normal stuff.
Steve: That that's true. That that's true. Yeah. Uh, well, so when I say as you expect, what I mean is any of the ways you would possibly think of like intuitively to do it. I've tried to make all of them work together, which is a nightmare for the new team that's maintaining the run time because, uh, there are like seven ways to do something.
So we might have to simplify that eventually. But, but yes, we, I did throw the entire runtime into the URL bar. So you can do like at Steve Krause dot Fu or like at Steve Krauses is my username fu is a function I wrote. Uh, and then you left parentheses and you can like pass in a string and then like, you know, right parenthesis, right parenthesis and the times 10 you can just like compute right there in the u URL bar.
Uh, and it's very elegant and weird and it seemed like I was cheating when I did it. Uh, but it hasn't caused any problems since, and it's been very powerful. People have really relied on that expressivity, right in the uur URL bar.
[00:34:32] Powerful Primitives
Justin: Um, what do you think are some, uh, unique features that Val has that, uh, others don't? So, one of the things that I can point out to that's like my, my favorite is what Andrew just mentioned. It's like the whole like runtime is in the URL bar, so you can just like write some code in the URL and have it like, you know, pass different things to a functional now.
I think that's really cool. Are there any other features that will sort of like, stand out to you? It's like, yeah, this is a cool.
Steve: Nice. Yeah. Uh, we don't have too many, uh, ultimately, like what we do is we just run code and we make it simple. Um, we don't have too many superpowers yet. Like, I want to add more, uh, like ultimately I would love to add like all of the z like the superpowers of Zapier into val town, so you can like log in to all the SASS apps you care about.
And then we just like throw your bear token. Into your val town secrets. Uh, and then you can just like, and then, and then we like easily connect those to the valton functions that are relevant to those APIs, maybe SDKs, whatever. Uh, and then boom, you're like computing with in, in your life. That would be an amazing set of superpowers that, that we don't yet have that I want.
Uh, the super powers that we do have are, aren't that many, but they, but, but they're powerful in composition. Um, there is a schedule button, so you can run any function on a schedule you hit, like you hit one button and boom, it's running every hour. You can customize the time to whatever you want. Uh, that, that one is like, uh, sounds kind of stupidly simple, but it's quite powerful.
Uh, another one is console.email. So as easy as you would log to the console, you could just send yourself the author of the functioning email. That one's pretty great. Uh, we also make it really easy to store small bits of json uh, on your namespace. Like at me dot fu equals five. And then, What under the hood, what that does is it just creates a new val named Fu or a new version of a vowel named Fu on your namespace and set that equal to five.
So there's no like separate state. Uh, so like one of my favorite lines is that, uh, this isn't entirely true, but it's directionally true that everything in val town is a val. Uh, Val town is a town of vals. Uh, so conceptually the model is simpler that way. Um, what other cool features do we have? I guess, I guess those are the main ones.
Uh, you can import code from like anywhere. Like kind of like you're in Deno, you can call uh, functions of other users. Unbeliev as easy as you tag someone on Twitter at, at, you know, justin.bar. I can call that and get access to his data. His hi. Uh oh yeah. And secrets. Yeah. At me sec me Secrets dot Twitter.
Boom. That works.
Andrew: Yeah, I, I, two of those features stand out to me. Like cron is something that seems simple, but if like, you're actually trying to do that yourself and you've never thought about it, like most platforms really don't support it. Like you can get around it by using a secondary service that. Do the cron for you and then call your a p i endpoint.
But like then you're getting into that territory of like, well, now I have to care about things. I love that, like a val provides a way to not care. And in the same vein, like the cons dot email's, the same thing. It's like, I don't wanna have to care about how to send email. Just the ability to like, oh, go send that email.
So powerful.
Steve: thank you. Yeah. Uh, I, I think ultimately what I'm trying to do is like increase the amount of things that actually get programmed because there's so much easier, like normally like there, like I have like uh, 15 running cron jobs right now that are just like random scripts that like do random things for me and I wouldn't have written any of them if it weren't so easy in valtown to just write the code, press one button, boom, they're running.
And then I didn't mention this yet. Oh, there's deep tracing up and down the stack built in. So like, I feel, I find that one of the worst parts about doing cron system is like, it stopped working. Like what happened? Like, okay, now I'm gonna go and add console, log statements, every freaking wear, and then redeploy it, and then just patiently wait around for like the logs to accumulate.
No, no, no. In Val Town, we store the inputs and outputs and side effects of every function. And, uh, the, the long-term dream here is to get full, um, reproducibility of every computation in the entire platform forever. So, uh, kind of like, I don't, you guys probably interviewed, uh, Jason Laster or someone at Replay.
Uh, I, as you see, I have a sixth sense for, uh, the kind of person you would interview. They're just like my friends, basically. Uh, uh, yeah. So we we're, our dream is to do like kind of the same thing, but where he's doing it for front end compute. We want to just do it for back end compute.
Justin: Yeah. I, I think this whole thing is, is, is so fascinating. Uh, I had a friend Travis Fisher, who came to me a while back and he was like, Hey, you know, I wanna build this like, platform as a service or like function platform as a service to help fund fund open source projects. And he'd sort of bated that around that ad in and pivoted on it.
But there was like a grain of something there for a long time. It's like, serverless is so cool. It's like, AWS Lamda is cool. CloudFlare fun workers are so cool. It was like, all these things are cool, but like, you know, they still take activation energy to like get up and running. Uh, like even as a programmer who like knows you know, how to do this stuff, it's just like setting up a serverless project is just gonna take, it takes time, it takes energy and you gotta think about billing and you gotta think about like a bunch of stuff.
And. I think it's just so cool to hit a webpage to write like 10 lines of type script or whatever, to press a button. Then it's like there, and you're like, oh, oh, I messed this up a little bit. Like re like, change something, press a button again. It's there. It's like the deployments are literally a save button and that is, I mean, it it is wild.
It's wild.
Steve: Thank you. Thank you,
Andrew: so we've talked about the cool things about the platform, uh, but are there any limitations built in? I was reading through the docs and there seemed to be a smattering of limitations around a few things. So like what are those and why are they there?
Steve: Sure. Yeah. Uh, the platform, to be honest, is very, very limited. Uh, we were. We're focused on, like, the reason the thing that people do in val town is little automations, uh, is because that's like the only thing it can do right now, which is, which is great and fine. Uh, like we have to start somewhere. Y you can only boil the ocean in, uh, little scoops.
Scoop out a little thing, boil it, go another little thing. Uh, so let's see. And like, yeah, the sequencing, I think for me is like the, the whole name of the game. Like I'm trying to eat server-side compute, like as a category. And, uh, that's just like too big of a category to eat all at once. You gotta, you gotta sequence what you build and, and, and what kind of users and use cases you're going after.
So, uh, the, I'll just develop that a little bit. Uh, the main thing people use val town for right now is what I call programmatic notifications. Uh, and they're like two, basically two line valves where the first line makes a API call somewhere, uh, computes. Like if something has happened. And then the second line, uh, just says, if this thing has happened, if there's some results that match my search criteria, email myself console.email, uh, and then you just hit the schedule button and then voila.
Like you have a programmatic notification that you couldn't have gotten any other way likely unless you knew how to code. Uh, so, and like there are all sorts of services that like give you kind of what you want in a no code way. Uh, but it's just, if you're a programmer, like the interface you want is like the full programmatic expressivity of like, I want exactly this and this, but not this or else, you know, whatever.
So, um, that, that most of the like 15 poll jobs that I have running are like poll jobs where like I can notify if something happens somewhere on the internet, uh, that I'm like searching for certain criteria to happen. So, so that's what, that's like really only the, the thing the platform is good for right now.
Uh, and little making little API endpoints that aren't too involved. Um, We, the platform isn't very good at anything else. Uh, uh, so like the platform, the scalability probably isn't that good. It hasn't really been tested all that much yet. Uh, like we will make it good and scalable, uh, one day hopefully when, when we need to.
Uh, but right now it's just running on like a couple of boxes. Uh, big, big boxes. You know, there isn't anything that, like, we're not deploying the workers or lambed under the hood. We're just running all the code ourselves and that's been totally fine. We've come, we've come nowhere near the scalability where we need to think about it yet.
Uh, we right now, so you can store little, I call it little snippets of json on your namespace. Um, cuz like I, at first I was trying to avoid doing storage cuz that complicates everything in my life. It's so much easier to just be stateless. Uh, the, the goal of the platform is to be just so easy and intuitive, and even when you're doing service, I compute, you're just like, I need to store a number, like a single number.
Like I just need a couple bites. Like, not even megabytes, just bytes, uh, or like a couple strings, like just gimme a little bit. And so, so we, we do that, uh, and we just kind of sh it is a vow. So, um, like we store it kind of like its source text, so it's like not really meant to be a database. Uh, like there's no concurrency control currency currently.
Like we know how to add concurrency controls, but it's like a bit of a project. So right now, valves can just be clobbered, uh, by you, you know, nobody else can write on your valve, but if, if you, if your valves right to yourself twice in the same, I don't know, millisecond only, only one of those is gonna win.
The other one will just die. Uh, which is a very embarrassing feature. Uh, but, but we will, we'll fix it eventually. Uh, right now, like Val Town isn't meant to be like a good database. Uh, it's meant to be like a casual database, and, and it's fine for that. And then, and the size of what you can store in those js o blobs is like whatever fits into a Postgres column.
Json blob thing, you know? So that's also limited. Uh, what, what else? There are plenty of limitations. Like a lot of times people pe like people, I feel like people will constantly ask me and try to build their entire backend in Val Town and that's awesome. I love that. Like, we're going there like, don't tell anybody, but like, that's where we're going.
Uh, and keep trying to do that cuz one day it'll be possible. Uh, but, but it's just not a good idea right now.
Andrew: Mm-hmm.
Justin: Yeah. Uh, part of what you're saying about about storage reminds me a little bit. So we had, uh, Juan Campa on the, the podcast earlier, and I know, you know, Juan, um, and I think persistence or, or, or like simple storage abstractions are so, so like, important in the space and so, so interesting. So I'm really excited to see sort of how that evolves in the future, especially with you and others working on this, who I know.
A lot about like, the space of this model of just like simpler programming paradigms or like, what does it mean to get the abstractions right? So I'm super stoked about whatever the future is there. Uh, I've got faith that y'all come up with something really interesting, so that'd be cool.
Steve: Thanks. Yeah, I, I will say I loved your interview with Juan, uh, so I recommend that to other listeners if they haven't listened to that one. Yeah, if you like this interview, you'll love that one. Cuz Juan's working on a very similar, uh, Similar problems sapce that I'm working on. He's been, he's been thinking about this for a long time and he has some great ideas.
He, yeah, I've definitely, we, we, we definitely sh share ideas back and forth. Uh, so, which would be great.
[00:46:02] Community Inspiration
Justin: I also love how like, basically you are the, the spoke that connects all of our guests in a way that's still so fun. Okay. So to round us out, uh, I would like to just ask you sort of what your thoughts on the, the long-term vision of Val is, and then maybe if you have any meta commentary to, to place on top of that. How does that play into, uh, just this ideal world of like, what the future of programming could be?
Um, so yeah, I'll hand that over to you to take however you want to.
Steve: Uh, well, um, I love it. Uh, so the long term vision of Val, uh, Val Town is I normally, how I call it, uh, I want to be, yeah, something like a social network. Uh, so something like Twitter meets GitHub meets npm meets an app store. Uh, so I imagine people using it. I don't know if people use it every day. I think so.
I think I, the vision of it is people use it every day, like they use GitHub and Twitter every day. Uh, you, like, you log on, you see who's using your vals, you see who's making cool new vals that you wanna like install into your namespace, like their little apps. You like, upgrade your vals that are running in the background.
Uh, the long term vision is you're building your company on Val Town as well. Uh, so you're editing your, your, your backend code for your company, and then maybe even one day, like there's a story with how it integrates the front end stuff. Um, so, so yeah, it's a, it's like, I imagine it being the place not only where programming gets done, but talking about code gets done ver like sharing code.
Gets done. So there's like, you know, like a version control pull requesting story that happens there, and then the, and then it's also a distribution platform where you can like, uh, package up vals or collections of vals into little mini apps that users can use. So I guess one of the things I didn't cover, um, when I talked about end programmer programming is that one of the things in between end user programming and the world we live in today is that run times aren't able to be modified.
Uh, so like even, uh, like open source apps, like, I don't know, uh, pick an open source app like gi, open source, like Consumery kind of, or like, uh, user interface app like GitLab. Um, like you, you could, you could edit the code of GitLab and like make a fork of GitLab or run like a custom version of GitLab or something like that.
Like the, the whole architecture of apps is they're designed for one person making an app with a database and a code base, and then a bunch of people using them. But the architecture of Val Town is that you write it, it's first person programming. It's not like one to many programming. It's one to myself programming.
And so if someone wants to use a val, they fork it or like install it kind of in their name space and use it. And then it's, it's built for them. And customizing it is unbelievably easy cuz it was built for one person. So like, there's no one guy who like owns the, uh, auth tokens to everybody. So, um, I, I can imagine in the future, people installing all these like little scripts, uh, into their name space and running them kind of like a Yeah.
Programming app store. Uh, and, and the vision is that one day people will be installing these apps without knowing to code. Like, oh, like I want to know when to close my windows in San Francisco during fire season. I don't know how to code. Like I just press one button and it just works. That would be cool.
And then, and then like, maybe there's a program in my life who can help customize it for me. Or maybe like by that time, uh, a mix of AI and like the platform just getting, getting better, uh, will like. Subtly pull non-programmers into becoming programmers through like an embodied use case that matters to them.
Like, oh, like all I wanna do is change, like this one vow, this one piece of this one vow, and I'm just gonna learn a little bit of coding to do that one thing I wanna do and then get on with my life. And then over time they'll become programmers. So that's, that's the long-term vision of AL 10.
Andrew: Uh, that, that's cool. It rounds it out. You started in education and you end up in education once again.
Justin: Yeah, indeed.
Steve: Yeah.
Andrew: Cool with that, let's move on to tooltip.
That's it for the free version of the episode. Remember, if you want the full episode, you'll need to subscribe.
Okay, so that wraps it up for this week's tooltip. Thanks for coming on, Steve. This is a, a really fun episode thinking about like education and how it, how it all ties together into like these new primitives that you're building. So I'm very excited to see where it goes.
Steve: Thank you very much. Yeah, this is so fun.
Justin: Yeah, likewise. And Steve, such a pleasure, uh, big fan of all the sort of work you've done in the past, all the, your writing and podcasts and everything. So it, this is a very proud moment for me cuz I feel like it's, uh, this like nice intersection of, of these two communities. So yeah, it's fun. Thanks man.
Steve: Totally. Thanks guys.