From Rails to Elm and Haskell - Richard Feldman

Поделиться
HTML-код
  • Опубликовано: 28 ноя 2024

Комментарии • 73

  • @bernardlowe5433
    @bernardlowe5433 5 лет назад +125

    I saw the title and was like, "Wow, Richard Feynman was into functional programming?". But then I read it again.

    • @Jake_2903
      @Jake_2903 5 лет назад +5

      Lol same here....

    • @bob1shh
      @bob1shh 5 лет назад +5

      Wow, jackie chan is into functional programming? ;-)

    • @bernardlowe5433
      @bernardlowe5433 5 лет назад +24

      @@bob1shh Well, if you examine ancient Chinese texts, Kung Fu stands for "功夫". Kung means pure and Fu stands reaction or function. In other words, your movement is just a pure reaction to what your opponent is doing. So, one could say that martial artists like Jackie Chan and Bruce Lee were recognizing the value of purity and functional thinking way before it even reached the mainstream consciousness in computer science. Ancient Chinese texts say that the highest mastery in Kung Fu can only be achieved after you spent many years meditating on the thought of being a pure function. And if this sounds like bullshit it's because it is. I just made this all up.

    • @bob1shh
      @bob1shh 5 лет назад +9

      ​@@bernardlowe5433 but it's fantastically good bullshit, though! Thanks for writing all this up) I'm glad you're not offended since I felt a bit weird about writing that comment. You're cool! ahah

    • @Evan490BC
      @Evan490BC 3 года назад

      Feldman, Shmeldman!

  • @11am
    @11am 5 лет назад +12

    I enjoy a Richard Feldman talk 😌

  • @ProCoder2007
    @ProCoder2007 5 лет назад +21

    Awesome and honest talk. Made me again excited to have a look on elm.
    Haskell is still on my list - even when it is just for personal study.
    Thanks!

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

    The Louis CK of programming. His tone and inflection is spot on.

  • @striker865
    @striker865 5 лет назад +94

    I'd like to work with Haskell and Elm

    • @wliaputs
      @wliaputs 4 года назад +1

      @BringerOfTheTruth what company?

    • @kahnfatman
      @kahnfatman 3 года назад +2

      How's it going?

  • @vertie2090
    @vertie2090 5 лет назад +25

    He's a good public speaker

  • @HyrumCooper
    @HyrumCooper 3 года назад +2

    I will watch any presentation by Richard Feldman lol. What a fantastic speaker!

  • @paroxyzm21
    @paroxyzm21 5 лет назад +47

    One of the very few talks where you dont have to speed up the tempo

    • @kevinl.9657
      @kevinl.9657 3 года назад +4

      Very true! I found this comment and I was like, wtf, I managed to finish this without speeding up the video?

  • @metinemiroglu1936
    @metinemiroglu1936 5 лет назад +4

    Awesome talk! I feel one step closer to Elm and Haskell!

  • @v__802
    @v__802 5 лет назад +9

    "Get programming with Haskell" by Will Kurt great book for beginners.

    • @joshuarowe8410
      @joshuarowe8410 5 лет назад +3

      Amen. 'Haskell Programming from First Principles' is the complete opposite and really slow and dry. Doesn't really teach you how to make anything it just gives you heaps of theory-based esoteric exercises, loved Get Programming with Haskell

    • @laughingvampire7555
      @laughingvampire7555 2 года назад

      @@joshuarowe8410 that is funny, when I was in college I went ahead my class mates and learned C (plain C, not C++) by implementing esoteric number theory algorithms.

  • @uv6483
    @uv6483 4 года назад +5

    React is like that giant contraption made of 1000 tubes on breaking bad that shat out one cup of coffee.

  • @polyrtm5545
    @polyrtm5545 5 лет назад +13

    needs more cat pics

  • @kriswright5112
    @kriswright5112 4 года назад +7

    if it walks like haskell, and it talks like haskell, and it's in production, it's elm

  • @TheAidsaids
    @TheAidsaids 5 лет назад +9

    good talk, i learned alot and i am glad that there is lots of use of pure functional in business logic and modern apps :)

  • @willful759
    @willful759 5 лет назад +1

    "you may not recognize all these logos"
    shit, I do

  • @CaptainWumbo
    @CaptainWumbo 3 года назад +3

    I relate a lot to the points about small experiments with interesting technologies in production. That's one of the best things about working at a small company. Corporate programming is strict... strictly awful :) Would love to have found your company 5 years ago when I was getting interested in FP, totally relate to writing FP coffeescript lol, although not with coffeescript just with JS.

  • @declup
    @declup 4 года назад +2

    Around 28:00, the presenter briefly mentions other technologies his company experimented with: Terraform, GraphQL, and Elixir.
    Around 43:19, he mentions other technologies: nix, kubernetes, and PostGraphile.

  • @PaulSebastianM
    @PaulSebastianM 4 года назад +2

    42:29 I yelled HOBBIT! XD

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

    Thanks!

  • @joshuacochran727
    @joshuacochran727 5 лет назад

    Fantastic talk.

  • @odigity
    @odigity 3 года назад

    I'm curious why you changed your mind about Terraform.

  • @SwarangaSarma
    @SwarangaSarma 3 года назад +1

    Really nice talk. I have a question on his comments about other programming languages resulting in random "crashes" - like what are these crashes really? Are these full application crashes? Or are these exceptions that get raised when an operation encounters an error (like talking to a database) and these result in crashing the whole application. How can someone get to a state where you get an NPE in production and you have no idea where it came from?
    I am most likely misunderstanding the problem but isn't defensive programming a thing? Like I would heavily sanitize my input at the boundaries of my service and check for nulls/invalid requests and process the request only when it is valid. Else it is a 400 to the client.
    Similarly if I am talking to a database, I will have lots of error handling; for instance if an insert operation fails may be the RDS instance I was talking to has now failed over to a new instance such that the old one is now a reader and we have a new writer. In such cases I will absolutely handle that exception and recycle my connection to connect to the new writer and try to give a successful response to the caller. May be that request will take a little longer but it is better than returning an internal failure. As much as possible, we do not bubble up internal errors to customers/callers and try to maintain high availability. All of these means expecting the worst and writing code to handle those gracefully. Of course not all such cases can be handled. But none of this is limited by the choice of programming language but by the coding principles or lack of it. Also tests, both unit tests and integrations tests should try to test not just happy cases but exceptional ones. May be Elm/Haskell just allows writing those error handling code easier? Is that built into the PostgreSQL library that he showed for instance? Would be nice to see an actual example of what kind of NPEs just went away after moving to Elm. Not sarcastic, genuinely want to know so I can also adopt some modern skills.
    Otherwise interesting talk and glad to see hiring has not been a challenge.

    • @nickr753
      @nickr753 3 года назад +3

      The best kind of defensive programming is that where your safety guarantees are enforced by the compiler. This is a similar philosophy to Rust’s approach to memory management by using the borrow checker. On the contrary, most of the defensive programming tactics that you mention are things that you can leave out and your program will still compile.

    • @SwarangaSarma
      @SwarangaSarma 3 года назад

      @@nickr753 Interesting. I am mostly familiar with Java, so the things that I can think of that a compiler would enforce are Checked exceptions. For instance, if I am writing a Database driver, and if I want to enforce clients deal with the known failure modes, most likely I would use checked exceptions. Of course, this does not prevent the user from handling it via a try-and-wrap-with-a-runtime-exception to prevent the checked exception from bubbling up but your point about "most of the defensive programming tactics that you mention are things that you can leave out and your program will still compile" is not universally true.
      How does a safer language like Elm/Haskell/Rust(?) enable this in say, the database example? Some practical examples would be real nice as I am trying to broaden my understanding.

  • @bestintentions6089
    @bestintentions6089 5 лет назад +3

    so what standard library replacement is good for starting to use haskell for webdev ?
    ...

  • @Said75010
    @Said75010 5 лет назад +3

    I would love to work with a company that has the same philosophy!

  • @PaulSebastianM
    @PaulSebastianM 5 лет назад +5

    Pretty lucky company.

  • @lukashofmaier4642
    @lukashofmaier4642 5 лет назад +7

    Does anybody know which Haskell framework they use at NoRedInk?

    • @v__802
      @v__802 5 лет назад +2

      I don't know but the servant is very popular and powerful.

    • @ZnMgkbvprb
      @ZnMgkbvprb 4 года назад

      At this time, you might also want to check IHP github.com/digitallyinduced/ihp

    • @digitalspecter
      @digitalspecter 3 года назад +1

      @@ZnMgkbvprb delving into IHP was actually a jaw-dropping experience for me.. I highly recommend it!

  • @laughingvampire7555
    @laughingvampire7555 2 года назад +1

    I don't agree with the term "pure functional language" I think it conveys the wrong idea, because it isn't really "pure", pure would mean there are no side effects and there is only functions returning values, however there are side effects, they are just organized and defined with clear referential transparent & composable semantics and code is typed so you identify what code is participating of a some side effect sequence, side effects are contained. All of this with the aim to help us reason about our code with just reading it.
    From Conal Elliot talks I think of it as decoupling platform implementation logic and details from business core logic, so we can express our business logic just in terms of data dependency and not database, web, disk, network dependencies, all of this mechanisms are composed through typed algorithms which is what I call monadic code that is used to contain side effects.
    So what name would be better? I don't know, maybe we need an acronym like SOLID to describe this type of composable, denotative, side effect isolating, value semantics, applicative programming.

  • @aibh7903
    @aibh7903 5 лет назад +1

    Haskell was the first language I ever learned and I prefer writing in it more than I do any other language.

    • @thomaskember4628
      @thomaskember4628 4 года назад

      Can you explain what a monad is? This question is to me the problem with Haskell.

    • @officebatman9411
      @officebatman9411 2 года назад

      ​@@thomaskember4628 I'm a little late, but for me a monad is like an interface for computations, or anything that can contain a value. You can put a value in a monad with the unit function and you can "and then" the computation with bind.
      A great example for me is the Async type in FSharp - it represents an asyncriounos computation.
      You have a function from Async to T like unit and you have a way to run one after the other like with bind

  • @PaulSebastianM
    @PaulSebastianM 4 года назад

    45:30 The question we're all thinking of today. Spoiler alert: the answer is not clear.

  • @travel6212
    @travel6212 4 года назад

    What is the language of the logo in red on the right to ocaml?

  • @marlls1989
    @marlls1989 3 года назад +1

    As a computer science PhD student I found Haskell very easy to learn

  • @Baekstrom
    @Baekstrom 5 лет назад +2

    Is it a job requirement to be a ginger to be hired in No Red Ink?

  • @theg-room3256
    @theg-room3256 3 года назад +3

    Great talk. One part kind of set me back. Hiring the creator of Elm to work for you isn't a strong indicator that Elm is a good solution over what you were using. Maybe you would have been just as happy if you could have snagged the creator of Rails or React to work for you. When i got to that part of the video i was like "if Elms so great and so easy to learn, why not just sponsor the creator instead of having him work for you? Is the direction of Elm primarily driven by your company? What happens to Elm if your interest change? Do i need to try and steal the guy who created Elm from you so my company can have a good experience with Elm?"

    • @gabriela.ts_
      @gabriela.ts_ 3 года назад +2

      Evan didn't work for Prezi neither NoRedInk products, both companies hired them to work on Elm exclusively, supporting open source. Now he uses Elm Foundation funds and still works fulltime on Elm.

  • @arubaga
    @arubaga 3 года назад

    Can ELM retarget to LLVM?

    • @officebatman9411
      @officebatman9411 2 года назад

      Only if javascript can...
      Elm is made strictly to run on web browsers. It does not even have a way to printf or get user input from a console

  • @diegodorado
    @diegodorado 5 лет назад

    I would call that a very enthusiastic functional programming presentation!
    Made me want to work at noredink! I am based in Argentina.
    Here's my linkedin : www.linkedin.com/in/doradodiego/
    And here's my web: diegodorado.com/en/work
    Hope you see this!

  • @kahnfatman
    @kahnfatman 3 года назад

    When the crowd heard "Pure functional" + React, they LAUGHED SO HARD... Har Har Har.

  • @АнатолийПетрович-в8и

    If you search really good, practice first course for haskell, its may halp you: ruclips.net/p/PLgkiApDiZ0KHacTxxunGYTLC_qG2fR-4S . But its on russian, but subtitles may help you.

  • @HenkPoley
    @HenkPoley 4 года назад +2

    I like the healthy NoRendInk developer team gender split in the picture at 3:34. Other companies just ignore about half of their potential team members.

    • @Sun0fABeach
      @Sun0fABeach 4 года назад +3

      Yeah, companies just don't want to hire women, no matter what value they would bring to the business. In intersectional conspiracy land, that is.

    • @wlcrutch
      @wlcrutch 2 года назад +1

      Or they just hire the best match?

  • @wlcrutch
    @wlcrutch 2 года назад +1

    If Louis CK were a programmer, he’d be this guy…

  • @Jake_2903
    @Jake_2903 5 лет назад +3

    haskell is hell

    • @vertie2090
      @vertie2090 5 лет назад

      why?

    • @Jake_2903
      @Jake_2903 5 лет назад +4

      @@vertie2090 it isn't reallly, I'm just bitching because they added it to my university course as a mandatory subject and I am having a hard time getting used to working with it.

    • @amigalemming
      @amigalemming 5 лет назад +16

      @@vertie2090 I guess he meant, it's "hell" when you remove the "ask" from its name.

    • @vertie2090
      @vertie2090 5 лет назад +6

      @@Jake_2903 yeah it was mandatory in mine too, that's where I picked it up. Now I'm building web services with it.

  • @metinemiroglu1936
    @metinemiroglu1936 5 лет назад +5

    Awesome talk! I feel one step closer to Elm and Haskell!