Erik Meijer: Functional Programming

แชร์
ฝัง
  • เผยแพร่เมื่อ 30 พ.ย. 2024

ความคิดเห็น • 84

  • @utubekade
    @utubekade 5 ปีที่แล้ว +14

    this guy really knows how to explain a concept

  • @Веник-ы1ь
    @Веник-ы1ь 9 ปีที่แล้ว +6

    A very good introduction on what functional programming is!

  • @MariuszZaleski13
    @MariuszZaleski13 8 ปีที่แล้ว +3

    So, honesty in programming leads to great opportunities and possibility to progress and evolve. It does exactly this same when honesty is applied in life. What a show and what a Life. I love it :-)

  • @pewpewpew8613
    @pewpewpew8613 4 ปีที่แล้ว +3

    how honest is the head function in the haskell? it has a type head :: [a] -> a but it will throw an exception if you pass empty list.

  • @aoeu256
    @aoeu256 3 ปีที่แล้ว +2

    I know this is old, but Koka language made it easier to bridge the gap between imperative and purely functional languages without using Monads that are hard to combine together (it had native support for fused effects).

  • @JavnaGolina
    @JavnaGolina 12 ปีที่แล้ว +3

    I don't like using brain power, but I still program quite a bit more functionally than your average programmer because I find it much easier. a map is much easier than a for loop. a recursive function is much easier than a while loop. It's just more declarative - often mutating variables has nothing to do with the problem I am solving.
    Also part of the issue is if you're looking for an algorithm you're almost always going to find it in an imperative form.

  • @Canonall
    @Canonall 4 ปีที่แล้ว

    I feel you can really see how his perspective on programming in general and specifically functional programming, but lead him to develop reactive extensions. Very enjoyable talk!

  • @kelleydv
    @kelleydv 11 ปีที่แล้ว +4

    15:50 for functional programming

  • @FlashManinSpace
    @FlashManinSpace 9 ปีที่แล้ว +26

    Mathematics was never meant to modify the real world at run time!

    • @mateja176
      @mateja176 6 ปีที่แล้ว +1

      mathematics is the foundation for the real world

    • @Mephistel
      @Mephistel 5 ปีที่แล้ว +4

      @@mateja176 The real world is the foundation for mathematics

    • @smwnl9072
      @smwnl9072 2 ปีที่แล้ว

      Mathematics is a derivative of the real world.

  • @jasonofthel33t
    @jasonofthel33t  11 ปีที่แล้ว +6

    24:25 for monads

  • @epiphoney
    @epiphoney 4 ปีที่แล้ว

    Powershell uses lambdas or anonymous functions all the time, but they're called "script blocks". They can be passed around like functions in Haskell.

  • @jpphoton
    @jpphoton 8 ปีที่แล้ว

    Lay it down boys! Really excellent insight into FP. Thanks indeed.

  • @lucasa8710
    @lucasa8710 2 ปีที่แล้ว

    you can encapsulate your business rules in a pure world and then implement it (UI, DB, Log, Exceptions, etc.) in a unpure side-effectfull world

  • @JeffSmith03
    @JeffSmith03 10 ปีที่แล้ว

    So many times I wanted to see what he just circled or added to answer a question, but the camera was left only on him and eventually he erased it without ever showing us.
    Other than that, I think this was quite helpful to get a better idea what functional is about.

  • @lichen420
    @lichen420 5 ปีที่แล้ว

    That tye-dye is off the hiznook. Very well done.

  • @signify218
    @signify218 9 ปีที่แล้ว +1

    Excellent video. Thank you so much for uploading.

  • @charvakpatel962
    @charvakpatel962 8 ปีที่แล้ว

    You should have explained this in your C9 lectures.

  • @MasthaX
    @MasthaX 4 ปีที่แล้ว +1

    First time I see monads actually explained practically without too much mathy fuzz.

  • @WateryIce54321
    @WateryIce54321 8 ปีที่แล้ว +1

    After watching a few of these videos it is really confusing to just hear an unplanned, abstract "discussion". I would love to hear a presentation where Mr Meijer actually plans everything out in advance.

  • @eloycaballo
    @eloycaballo 8 ปีที่แล้ว

    This guy knows what functional programming is and how to take advantage of its concepts to apply them to imperative PL, and why impurity is in fact practical. He propouses and inversion of concepts in new PL, instead of difining purity by default which is seldom used in practical programming should be define the inpurity by default and purity explicitly. This guy has all clear!!!

  • @1videoshow
    @1videoshow 9 ปีที่แล้ว +1

    Why pure? It must work. And you must be able to rely on it. Ada is an example of a secure programming language used in critical environments where side-effects can cause the loss of life, if it happens. (It can happened also in Ada.) BUT, it is more un-likely, this begins with the syntax and layout of the program, then with the compiler, then with the runtime, etc.

  • @mateja176
    @mateja176 6 ปีที่แล้ว +2

    Let's say we have a program composed out of a 100 functions. 99 of those functions are pure whereas only 1 is impure. The whole program now becomes impure. However that 1 impure function doesn't undermine the value of the 99 pure functions. 99 parts of a 100 part puzzle, put together, still mean something.

  • @TerellB93
    @TerellB93 9 ปีที่แล้ว +1

    Can anyone tell me what is meant by the following notation? (x,x)

    • @paligamy93
      @paligamy93 9 ปีที่แล้ว

      Terell Brown Let's say f(3) returns true. If it's a pure function, it will always return true no matter what if you use the argument 3. So you can now assign it to a constant (he uses x) so if you're trying to find a point in a graph and the x is at f(3) and y is at f(3) (f(3), f(3)) then you can logically replace the f(3) with the constant (x, x)
      hope that makes things clearer

    • @FlashManinSpace
      @FlashManinSpace 9 ปีที่แล้ว

      Terell Brown if x,x are of the same value it is pure. Else it is a impure. With side effects states can never be pure.

  • @kevingrieger
    @kevingrieger 12 ปีที่แล้ว +2

    Here is the *real* problem with functional programming. Most programmers suck at their jobs. They either can't or won't use their brains to their full potential. Functional programming requires quite a bit more brain power than imperative programming, and that conflicts with alot of programmers mentality. Functional programming requires you to think about the big picture and scale down from there. Imperative programming allows for the opposite, and it just so happens the opposite is easier.

    • @aoeu256
      @aoeu256 5 ปีที่แล้ว +4

      Imperative programming requires more brain power because everything is contextual in stateful programs, while pure functions are context-free.

  • @jcfbell3001
    @jcfbell3001 11 ปีที่แล้ว

    can you elaborate? perhaps an example?

  • @ashleygillman3104
    @ashleygillman3104 9 ปีที่แล้ว +1

    At 20:50 it looks like he wrote the c word

  • @DisfigurmentOfUs
    @DisfigurmentOfUs 9 ปีที่แล้ว

    Thank You very much

  • @VirtualPlasticity
    @VirtualPlasticity 11 ปีที่แล้ว +7

    I agree that Java and C# are impure languages, but to say that nobody is making money out of them is ridiculous!

    • @adorinadorin
      @adorinadorin 11 หลายเดือนก่อน

      There was only statement ab9ut amount of m9ney - more or less.

  • @johnvoid5294
    @johnvoid5294 6 ปีที่แล้ว +1

    as Erik said that there is no midpoint, i should avoid Scala and go all the way to Haskell!

  • @mxo3212
    @mxo3212 3 ปีที่แล้ว +1

    come on some one make that NIRVANA after 8 years
    GO, RUST, JULIA which...

    • @baka_geddy
      @baka_geddy 3 ปีที่แล้ว

      LISP variant will be the closest one imho.

  • @moofymoo
    @moofymoo 10 ปีที่แล้ว

    56:37 - challenge accepted

  • @DannyMeister
    @DannyMeister 10 ปีที่แล้ว

    +moofymoo How'd that go?

  • @klokanRsk
    @klokanRsk 11 ปีที่แล้ว

    GWT in action :-) Nice video BTW

  • @richtourist
    @richtourist 6 ปีที่แล้ว

    POINT
    THE
    CAMERA
    AT
    THE
    EXAMPLE
    (please)

    • @mxo3212
      @mxo3212 3 ปีที่แล้ว

      LOL

  • @TheLawrence05
    @TheLawrence05 11 ปีที่แล้ว

    By watching a video in which i'm not understanding any single word

  • @leodf1
    @leodf1 11 ปีที่แล้ว

    Well everyone had high hopes, but now we know the Japanese 5th gen programme went nowhere. And Prolog was a non starter too. What I hated about Prolog was that you basically had/have to trick it into doing what you want.

  • @r0by
    @r0by 12 ปีที่แล้ว +6

    "vegetarian butcher"; LOL.

    • @MasthaX
      @MasthaX 4 ปีที่แล้ว

      Dutch jokes :)

  • @kahnfatman
    @kahnfatman 2 ปีที่แล้ว

    A Kind Error is by no means a nice error :D

  • @deadmarshal
    @deadmarshal ปีที่แล้ว

    Clean > Haskell

  • @ASmallTurnip67
    @ASmallTurnip67 7 ปีที่แล้ว +3

    Great talk by Erik, but seriously man, you need to improve your camera work...

  • @1videoshow
    @1videoshow 9 ปีที่แล้ว

    The target is "catch the errors" and "handle them correctly". But often nobody knows whats going on really within a program in the real environment, right? You can't prove a program right, mathematically.

  • @yepyeniceri
    @yepyeniceri 7 ปีที่แล้ว

    11:24 :D

  • @TheLawrence05
    @TheLawrence05 11 ปีที่แล้ว

    I feel so stupid !

  • @SMOKE3104
    @SMOKE3104 5 ปีที่แล้ว +1

    Nirvana.equal("Rust")

  • @Kanishvarab
    @Kanishvarab 12 ปีที่แล้ว

    "denmark" -.-

  • @DisfigurmentOfUs
    @DisfigurmentOfUs 9 ปีที่แล้ว

    So the only benefit from purity is easy concurrency?

    • @lucassaldyt3227
      @lucassaldyt3227 9 ปีที่แล้ว +5

      +Pavel V. Also a lack of run-time errors, less complex code, faster production times etc.

    • @michaelwayneterry
      @michaelwayneterry 8 ปีที่แล้ว

      +Marethyu Sky This is all true, unless your system is required to have side-effects.

  • @1videoshow
    @1videoshow 9 ปีที่แล้ว

    Apple Swift Language has fixed this problem with so called Optionals. You can have "optional int's", which means it can be an int or nothing.

    • @osmarpixuri
      @osmarpixuri 9 ปีที่แล้ว

      1videoshow java 8 has it too.

    • @bingloveskoki
      @bingloveskoki 8 ปีที่แล้ว +3

      These Optionals are just syntactic sugar for Haskells Maybe Type:
      enum Maybe {
      case Just(T)
      case Nothing
      }

  • @SudeepMakwana
    @SudeepMakwana 11 ปีที่แล้ว

    agreed 100 % haha

  • @ochgottnochma
    @ochgottnochma 10 ปีที่แล้ว +7

    Fight Extremism, Boycot Functional Programmers!

    • @insertoyouroemail
      @insertoyouroemail 9 ปีที่แล้ว +11

      ochgottnochma Functional Programming Master Race!

    • @crimsun7186
      @crimsun7186 9 ปีที่แล้ว +9

      +ochgottnochma I'd rather boycott JVM based languages.

  • @humble_integrity
    @humble_integrity 4 ปีที่แล้ว

    the interviewer is annoying. i wonder how erik was so calm in his explanations

  • @xybersurfer
    @xybersurfer 10 ปีที่แล้ว

    this explanation is flawed

  • @eudisd
    @eudisd 4 ปีที่แล้ว

    Please don't wear that shirt again

  •  9 ปีที่แล้ว

    Why he just uses this kind of t shirt?

    • @1videoshow
      @1videoshow 9 ปีที่แล้ว +1

      Joao Vitor Its a hippy shirt ;)

    • @binshuo
      @binshuo 9 ปีที่แล้ว +2

      +João Vitor R Neto I've never seen Eric Meijer wear a shirt with less than 4 colors in any of his videos.

  • @tinkeringengr
    @tinkeringengr 10 ปีที่แล้ว +2

    What a terrible explanation! An unbelievable amount of hand waving with poorly defined terms while the interviewer nods his head in ignorance. Given the context I suppose its unfair to be so harsh, but this was almost a complete waste of my time.

    • @tinkeringengr
      @tinkeringengr 10 ปีที่แล้ว +1

      LOL, 40 minutes into the video they finally define the concepts that they have been discussing.....and the one guy was a professor? Its amazing to me how they can have almost an hour conversation in ambiguity before they decide to consolidate the mental model. And they call themselves computer scientists?

    • @XemSmex
      @XemSmex 10 ปีที่แล้ว +2

      Jonathan Valiente I have the feeling this 'computer scientists' are self claimed experts which are only able to talk about this things in this high abstract manner but have absolutely no competence when it comes to practical use. While I understand what Erik is explaining this all feels like it's nice to look at but do some real work please.

    • @jebberjeb
      @jebberjeb 10 ปีที่แล้ว +18

      XemsDoom Uh, are you implying en.wikipedia.org/wiki/Erik_Meijer_(computer_scientist) isn't an authority in the field of programming languages?

    • @brenthagany2008
      @brenthagany2008 10 ปีที่แล้ว +11

      It's almost as if the entire internet isn't continually recreated to specifically meet your specific momentary needs! Unconscionable!

    • @tinkeringengr
      @tinkeringengr 9 ปีที่แล้ว

      Brent Hagany Of course its not tailored to my needs, but I would still expect someone who is communicating information (especially an expert in the field of computation) to define the appropriate terms in a manner relevant to the presentation.
      ***** A student doesn't need a plethera of credentials to evaluate when information is poorly presented. Critisim allows for progression to those who are capable of recieving it.