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

Поделиться
HTML-код
  • Опубликовано: 8 сен 2024
  • 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 Год назад +10

    "Types are Values"! I have always waited for this. Let's start writing poems!

    • @NostraDavid2
      @NostraDavid2 2 месяца назад

      In Python you can assign types to a variable, just to note that this specific feature has been implemented before.

  • @samwight
    @samwight Год назад +35

    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 Год назад +6

      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 Год назад +2

      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 Год назад +3

      @@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 8 месяцев назад +2

      @@aoeu256 You can run a loop for every atom in the universe, technically.

    • @JohnLeidegren
      @JohnLeidegren 5 месяцев назад +1

      Tim obviously meant that with proper constraints you can solve it. You just can't in the general case.

  • @2Cerealbox
    @2Cerealbox Год назад +18

    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.

  • @TankorSmash
    @TankorSmash Год назад +7

    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!

  • @nekony3563
    @nekony3563 Год назад +19

    Millions of concurrent users, self-updatable, safe... I need to stop watching these Erlang videos.

  • @TheSunscratch
    @TheSunscratch 11 месяцев назад

    That’s a great talk, and it’s interesting to see which new concepts in PL design such research will open.

  • @fennecbesixdouze1794
    @fennecbesixdouze1794 11 месяцев назад +1

    @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

  • @danchatka8613
    @danchatka8613 7 месяцев назад

    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) ?

  • @maxmustermann5590
    @maxmustermann5590 4 месяца назад +2

    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?

  • @nunoalexandre6408
    @nunoalexandre6408 Год назад +3

    Love it!!!!!!!!!!!!!!!!!!

  • @sirinath
    @sirinath Год назад +1

    Is it open source yet? Is there a dummy repo to follow?

  • @sadunozer2241
    @sadunozer2241 Год назад +3

    Gnarly

  • @NathanaCentauri
    @NathanaCentauri Год назад +2

    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!!
    :-)

  • @LinkFromCdi
    @LinkFromCdi 6 месяцев назад

    Somehow I actually kind of like it.

  • @samwight
    @samwight Год назад +27

    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 Год назад +9

      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 Год назад +2

      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 Год назад +2

      @@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.

  • @alurma
    @alurma Год назад +1

    Cool stuff

  • @blacky7801
    @blacky7801 Год назад +4

    logic programming for the masses, what a great language which I'll never use

    • @danchatka8613
      @danchatka8613 7 месяцев назад +1

      doh! you misheard or misunderstood.
      it's called _functional _*_logic_* programming:
      a superset of function programming & with aspects of logic programming.

  • @seethruhead7119
    @seethruhead7119 Год назад +1

    different than any other platform you know, except for you know, the web

  • @markbolusmjak3731
    @markbolusmjak3731 4 месяца назад

    I don’t understand how this can be presented in this way by, and to, people that have had enough exposure to Prolog.

  • @sergesolkatt
    @sergesolkatt 10 месяцев назад

    🔥

  • @TheWischmop
    @TheWischmop Год назад +3

    is that fucking comic sans?

    • @sumthinfresh
      @sumthinfresh Год назад +11

      When you break 1 billion you choose the font you want

    • @peterkerj7357
      @peterkerj7357 11 месяцев назад +4

      SPJ always uses comic sans.

    • @scottramsay3671
      @scottramsay3671 10 месяцев назад +2

      In fairness Tim made him isolate it into a separate slide-pack that he had to alt-tab to.

    • @maninalift
      @maninalift 6 месяцев назад +3

      SPJ is an exulted being and can use whatever font he wishes.

  • @CTimmerman
    @CTimmerman Год назад

    1:06:00 I'm not typing Cyrillic.

    • @piratepartyftw
      @piratepartyftw 7 месяцев назад +1

      its not cyrillic and thats not code. its math notation.

  • @rumble1925
    @rumble1925 Год назад

    lmao metaverse

  • @samwight
    @samwight Год назад +9

    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 Год назад +27

      It's literally a lecture

    • @Mr_Squarepeg
      @Mr_Squarepeg Год назад +9

      Its a lecture dude.

    • @danchatka8613
      @danchatka8613 7 месяцев назад +2

      lmaoooo at your pointless life 🤣😆🤣😆🤣

  • @versacebroccoli7238
    @versacebroccoli7238 11 месяцев назад

    Kind of sounds like an uninspired Go.

    • @piratepartyftw
      @piratepartyftw 7 месяцев назад +7

      youve not understood what theyre doing, then. its nothing at all lie Go, and its far from uninspired.

    • @danchatka8613
      @danchatka8613 7 месяцев назад +3

      little minds
      are blind to
      paradigm shifts

    • @maxmustermann5590
      @maxmustermann5590 4 месяца назад

      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