No video

Beyond functional programming: a taste of Verse. Simon Peyton Jones & Tim Sweeney | Lambda Days 2023

  Рет қаралды 20,517

Code Sync

Code Sync

Жыл бұрын

Keynote talk by Simon Peyton Jones and Tim Sweeney from Epic Games.
Verse is a new programming language, being designed at Epic Games as the language of the metaverse. Verse is a functional logic language, with a bunch of innovative ideas. Like Haskell, Verse is declarative (a variable in Verse stands for just one, immutable value), and higher order (lambdas are first class). But Verse goes well beyond Haskell, with existential variables, unification, expressions that yield multiple values, and much more besides. In this talk we'll give you a sense of what functional logic programming is about, what it looks like to program in Verse, and how we can give meaning to Verse programs using rewrite rules.

Пікірлер: 56
@florianschmidt6401
@florianschmidt6401 Жыл бұрын
"Types are Values"! I have always waited for this. Let's start writing poems!
@NostraDavid2
@NostraDavid2 Ай бұрын
In Python you can assign types to a variable, just to note that this specific feature has been implemented before.
@samwight
@samwight Жыл бұрын
Tim Sweeney: "Actually we can solve the halting problem" Simon: "NO no no no no we can't do that Tim that's impossible" (with a 'we talked about this' voice)
@aoeu256
@aoeu256 Жыл бұрын
You can solve the halting problem for programs less than a K factor in size. Our computers actually don't have infinite amount of processing speed and memory, and our programmers only have a finite amount of brain power.
@TAHeap
@TAHeap Жыл бұрын
Well, yes ... but actually, in practice big theoretical barriers may turn out to be somewhat negotiable. To take a classic example, the unification algorithm used for type inference and checking in Standard ML is exponential - NP-Hard or worse iirc: so compiling an ML codebase beyond a very restricted size should be impossible, shouldn't it? ...Or (demonstrably) not! As the authors of one notable early paper on the subject put it: "Our worst-case lower bounds stand in contrast to practical experience, which suggests that commonly used algorithms for type reconstruction do not slow compilation substantially." In practice, if your compiler's type inference algorithm (or, in this case, its partial program verifier) cannot process your code within a reasonable time (as determined primarily by your patience and expectations), then you just hit Ctrl-C and examine whether you can give it some extra hints (or perhaps restructure your code a little) to make its task easier. In the case of ML, this happens rather rarely (although it's quite easy to create pathological code if that is your deliberate aim). Will such a fortuitously benign state of affairs be achievable for Verse's functional + logic hybrid? That will depend partly on engineering, partly on some of the fundamental choices made in the design of the language (and perhaps a small dose of luck); it wouldn't be too surprising to find the fullest expression of MaxVerse containing features that can/will never be implemented but somehow anchor the cohesion of the implementable fragments of the language. SPJ seems to think that it could work, and his previous hunches about such things have certainly often been on the money ... 😇
@shayneoneill1506
@shayneoneill1506 Жыл бұрын
@@aoeu256 Solve the halting problem for the busy beaver algorithm for , say n=5. I'm sure we'll know when it'll halt after a few billion years.
@user-uf4rx5ih3v
@user-uf4rx5ih3v 7 ай бұрын
@@aoeu256 You can run a loop for every atom in the universe, technically.
@JohnLeidegren
@JohnLeidegren 4 ай бұрын
Tim obviously meant that with proper constraints you can solve it. You just can't in the general case.
@TankorSmash
@TankorSmash Жыл бұрын
The tuple example of existential types is interesting. Very curious to see what it'll feel like in a full program. Thanks for the talk!
@2Cerealbox
@2Cerealbox Жыл бұрын
I have high hopes for actually being able to use something like this in the real world. If it winds up shipping with Unreal, I'll definitely switch over from Unity to have an opportunity to use it.
@nekony3563
@nekony3563 Жыл бұрын
Millions of concurrent users, self-updatable, safe... I need to stop watching these Erlang videos.
@fennecbesixdouze1794
@fennecbesixdouze1794 10 ай бұрын
@42:30 Is the declaration: fst(p:tuple(int, int)):int := x:int; y:int; p = (x, y); x equivalent to: fst(p:tuple(int, int)):int := let x; let y; p = (x, y); x
@TheSunscratch
@TheSunscratch 10 ай бұрын
That’s a great talk, and it’s interesting to see which new concepts in PL design such research will open.
@danchatka8613
@danchatka8613 6 ай бұрын
Hoping for a single language that's acceptable (maybe even likeable) by the Java, Haskell, Lisp, Elixir, ML, Scala, & Prolog people. Could Verse be the Next Big Language (NBL) ?
@nunoalexandre6408
@nunoalexandre6408 Жыл бұрын
Love it!!!!!!!!!!!!!!!!!!
@sirinath
@sirinath Жыл бұрын
Is it open source yet? Is there a dummy repo to follow?
@sadunozer2241
@sadunozer2241 Жыл бұрын
Gnarly
@LinkFromCdi
@LinkFromCdi 5 ай бұрын
Somehow I actually kind of like it.
@NathanaCentauri
@NathanaCentauri Жыл бұрын
Absolutely love it!!!!! Sign me up, where do you need me at to help pitch in. This is the next best thing since HyperMac and ExperLisp. So im sql rpn strictly typed dynamicly functional and a totally artificially intelligent programmer!! :-)
@maxmustermann5590
@maxmustermann5590 3 ай бұрын
What I don't get, you get this living legend to give a talk, but this tiny timeslot. He clearly wants to tell way more, like what was so important that came after him?
@alurma
@alurma Жыл бұрын
Cool stuff
@seethruhead7119
@seethruhead7119 Жыл бұрын
different than any other platform you know, except for you know, the web
@samwight
@samwight Жыл бұрын
Tim Sweeney: "I want the language to be easy to learn so I can get tons of developers to make free content for my company and make it really easy for me to exploit them." Also Tim Sweeny: "This new language is Haskell but if it was Prolog and required a university-level maths education in formal logic to understand, and also I got one of the Haskell guys to help make it (Haskell being a language that's incredibly easy to pick up and used by absolutely everyone in the games industry), and also I'm making vague promises about distributed systems that absolutely anyone who has interacted with a database in the past few years knows are complete and utter bullshit." This is such a comical talk, I don't understand how people didn't burst out laughing during it.
@2Cerealbox
@2Cerealbox Жыл бұрын
I'm not finished with the video yet, but it doesn't look like it has any of the hard stuff from Haskell. Unless it goes off the rails, it does seem like a simple enough language to pick up.
@aoeu256
@aoeu256 Жыл бұрын
The core of haskell is easy to learn [for example there are high-school studies where they taught high school students to make games in haskell], but when you start going into the category theory terminology and making applications that run quickly and writing your program so that it can do what Lisp or Python does with their macros and monkey patching and global state and have it test for your errors at compile time and actually understand the error messages then yeah Haskell is hard.
@samwight
@samwight Жыл бұрын
@@2Cerealbox It literally has 'abilities' from Unison in it. They're like monads but only slightly easier to understand. In addition, it takes everything you know about pure functional programming and throws it out the window because now it uses _logical_ programming instead. Which ok cool, but there are lots of limitations to that and it's **definitely** not easiest for beginners to pick up.
@AnthonyBullard
@AnthonyBullard Жыл бұрын
@samwright Abilities are pretty easy to understand
@BlueCardinal33
@BlueCardinal33 Жыл бұрын
You nailed it. It's basically pure functional programming at the end of the day still, and this is a paradigm many find difficult.
@sergesolkatt
@sergesolkatt 9 ай бұрын
🔥
@blacky7801
@blacky7801 Жыл бұрын
logic programming for the masses, what a great language which I'll never use
@danchatka8613
@danchatka8613 6 ай бұрын
doh! you misheard or misunderstood. it's called _functional _*_logic_* programming: a superset of function programming & with aspects of logic programming.
@markbolusmjak3731
@markbolusmjak3731 3 ай бұрын
I don’t understand how this can be presented in this way by, and to, people that have had enough exposure to Prolog.
@TheWischmop
@TheWischmop Жыл бұрын
is that fucking comic sans?
@sumthinfresh
@sumthinfresh 11 ай бұрын
When you break 1 billion you choose the font you want
@peterkerj7357
@peterkerj7357 10 ай бұрын
SPJ always uses comic sans.
@scottramsay3671
@scottramsay3671 9 ай бұрын
In fairness Tim made him isolate it into a separate slide-pack that he had to alt-tab to.
@maninalift
@maninalift 5 ай бұрын
SPJ is an exulted being and can use whatever font he wishes.
@rumble1925
@rumble1925 11 ай бұрын
lmao metaverse
@CTimmerman
@CTimmerman Жыл бұрын
1:06:00 I'm not typing Cyrillic.
@piratepartyftw
@piratepartyftw 6 ай бұрын
its not cyrillic and thats not code. its math notation.
@samwight
@samwight Жыл бұрын
Also listening to Tim Sweeney try to mansplain logical programming to a group of mathematics and functional programming nerds who all took Prolog in university is so fucking funny lmaoooo
@DanBillings
@DanBillings Жыл бұрын
It's literally a lecture
@Mr_Squarepeg
@Mr_Squarepeg Жыл бұрын
Its a lecture dude.
@danchatka8613
@danchatka8613 6 ай бұрын
lmaoooo at your pointless life 🤣😆🤣😆🤣
@versacebroccoli7238
@versacebroccoli7238 10 ай бұрын
Kind of sounds like an uninspired Go.
@piratepartyftw
@piratepartyftw 6 ай бұрын
youve not understood what theyre doing, then. its nothing at all lie Go, and its far from uninspired.
@danchatka8613
@danchatka8613 6 ай бұрын
little minds are blind to paradigm shifts
@maxmustermann5590
@maxmustermann5590 3 ай бұрын
Lmaoo i mean there's plenty to critize, but definitly not, that they're afraid to go against the norm. Also have you ever written a single line of go? Lol
Simon Peyton-Jones: Escape from the ivory tower: the Haskell journey
1:04:16
Churchill College, University of Cambridge
Рет қаралды 160 М.
How I Did The SELF BENDING Spoon 😱🥄 #shorts
00:19
Wian
Рет қаралды 34 МЛН
Verse: A New Functional Logic Language • Lennart Augustsson • GOTO 2023
36:30
The Vlang Drama
43:35
ThePrimeTime
Рет қаралды 100 М.
Why Isn't Functional Programming the Norm? - Richard Feldman
46:09
The Verse Programming Language | GDC 2023
1:14:19
Unreal Engine
Рет қаралды 54 М.
Tim Sweeney's Metaverse Masterplan is Genius, here's why
19:51
The 2023 Wheeler Lecture - 'A Taste of Verse'
1:03:10
CambridgeComputerLab
Рет қаралды 606
Andrew Kelley   Practical Data Oriented Design (DoD)
46:40
ChimiChanga
Рет қаралды 74 М.
State of Julia | Valentin Churavy, Jameson Nash, Tim Holy | JuliaCon 2023
50:03
The Julia Programming Language
Рет қаралды 20 М.
Introduction to Roc Programming Language by Richard Feldman
1:04:12
Func Prog Sweden
Рет қаралды 32 М.