Simon Peyton-Jones: Escape from the ivory tower: the Haskell journey

Поділитися
Вставка
  • Опубліковано 1 лют 2025

КОМЕНТАРІ • 128

  • @DylanMcNamee
    @DylanMcNamee 7 років тому +251

    That small audience was given a real treat - I'm really glad this is online.

  • @jamiebertram9744
    @jamiebertram9744 5 років тому +326

    Ha, I just think it's hilarious that a talk with "escape from the ivory tower" in the title starts off with "welcome to the annual computer science distinguished lecture and dinner at Churchill College"

    • @Yetipfote
      @Yetipfote 4 роки тому +4

      😂

    • @aleksejhakimov1685
      @aleksejhakimov1685 4 роки тому +3

      Think I that's hilarious as well as being I the 69th like.

    • @suimong
      @suimong 4 роки тому +15

      It occurred to me that the title might be deliberately chosen...fits well as a British humor

    • @Georgefst
      @Georgefst 3 роки тому +15

      It gets worse! Before he even starts introducing Simon, there's a long segment about dinner arrangements, featuring all sorts of Oxbridge-isms. Great talk though.

    • @vozh-kc
      @vozh-kc 3 роки тому +8

      how else are you gonna escape the ivory tower if you didn't set it up first?

  • @brecoldyls
    @brecoldyls 4 роки тому +52

    This guy talks so fast and is one of the most enthusiastic people to give a talk on programming that I've ever seen

  • @diwr
    @diwr 7 років тому +116

    SPJ puts a smile on your face when he talks. You can feel his passion for programming theory. He's so energetic in his communication style.

  • @ighsight
    @ighsight 3 роки тому +10

    Watching this on a Friday night. My descent into the nerd realm is now complete.

    • @hu-ry
      @hu-ry 2 місяці тому

      Literally doing the same right now. Almost midnight and here I am.

  • @bocckoka
    @bocckoka 7 років тому +127

    Separation of Church & state is one of the best jokes of this millenium. We're not so far in but still.

  • @elcapitan6126
    @elcapitan6126 7 років тому +49

    I think we're very fortunate to have many simultaneously intelligent and charismatic people (like Simon Peyton-Jones!) in the Haskell and functional programming community. They help draw people in!

  • @JohnnySacc
    @JohnnySacc 7 місяців тому +2

    I have no use to get into FP but I will just because Simon's enthusiasm is infectious. Downloading ghc as I type.

  • @web3tel
    @web3tel 7 років тому +42

    Thanks a lot. It is amazing how monad and type classes which are now cornerstones of the Haskell were "invented" in the process and were not part of initial design

  • @Jonesybabie
    @Jonesybabie 3 роки тому +15

    Such an honor to be able to view a replay of this. I taught myself software engineering, so I feel like I get a piece of the great minds in tech (many still living). Major gratitude 🙏🏽💐🌹🌸🏵🌼💐

  • @asdfghyter
    @asdfghyter 6 років тому +17

    It is always a joy to watch SPJ talk! He is such a nice person and a gives such a great performance.

  • @Nikku08
    @Nikku08 7 років тому +28

    This gives me motivation and makes me happy. I need more of this.

  • @dumbnoobguy
    @dumbnoobguy 7 років тому +16

    Thanks for posting! I enjoyed the history of FP and Haskell with Simon's great talk. The more I watch Simon's talks, the more I come to like learning Haskell.

  • @pinch-of-salt
    @pinch-of-salt 2 роки тому +4

    I love Simon, he's funny and knows his stuff. I am not into academic/theoretical side of CS but his talks are proper balance of applied and theory.

  • @Brian-uq6jm
    @Brian-uq6jm 3 роки тому +4

    Absolutely amazing talk! Thanks so much for sharing!

  • @ValentinKostadinov
    @ValentinKostadinov 2 роки тому +2

    Thoroughly enjoyed. This is an epic talk, one for the annals of computer science. It's like watching a very interesting documentary on a favorite subject told by one of the main action heroes.

  • @ShihabShahriar555
    @ShihabShahriar555 7 років тому +81

    I can't write a "hello world" in haskell and yet I watched all of it. That guy can talk.

    • @apostleofazathoth7696
      @apostleofazathoth7696 7 років тому +8

      Try:
      hello = "Hello World"
      hello

    • @SebastianStevens
      @SebastianStevens 7 років тому +30

      That code won't do anything. You want something like
      main = putStrLn "Hello World!"

    • @delphie23
      @delphie23 7 років тому +23

      Don't forget the type signature:
      main :: IO ()
      main = putStrLn "Hello World!"
      (you may omit it if you want, but it is considered bad practice)

    • @masonlegere7774
      @masonlegere7774 6 років тому +12

      IO is learned a lot later in Haskell than other languages

    • @jonwise3419
      @jonwise3419 6 років тому +11

      It's one of the cleanest and easiest thing out of any languages. It's literary three words: print "hello world". So, if you're running it from shell, then and want to test it interactively, then:
      > ghci
      print "hello world"
      If you want to compile a file:
      # This writes 'main = print "hello world"' to a file.
      > echo 'main = print ""hello world" ' >> myFirstProgram.hs
      # This compiles the file
      > ghc myFirstProgram.hs
      # This runs the program
      > ./myFirstProgram
      hello world
      Writing IO in Haskell is very easy, way easier in fact than in most other languages if you don't bother understand abstractions about how it works (1). Easier because a) IO for concurrency and parallelism just works, while in other languages you'll quickly find yourself in trouble and having to transform most of your code b) there are abstractions that make it easier to reason about doing IO safely, like doing it in constant memory or making sure that all resources are released.
      (1):
      You don't, for example, go through Python internals to understand how it deals with the code you wrote. But in Haskell most things are actually implemented as abstractions and written in the language itself, rather than baked into some internals. You can actually not import `+` and `-` because even they are implemented in the language instead of being baked in.
      So you have that choice to go and read, and understand how anything is implemented, including how IO is done by checking the IO monad. Unlike looking at some compiler code where you would quickly be scared to do it, it will look not bulky or complex, but look elegant enough to be tempting to try and understand it. So people are tempted to learn everything and they get lost. It would be the same way if they were to try to understand how Python or C compiler works instead of just writing their apps using simple things they learned.
      Most languages don't give you the freedom to implement some abstraction that you want. You just write code using simple principles, and are fine for it sometimes getting a bit verbose. But in Haskell you have a choice to write very elegant code, so you can immediately get lost in abstractions and instead of writing useful code, get lost in trying to optimize everything and trying to implement a perfect abstraction for your code, whereas in other languages you would just bruteforce a verbose, potentially unsafe, solution, and go on living your life.
      This is the source for the myth that Haskell has a steep learning curve. It mostly (2) doesn't and it's pretty simple to write programs in it. But you can do the same thing in so many ways that if you want to learn how to do it in the best way, then you'll quickly find yourself learning infinitely many things, things that you would never learn because they are simply not possible in other languages. A simple list transformation can take you down a rabit hole if you want to "make it perfect" by putting length of the list as a type. But in other language you just wouldn't do it. You would just be fine with lists failing at runtime if somebody constructed a list with the wrong length.
      (2) One thing where it is indeed can be unavoidably difficult for beginners is if they come from objective or imperative programming and they got used to using mutation in their code by using `for` and `while` loops. It's still pretty easy to do the same thing in Haskell when using IO if you so desire, but it's rarely done in practice and thus you will not know how to do it in the beginning (and for right reasons) and you'll quickly have to adapt to use recursion. fold, and map, instead. This is one area where Haskell indeed forces you to learn how to do it its way from the very begging and you actually have to learn a couple of things before writing things you want. However, you have already written pure code before in the past in other languages, then it will look pretty familiar.

  • @zyxzevn
    @zyxzevn 7 місяців тому +1

    I saw similar experiments with Squeak and Pharo, which are smalltalk systems.
    Due to the usage of closures instead of "object patterns", the code is usually very compact.
    It is interesting how Smalltalk programmers are often against static typing.
    They demonstrate it by having stuff like a HTML and pdf browser built within.
    There is even an alternative (the Self language) that has no classes at all.
    Their idea is that types do not solve much. They are just a different abstraction.
    Haskell and Smalltalk do not conflict as much that people may think.
    It differs mainly in where you place your code and how you test/verify your code.

  • @JamesJones-zt2yx
    @JamesJones-zt2yx 5 років тому +22

    SPJ gives wonderful presentations. He's the only man so cool that he can use Comic Sans in slides.

  • @jiaanguo549
    @jiaanguo549 7 років тому +14

    It is a shame that so few people attend the talk. Haskell and the talk is amazing by all means.
    I just finished my first Haskell program. It is kind of silly, but I enjoy it.
    By the first time, I try to recurve my main function. :)
    import System.IO
    import Data.List.Split
    main :: IO ()
    main = do
    end

    • @bungieanimator
      @bungieanimator 5 років тому

      What do you mean? Forty six thousand people stopped in to listen to this talk.

  • @dansierrasam79
    @dansierrasam79 3 роки тому +1

    Wonderful presentation. Was so enjoyable to learn about Haskell.

  • @vetiarvind
    @vetiarvind 3 роки тому

    Honestly i thought this was going to be a talk that i'd skip in 5 minutes but I fell into the rabbit hole. It's quite entertaining.

  • @morthim
    @morthim 4 роки тому

    best haskell talk i've seen. 100x better than anything else.

  • @bartsekura
    @bartsekura 5 років тому +2

    SJP is the best thing that happened to computer science. Absolute joy to see him speak.

  • @kp2164
    @kp2164 5 років тому

    I remember him on a Haskell conference, ZuriHac 2019. I was really impressed for his energy when he gave presentation about type inference on Haskell. It is so nice to see him in this video. :)

  • @farhanislam8463
    @farhanislam8463 3 роки тому

    This was great to watch. Really enjoyed it.

  • @Yetipfote
    @Yetipfote 4 роки тому +5

    I'm a Haskell beginner and the thing which bothers me the most is that there are two package managers and I haven't understood yet what the subtle differences are. Haskell should adopt one and drop the other. I hope the community merges and works together towards this.

  • @0n1xusx75
    @0n1xusx75 4 роки тому +1

    SPJ's talks are really really great!!

  • @dushkin_will_explain
    @dushkin_will_explain 2 роки тому +1

    Of course this is master's brilliant performance! Applause!!!

  • @anthonytonev1357
    @anthonytonev1357 5 років тому +48

    "ActionScript what ever that is"

  • @PIX_BMS
    @PIX_BMS 2 роки тому

    Fascinating talk. Haskell is really interesting. Next time I have a usecase, I would like to give Haskell a go.

  • @gvolpe87
    @gvolpe87 5 років тому +4

    He always delivers, what a great talk! Does anyone have a link to the slides?

  • @mattmosior7957
    @mattmosior7957 7 років тому +1

    So cool that this was uploaded

  • @paulwary
    @paulwary 3 роки тому +3

    Not knowing Haskell, I had got the impression that Monads were just the exposed tip of an iceberg of abstraction (ala Category Theory) implemented in the Haskell type system. Here, is comes across as 'just one simple trick" welded on to a pure but pragmatically developed core.

  • @davip116
    @davip116 3 роки тому +1

    Any suggestion where to start a postdoc position researching Haskell extensions?

  • @Coder-zx4nb
    @Coder-zx4nb 5 років тому +27

    I'm really torn on functional programming.
    On one hand, it just makes sense to use and forces you to make principally designed software which leads to far less bugs, clearer software arch and thus faster software dev in general.
    On the other hand it's difficult for the day to day dev to pick this up and doesn't have as much support as say C# or java. This makes adoption for it difficult in a corporate env.
    What I think might help is trying to get functional languages more integrated into schooling. Introduce functional languages as the very first language to get their mind set into functional programming right away. Thus reducing the need to re-wire brains later on.

    • @zTJq40sl
      @zTJq40sl 4 роки тому +1

      The teaching approaches presented at media.ccc.de/v/35c3-9800-how_to_teach_programming_to_your_loved_ones do introduce a functional language as the first one and seem quite promising.

    • @squirrelpatrick3670
      @squirrelpatrick3670 3 роки тому +1

      I've just started checking out FP and I was really thinking, I would have got this really easily when I was a teenager and now I am like wtf

    • @christophernuzzi2780
      @christophernuzzi2780 2 роки тому +2

      If i were a freshman in CS and theyh tried to foist a functional langusge on me, I would refuse to learn it and hand in all my assignments in Python or Go or C or Pascal, even - anything but a functional language.

  • @cesarabosetti8592
    @cesarabosetti8592 Рік тому

    Good! Simon is a very nice person.
    You could leave the automatic subtitle translation enabled. This dissertation is from 2013? , please if you can add it in the information of the video.
    Regards!

  • @naveennaidu9768
    @naveennaidu9768 4 роки тому +1

    Loved this talk❤️! Thank you Simon ❤️❤️

  • @sanchayanmaity5380
    @sanchayanmaity5380 7 років тому

    Loved this talk.

  • @0n1xusx75
    @0n1xusx75 4 роки тому +3

    Hey! Would you mind if I add chinese caption to this video and repost it on a video website in China?

  • @jonathanmoore5619
    @jonathanmoore5619 2 роки тому

    This guy is a proper legend.

  • @a.s.4309
    @a.s.4309 6 років тому +5

    This got me flirtin' with Haskell, Scheme, Lisp, and functional programming all over again.
    Got my GHC compiler brew-installed: 1.2 GB, phew!

  • @austinbenesh1193
    @austinbenesh1193 5 років тому +3

    Haskell is the ultimate language, in my opinion.

  • @CarlosSpicyWiener111
    @CarlosSpicyWiener111 4 роки тому +1

    Weird question, but does anyone know what shoes he's wearing?

  • @Fanaro
    @Fanaro 4 роки тому +3

    He didn't answer why creating machines specifically for Functional Programming was a bad idea, which is something he said he would touch upon at some point. Anyone?

    • @lepidoptera9337
      @lepidoptera9337 3 роки тому +3

      Because in a functional machine every variable has to be constantly passed over the stack. If you make a change to a variable, then there are two copies on the stack, the old value and the new value until the calling function overwrites the old value that's buried deeper on the stack and so on, until you are down on the lowest level. Now, if your called function throws an exception, then your stack is shot and you don't know which of the values on the stack (which you can't even retrieve easily because you don't know where they are) is valid. In other words, your global state is unrecoverable after every exception. This is not the case in machines that keep the state on the heap.

    • @DF-ss5ep
      @DF-ss5ep Рік тому

      He said "Intel won". I assume a special FP microprocessor would have the need for its own instruction set and programming model. The cost per item of things like microprocessors goes down by a lot with the amount of items that are produced. So if there are only a few FP system users, the cost per machine becomes too high and it makes more sense to adapt to the mainstream architecture.

  • @florianwicher
    @florianwicher 6 років тому +17

    Man, if that talk doesn't make you want to study theoretical computer science... :D

  • @jollyjack5856
    @jollyjack5856 7 років тому +10

    35:17 the choice of the word "action" re: monads is *_very_* unfortunate, very confusing: action is something that *is* being performed. if it's not _yet_ performed, it's an action *_description_* / definition / _"script"_ which only becomes an action *_when_* it is "run". that it is *not* yet performed, and *will* be, is the whole point to the monads; and the use of the word "action" prevents this understanding from occurring naturally to a yet uniformed listener.

  • @VenturiLife
    @VenturiLife 4 роки тому

    14:37 Java was released in 1995 and developed in 1991, so I'd say most of the audience were in fact born by then...

  • @kevalan1042
    @kevalan1042 7 років тому

    Great talk! I've seen it several times over the years. Hopefully he will add something new next time :)

    • @epo78
      @epo78 5 років тому +1

      Not on this UA-cam record though. )

  • @JanilGarciaJr
    @JanilGarciaJr 3 роки тому

    What a great fucking talk my Friends. Simon Peyton-Jones is incredible.

  • @dudeskiquita
    @dudeskiquita 7 років тому +2

    got lost at "system f".. but really a nice talk to watch!

  • @woosix7735
    @woosix7735 9 місяців тому

    “Action script, whatever that is.” That hurts. (For those who don’t know, Action Script is kinda like Java scripts long list staticly typed cousin, and was used in Adobe Flash.)

  • @PatrickHutton
    @PatrickHutton 3 роки тому +7

    19 Imperative Programmers disliked this video. A curse on their mutable ways, may a thousand side effects assail them.

    • @lepidoptera9337
      @lepidoptera9337 3 роки тому +3

      I just demonstrated what a side effect is by clicking on the dislike button. :-)

  • @florianwicher
    @florianwicher 4 роки тому +11

    I love how underdressed he is in combination with the intentionally crappy powerpoint. What a troll :D

  • @archdria
    @archdria 7 років тому +6

    Nice, I was hoping somebody asked him about Rust

    • @SimonClarkstone
      @SimonClarkstone 4 роки тому

      His remark about linear types at about 1:02:50 is relevant to that.

  • @NotYourArmy666
    @NotYourArmy666 Рік тому

    Could you please add automatic subtitles?

  • @eliseulucenabarros3920
    @eliseulucenabarros3920 4 роки тому

    begin in 2:43

  • @auntiecarol
    @auntiecarol 5 років тому +1

    Ca. 24:00 ... a compiler bug that deletes the source code (only on Windows) == hilarious!

  • @Mjolkmaestro
    @Mjolkmaestro 4 роки тому +1

    My sib just said "distinguished" five times with the word "watt" written in Comic Sans on a projector behind them ✨ Now that's well distinguished behaviour right there 😎

  • @malusmundus-9605
    @malusmundus-9605 4 роки тому

    Love this guy

  • @mikerope5785
    @mikerope5785 4 місяці тому

    Respect for using Comic Sans ❤❤

  • @daweiliu6452
    @daweiliu6452 7 років тому +2

    The same slide has been used many times...

  • @mattlim3744
    @mattlim3744 7 років тому +5

    this guy is a master of both haskell and talking really fast

  • @jms019
    @jms019 7 років тому +1

    Fixing a Symbolics machine is on my TODO

  • @worldboy9684
    @worldboy9684 7 років тому +1

    Great, just great

  • @Springworks-li4ck
    @Springworks-li4ck 4 роки тому +6

    "I don't like programming languages, I just like Coq"

  • @georgen9755
    @georgen9755 2 роки тому

    it is never spj ???

  • @jasenq6986
    @jasenq6986 Рік тому

    threshold of immortality... very true lol

  • @daweiliu6452
    @daweiliu6452 7 років тому

    fix error in ghci doesn't work

    • @benkorb6359
      @benkorb6359 7 років тому +1

      dawei liu import Data.Function first

  • @johnwarren6966
    @johnwarren6966 6 років тому +1

    import Control.Monad.Fix
    fix error
    (observe fireworks!)

  • @haesklar3635
    @haesklar3635 4 роки тому +1

    13:13 is so funny lmao

  • @ziconghuang7139
    @ziconghuang7139 4 роки тому +4

    I hope Haskell the cat is still alive and well...

  • @NurfHerderEclipse
    @NurfHerderEclipse 4 роки тому +1

    "...just ahead of ActionScript. Whatever that is?" Ha ha..

  • @benterrell9139
    @benterrell9139 6 років тому +1

    His mode of speech is a little like Michael Palin, I find it absolutely delightful.

  • @clamato422
    @clamato422 3 роки тому +2

    watching at 0.75 speed :)

    • @albertocardonalopez4831
      @albertocardonalopez4831 3 роки тому +2

      hahahaha I actually had to check wether I had inherited the x1.5 speed from some previous video, and actually changed it to x0.75 and then x1 just to be sure :P

  • @donotaskmemyname3902
    @donotaskmemyname3902 4 роки тому

    Someone need to add English subtitles to this lecture. It seems to me the lecturer is eating half of the words, which is also called "talking very fast with a strong accent of some part of the world". We definitely need a monad here to let more audience benefit from it without much main

    • @user-tk2jy8xr8b
      @user-tk2jy8xr8b 3 роки тому +2

      Watched this at 1.25x being a non-native, on the contrary - he has a pretty clean pronunciation

    • @donotaskmemyname3902
      @donotaskmemyname3902 3 роки тому

      @@user-tk2jy8xr8b hahaha. Good for you if you can follow at x1.25. Me, I will even miss his gestures at that rate 😁.

  • @thomashanson3476
    @thomashanson3476 3 роки тому +1

    Came in as common rabble, left feeling distinguished

  • @williamrusnack6829
    @williamrusnack6829 7 років тому

    What does he mean by F lambda at 42m ua-cam.com/video/re96UgMk6GQ/v-deo.htmlm

    • @DenisG631
      @DenisG631 4 роки тому

      I guess I am a bit too late, but he later mentions it, as System F, which is polymorphic lambda calculus. According to my understanding this is exactly what flambda is.

  • @broyojo
    @broyojo 4 роки тому +2

    oh god comic sans

  • @lt4376
    @lt4376 3 роки тому

    9:08 says it all

  • @haskellfilmz
    @haskellfilmz 6 років тому

    Cool! The Haskell Journey! I'm on a bit different "Haskell Journey" it's called the #WeAreAllChrisHaskell Journey! Included in this Journey is the Chris Haskell Disease that seems to effect all of your electronics except only when your attempting to film Chris Haskell! (This disease has an FBI origin and seems to be Very Contagious!)

  • @juliocardenas4485
    @juliocardenas4485 3 роки тому +1

    “Alumni will exercise they right to dine the hall” 🙄

  • @MrAbrazildo
    @MrAbrazildo Рік тому

    31:32, *WI(T)H.

  • @FreeScience
    @FreeScience 7 років тому +6

    I kind of wish programmers still looked like "working group 2.8"

    • @ivanvano13
      @ivanvano13 6 років тому +5

      White and mostly male? Majority still look like that.

  • @Yetipfote
    @Yetipfote 4 роки тому +1

    No wonder the audience sits in the back lazily :)

  • @dmytroskryzhevskyi3032
    @dmytroskryzhevskyi3032 4 роки тому

    Sponsored by Microsoft

  • @dgbsbalv
    @dgbsbalv 4 роки тому

    STOP HOOGLE plaese

    • @redpepper74
      @redpepper74 2 роки тому

      What’s wrong with Hoogle?

  • @gavinschuette9826
    @gavinschuette9826 5 років тому

    devops oracle micrsoft are scams as are cisco routers and software defined networkring fukery to destroy competition and overcmplicate so wall st bansters can push uter shit on everyone

  • @kahnfatman
    @kahnfatman 3 роки тому

    ELM-lang puts Haskell to shame.

  • @christophernuzzi2780
    @christophernuzzi2780 2 роки тому

    I don't care about fewer bugs, etc. There is no way in hell I am ever going to code in a functional language.

  • @Alkis05
    @Alkis05 4 роки тому

    Instead of acomodating the few dozen people "in the back", next time he should realize that there are 85k people watching online. Maybe accomodate for that.

  • @abebuckingham8198
    @abebuckingham8198 3 роки тому

    Between the comic cans, the stammering tangents and random slideshow of his family I can safely say this is among the worst lectures I have ever labored though.