High Signal Podcasts Evidence ledger
Method
Browse
← Back to evidence

Evidence receipt / belief

Published · transcript-backed

Tim Sweeney: belief

30 Apr 2025 Lex Fridman Podcast #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming

“Verse is a functional logic language because we think that that’s the way to make the most simple and powerful language simultaneously.”

— Tim Sweeney

Source trail

Everything needed to verify it.

Speaker
Tim Sweeney
Attribution
Verified speaker
Claim type
belief
Recorded
30 Apr 2025
Publisher
Lex Fridman Podcast

Transcript context

…That’s really cool though. Just sort of the possibility, the vision of that is really cool. Even a hundred thousand people or like 10,000 together just, I mean, there’s a reason in the physical world when you go to a concert and you have all those people around you, that energy, or you go to a football game, that energy is unlike anything else. And if you can bring that energy to the digital world, that’s amazing. But anyway, sorry, what, on the technology side of bringing that to life on the programming language side, can you continue, as I rudely interrupt you, talking about Verse? Verse is a functional logic language because we think that that’s the way to make the most simple and powerful language simultaneously. Back in the 1970s, the programming language designer who built Pascal, one of the early programming languages, Niklaus Wirth or Nicholas Wirth as Americans might call him, stated this principle that programming language should achieve a high degree of power, not by having a lot of features, but by having a small number of features that work together and can be composed together arbitrarily so that you have to learn a relatively small set of things and then the real knowledge comes as you learn ways to combine them to achieve bigger and bigger programs. And so there’s a long history to the field of programming languages, but in the 1950s, the first programming language designers got together and built the first standardized language called ALGOL. And there was this meeting in 1956, very few people even know about it, but it’s where all the major foundations of modern programming languages were decided on, that the C family of languages inherited. And so we’re very much living in a world that was defined by them. And thankfully they got a whole lot of things right. They defined how functions should work, how variables should work, and how recursion should work. Thank God they got those things right, but they got a few things wrong. And Verse is trying to fix those. And that’s the functional logic part of it. The interesting thing about functional logic languages is that in an old school language, an expression produces a value. In a functional logic language, an expression can produce zero, one, or multiple values. And if it produces zero values, we might say it fails, and if it produces one value, we say it succeeds. And if it produces multiple values, it’s providing a set of values you could iterate over. And so there are a bunch of features in today’s programming languages that were defined in an ad hoc way without really thinking this through, this zero, one, or many values way. And that’s the problem that functional logic languages address. And the most basic example is an if statement in a programming language. If some condition holds, then do this thing, otherwise do that thing. And in a language today, this is done with variables of type boolean or expressions that produce booleans. We have boolean variables that are either true or false. We have expressions that evaluate to booleans. And so you can express a condition as a bunch of these features together, but you’ve lost any computation you’ve done in doing that boolean expression evaluation. xpressions that evaluate to booleans. And so you can express a condition as a bunch of these features together, but you’ve lost any computation you’ve done in doing that boolean expression evaluation. So in a functional logic language, your condition wouldn’t do that. It would either succeed and produce a value or it would fail. If it succeeds, it goes to the then branch. Your operation succeeded, now you’re running this one batch of code. And if your expression failed, then you go to the else branch. But the exciting thing about that is your expression that succeeds or fails can produce values and bind variables that are then accessed by the then branch. So you can write a conditional where you can only get to the inside of the condition, to the then, if a bunch of variables have successfully been bound to variables. So it lets you test if some conditions hold and then use the results of those tests. And that gives you a much higher level of reliability. And then a for loop in a traditional language, it’s just a bunch of imperative code that’s woven together to produce a bunch of values iteratively. It’s rather awkward to do complicated things in for loops. And so you often end up with either ever more complicated constructs built to work around that like iterators and other things. The idea of functional logic languages is your for loop can just produce multiple values. And if it produces zero values, you’ve got to reiterate zero iterations, and it produces a bunch of values you’ve got to go through all of those as your iterations. Rather than having a bunch of nested loops, you can write arbitrary things that look like SQL queries in a condition or in a for loop that bind a bunch of variables, do a bunch of tests, produce a series of results in some order that you’re iterating over, and then you can handle all of them and produce a result. So you gain the power of SQL queries, large complex queries that are data structures in a language that is much simpler in which your code is just performing simple iterative operations. And so it gives you the best of databases and of regular programming in a much more uniform way. And the power of this is now users can write functions that not only produce a value, you can write functions that might fail. And so you can write a function that answers a question. The answer can be either yes and my value is this, or no. And you can combine these together into arbitrary queries.…

Stored transcript either side of the excerpt. The highlighted words are the published quote; the surrounding text is unedited source, never generated.

Search evidence