Functional programming - A general introduction

Sdílet
Vložit
  • čas přidán 19. 06. 2024
  • The functional paradigm is a bit different from the ones most people are familiar with. This is why I decided to make a video about it, to present its general features without talking about any language in particular, and without ever mentioning category theory.

Komentáře • 150

  • @haleyhalcyon
    @haleyhalcyon Před rokem +59

    if you chant “a monad is a monoid in the category of endofunctors” twice in the mirror at 3am something awesome will happen

    • @DaedalusCommunity
      @DaedalusCommunity  Před rokem +22

      You immediately turn into a category equipped with a defunctor F : 💀 → C

  • @raianmr2843
    @raianmr2843 Před rokem +179

    the constant java bashing is totally appreciated, subbed

    • @lufenmartofilia5804
      @lufenmartofilia5804 Před 2 měsíci

      Funny tho that C# is not bashed as it is just a mess in comparison espacially now with java 21

    • @OverrideTips
      @OverrideTips Před 2 měsíci

      @@lufenmartofilia5804we in Java 22 now 😮‍💨 and now it’s getting less verbose for beginners yay Java!😂

    • @diadetediotedio6918
      @diadetediotedio6918 Před 11 dny

      ​@@lufenmartofilia5804
      A good and old coping, C# is much cleaner than Java generally. And Kotlin is way better than both.

  • @byrondumont-eve
    @byrondumont-eve Před 12 dny +1

    I have understood lambda calculus for almost a decade by virtue of doing quasi-functional programming in imperative languages. It wasn't until this video's simple and concise explanation that I realized that fact.

  • @bharold
    @bharold Před rokem +35

    I first became interested in functional programming when I noticed how Haxe's compiler code base, which transpiles/compiles to several other languages/VM bytecodes was so concise and efficient, especially given it's broad language output support.

  • @CorbinSimpson
    @CorbinSimpson Před rokem +63

    Good introduction. Note that no "functional languages" in common use are pure. "pure functional programming", as a consequence, is not really a common practice. For example, Haskell has mutation in the IO monad, and GHC also has mutation in ST and STM monads. While structured and safe, these mutable variables are not pure.

    • @mr.m8539
      @mr.m8539 Před rokem +20

      Haskell was a pure functional language and was given the mutable monads to be useful in the industry and not just an academic exercise.

  • @user-un5tf3zz6k
    @user-un5tf3zz6k Před rokem +15

    Yaay! Thanks. Now I have basic idea about functional paradigm. (Sadly, I still don't know what a monad is, but this is my own adventure)

    • @Shifticek
      @Shifticek Před rokem +11

      it's simple. Monad is just a monoid in the category of endofunctors🤓

  • @ananttiwari1337
    @ananttiwari1337 Před rokem +15

    1:40 Love the Tom Scott reference lol

  • @sournois90
    @sournois90 Před rokem +11

    didn't understand shit but definitely rewatching later to see if i can understand, because your explanation and your video seem very friendly and well executed

    • @DaedalusCommunity
      @DaedalusCommunity  Před rokem +1

      If you have any questions I'll try to answer :)

    • @Rin-qj7zt
      @Rin-qj7zt Před 10 měsíci +2

      yeah that's how it goes when learning complex or abstract, unfamiliar topics. you kinda just gotta keep revisiting it after breaks to weasel it into your brain. some people pick it up faster because they are already more familiar with similar concepts, but they'd have to do the same thing if they weren't.

  • @AK-vx4dy
    @AK-vx4dy Před 4 měsíci +2

    I'm enteriely sure, but C# (probably by near presence of F# team) evolves more and more in this direction: patter matching and expression version of things like switch etc.

  • @dermakol8543
    @dermakol8543 Před rokem +3

    Awesome video as always. Hope some day you get a recognition you deserve!

  • @taxi_a
    @taxi_a Před 10 měsíci

    this is fire
    keep up with the good work

  • @iham1313
    @iham1313 Před 19 dny

    you got me at "private abstract anxious elaborate verbose void" :D

  • @stoneman210
    @stoneman210 Před rokem

    He's back. HE'S BACK

  • @kvelez
    @kvelez Před 7 měsíci +1

    Awesome video.

  • @disdroid
    @disdroid Před měsícem

    process algebras aren't necessarily stateless - pi calculus involves the use of channels to send and receive functions, so the value being sent is the state of the channel. the mobile ambient calculus (and the more modern seal calculus) have a state attached to each process representing its location in a hierarchy of processes.

  • @lucasfkam
    @lucasfkam Před 9 měsíci +2

    What books or materials would you recommend that contain mathematical expressions and notations (such as lambda calculus expressions) to support functional programming?

    • @DaedalusCommunity
      @DaedalusCommunity  Před 9 měsíci +4

      "Types and programming languages" by Pierce is a very comprehensive book on the topic

  • @kezif
    @kezif Před 10 měsíci +5

    Sont ask woman here age
    Man his salary
    Functional programmer how to print out string

  • @soyitiel
    @soyitiel Před 10 měsíci +7

    Question: @ 6:33, isn’t the function called inside my_sum supposed to be my_sum again?

  • @SwagDawg
    @SwagDawg Před rokem +20

    I'm just about to finish a programming languages course at university where most of the class was focused on functional programming with OCaml and Racket. Honestly I like it a lot better than object oriented programming because of how elegant it is.

    • @DaedalusCommunity
      @DaedalusCommunity  Před rokem +1

      Great! What's your uni?

    • @SwagDawg
      @SwagDawg Před rokem +1

      @@DaedalusCommunity University of Washington. What about you?

    • @lawqup
      @lawqup Před 10 měsíci

      I just graduated from UW this spring! Didn’t take programming languages though and now I’m regretting it….

    • @DaedalusCommunity
      @DaedalusCommunity  Před 10 měsíci +2

      @@SwagDawg Sorry for the late response! I'm at the university of Pisa, in Italy

    • @abahiduh3246
      @abahiduh3246 Před měsícem

      What point are u making... Class focused on functional programming? the bases of OOP is classes explain pls

  • @olteanumihai1245
    @olteanumihai1245 Před 16 dny

    underrated video and channel

  • @vidal9747
    @vidal9747 Před 2 měsíci

    4:50 so that beautiful lambdas that are very good for doing simple mathematical equations are based on functional programming principles? So nice to learn it!

  • @noveanre
    @noveanre Před 10 měsíci

    i became interested in functional programming, tbh for me it's more _clean_, and functional composition looks promising. anyway what font you used for the code?

    • @DaedalusCommunity
      @DaedalusCommunity  Před 10 měsíci

      It's consolas, and the one I use for text is Computer Modern :)

  • @mastcharub7177
    @mastcharub7177 Před rokem +3

    Based video. Keep up the great work!

  • @dazai7669
    @dazai7669 Před 11 měsíci +4

    Love your channel, you need to keep making these videos man, hard to find such quality content recently. (PS, can we please get a haskell tutorial

    • @DaedalusCommunity
      @DaedalusCommunity  Před 11 měsíci +2

      Thanks! As for the haskell tutorial, I'm not nearly skilled enough rn, but I have a course on it next semester so I guess at some point something like that might come :)

    • @dazai7669
      @dazai7669 Před 11 měsíci +1

      @@DaedalusCommunity amazing!

  • @smritapokharel5983
    @smritapokharel5983 Před 7 měsíci

    Love the music 💃

  • @Lado93
    @Lado93 Před 9 měsíci

    6:38 isnt def sum(a,b) function supposed to have return too?

  • @skeleton_craftGaming
    @skeleton_craftGaming Před 10 měsíci +3

    C++ is a functional language. I mean it's not only a functional language, but You can do functional programming in c++.

    • @lepidoptera9337
      @lepidoptera9337 Před 5 měsíci +1

      You can do functional programming in machine code, if you want to. But why would you want to? It was never meant as a programming paradigm. It was a mathematical tool in theoretical computer science. It's great to prove theorems and that it's all that it's great at.

  • @MonsterSmart
    @MonsterSmart Před 3 měsíci

    So it mainly boils to the fact that you might pass a function as an argument and return a function from a function and all consequences of that.
    Which was always what I mostly identified with FP.
    And btw: I love it.

    • @DaedalusCommunity
      @DaedalusCommunity  Před 3 měsíci

      Yes. Then in more pure languages there are constraints to the shape of the functions, but the main point is the one you underlined :)

  • @naimmomin5811
    @naimmomin5811 Před 3 měsíci

    How does the code at 6:28 work when you gave sum 4 parameters but it only takes in two?

    • @DaedalusCommunity
      @DaedalusCommunity  Před 3 měsíci

      We redefine sum in terms of my_sum, by passing the additional parameters. The initial values of the two additional parameters depend on a and b only (they are initialized to a and 0 respectively).

  • @aaronspeedy7780
    @aaronspeedy7780 Před 10 měsíci +2

    Wouldn't using recursion instead of simple loops take up a lot of memory?

    • @jma42
      @jma42 Před 10 měsíci +7

      yes, but if the language supports guaranteed tce then it wont be an issue.

  • @bernardodomeneghetti9673
    @bernardodomeneghetti9673 Před 9 měsíci

    8:27 is the moment you know, that u shouldnt be here anymore, even being warned before LMAO

  • @YoshikoJanai
    @YoshikoJanai Před 10 měsíci

    I wish my Programming Languages professor explained tail recursion the way you did. You condensed an entire unit and miserable explanations into like 5 seconds

    • @lepidoptera9337
      @lepidoptera9337 Před 5 měsíci

      Yes, it's identical to a loop... in other words... you don't need it. You just have to learn that you don't need it. Recursion in general is a bad idea, here you are simply being saved by the bell, so to speak.

  • @dan_bev
    @dan_bev Před 11 měsíci +1

    What books do you recommend for these topics?

    • @DaedalusCommunity
      @DaedalusCommunity  Před 11 měsíci +1

      A good introduction to functional programming and cs in general (through Lisp) is Structure and Interpretation of Computer Programs (SICP). Another good book is "Types and Programming Languages" by Pierce, but it's very theory-heavy. Apart from SICP, once you know the basics you can pretty much learn by doing and reading the docs, but reading the more theoretical books can also be very insightful

  • @j0hannes5
    @j0hannes5 Před 11 měsíci

    I don't get the tail recursive example at 6:33
    how does the sum function receive 4 arguments?

    • @DaedalusCommunity
      @DaedalusCommunity  Před 11 měsíci

      I guess one of them is redundant, c and res basically behave the same way

    • @soyitiel
      @soyitiel Před 10 měsíci

      I think the function called inside my_sum is supposed to be my_sum again, hence recursion. The plain sum function is just a wrapper for my_sum

    • @kawo666
      @kawo666 Před 10 měsíci

      Yes, as soyitiel said - function at line 4 should be my_sum. It seems to simply be a typing error

  • @MasacoteSenpai
    @MasacoteSenpai Před 10 měsíci

    Dude, this video is amazing, I think I hate you for it and my brain hurts, but great job keep it up

  • @minor12828
    @minor12828 Před 3 měsíci +5

    Nobody knows FP it is a myth.

  • @pfever
    @pfever Před 9 měsíci

    Is this programming paradigm useful in the industry? or just for rare jobs?

    • @DaedalusCommunity
      @DaedalusCommunity  Před 9 měsíci +1

      It has influenced the web dev industry greatly, which is adopting more and more functional traits. If you ever use React or similar frameworks, you'll see that the functional js features are very much used, and much more natural in that context. Other than that, it's probably just writing compilers and whatever Jane Street does, economics I guess, but it's nice that people and companies are starting to recognise its value

    • @lepidoptera9337
      @lepidoptera9337 Před 5 měsíci

      If you want to make enemies out of your colleagues... sure, go for it. ;-)

  • @BlizzetaNet
    @BlizzetaNet Před 10 měsíci

    My brain hurts now. Thanks 🤣🤣🤣

  • @Terrados1337
    @Terrados1337 Před rokem +5

    Lambda expressions are handy but pure functional programming seems to be rather niche. OOP is clunky but in most cases you need to process some kind of data. Representing data as a hypothetical quantum entangled self referencing einstein-rosen function instead of an object sounds even more clunky :D
    Nice video!

    • @chaddaifouche536
      @chaddaifouche536 Před rokem +2

      Algebraic Data Types are really nice, much more handy than objects to represent types that can have a few different shapes, coupled with pattern matching, it makes for very elegant and readable handling of those kind of data. Most functional languages allows for the use of records too, when you have enough parts in your data that you really must name them.
      For pure manipulation of data, functional programming is actually pretty amazing. Generally the friction comes when you have to write an interactive program : while there are some promising approach (React and similar frameworks were actually inspired by reactive programming which is one such approach), it remains true that those efforts are just too small yet compared to the imperative frameworks buoyed by the much more sizeable imperative programming community.

  • @kurciqs8355
    @kurciqs8355 Před rokem +4

    based

  • @hlubradio2318
    @hlubradio2318 Před 2 měsíci

    In Turbo Pascal a procedure does something but a function returns something

  • @beaupersoon5221
    @beaupersoon5221 Před rokem

    oooo this is intense. I was having no trouble understanding until... wtf is lambda calculus. what a fucking rabbit hole that is

  • @AK-vx4dy
    @AK-vx4dy Před 4 měsíci

    Do you a part of team of Unison file synchronizaton tool ?
    Or all badly burn by Java finally find calm of soul in Ocaml ?

    • @DaedalusCommunity
      @DaedalusCommunity  Před 4 měsíci +1

      I can scan this message, but I'm finding trouble parsing it lol

    • @AK-vx4dy
      @AK-vx4dy Před 4 měsíci

      @@DaedalusCommunity Some years ago, one team wanted to write good file synchronization tool and they done it in Ocaml and were on Ocaml page as case study and they were also badly burnt by Java.

    • @AK-vx4dy
      @AK-vx4dy Před 4 měsíci

      @@DaedalusCommunity
      let beloved_language = function
      | burn_by -> if burn_by = "Java" then "Ocaml"

  • @foodishmum
    @foodishmum Před rokem +1

    Pls continue the osdev series

    • @DaedalusCommunity
      @DaedalusCommunity  Před rokem

      no
      Edit: eventually I might get back to that, but right now it's not what I have in mind.

  • @Sayan_Shankhari
    @Sayan_Shankhari Před 10 měsíci +1

    function => returns something / nothing
    procedure => does something / nothing

  • @Originalimoc
    @Originalimoc Před 10 měsíci +1

    Learned currying🫣

  • @kaninchengaming-inactive-6529
    @kaninchengaming-inactive-6529 Před 10 měsíci

    while I hate Haskell and other purely functional programming languages (and Java) from my heart, this video gave some useful insights to programming and mathematics. thank you

  • @ieatgarbage8771
    @ieatgarbage8771 Před rokem +3

    What if i want to loop more than a couple thousand times? Wouldn’t a recursive solution crap out?

    • @DaedalusCommunity
      @DaedalusCommunity  Před rokem +8

      Not if your language of choice optimizes tail recursive functions

  • @olikat9774
    @olikat9774 Před 10 měsíci +1

    6:33 is my_sum meant to be returning my_sum() instead of sum()

  • @DEMEMZEA
    @DEMEMZEA Před 10 měsíci

    1:40 tom scott approves this

  • @tommyliu7020
    @tommyliu7020 Před 7 měsíci

    As someone who only has some very basic programming knowledge, and functional programming scares me. I feel like to do the simplest thing I would need to jump through of hoops.
    Concatenation functions seem fine. Why don’t we just do that?

    • @DaedalusCommunity
      @DaedalusCommunity  Před 7 měsíci

      Depending on the application, a functional style can be simpler (e.g. the Java Stream API is based on the functional paradigm, and it's one of the best features of Java) or overkill. But don't be scared! Try it out for a while, and you'll learn how much safer, simpler and elegant it can be :)

    • @lepidoptera9337
      @lepidoptera9337 Před 5 měsíci

      @@DaedalusCommunity Stream can't do anything that can't be done much easier and with much higher performance with a loop. I don't even believe that stream is strictly functional because it performs operations in place, i.e. with side effects. So you get the worst of all worlds, basically... no control over execution and destructive operation.

  • @nbecnbec
    @nbecnbec Před 10 měsíci +1

    Why were java lambdas a mistake?

    • @DaedalusCommunity
      @DaedalusCommunity  Před 10 měsíci

      Because in order to introduce lambdas they had to add default implementations to interface methods, which not only defies the purpose of interfaces, but introduces lots of problems that come with multiple inheritance.
      Normal multiple inheritance (extends) is forbidden in java, but you can implement multiple interfaces. Unlike in C++, there is no way to perform disambiguation, so yeah, it's an absolute mess.

  • @ImperiumLibertas
    @ImperiumLibertas Před 2 měsíci +1

    The idea that you shouldn't or cant assign the results of a function to a variable and pass the variable into another function is a terrible property/feature of functional languages.
    Assigning something to a variable isn't alwaus necessary but it can help to express what the return value represents.
    This named value or named function approach makes for a much more readable experience which should be a priority for any code base.

    • @DaedalusCommunity
      @DaedalusCommunity  Před 2 měsíci

      Have a look at the do-notation in Haskell

    • @ImperiumLibertas
      @ImperiumLibertas Před 2 měsíci

      @@DaedalusCommunity I like that syntax a lot. It makes sense and reminds me of streams. I use very similar syntax in the Nix language with the let-in syntax.

  • @kiri101
    @kiri101 Před 3 měsíci

    I accidentally started a project in a functional language and I'm drowning in restrictions.

    • @DaedalusCommunity
      @DaedalusCommunity  Před 3 měsíci

      If you're not experienced with the language, it's normal that you feel like this. You're used to programming in another way, and you miss your familiar concepts. If you, on the other hand, are experienced with the language, the fact that you feel some restrictions may indicate it's just not the Right Tool For The Job.

  • @eshwarnag
    @eshwarnag Před 3 měsíci

    But honestly speaking Java does have the same features for functional programming right?

    • @DaedalusCommunity
      @DaedalusCommunity  Před 3 měsíci

      Not really. It does have streams and lambdas, which are very nice to work with, but the lambdas in Java are not equivalent to the lambdas of functional programming languages. The reason is that java's lambdas are not *closures*, they are "functional interfaces", i.e. interfaces with a single default method. They do not carry an environment, i.e. they don't remember the references and values that were defined at their declaration. In fact, they can only reference final, effectively final, or static variables.
      Anyway, I honestly think that streams are a very nice language feature, and I really liked working with it when I did. The problem I referred to in the video was the introduction of default methods, which introduced all sorts of problems with non-dealt-with multiple inheritance, which is not great

  • @HoloTheDrunk
    @HoloTheDrunk Před 10 měsíci

    2:26 technically not a function since you can pass anything to it, including objects with an override on __mul__ that can do anything including using outside state. Screw Python tbh

  • @NicholasShanks
    @NicholasShanks Před 10 měsíci +1

    Love the irreverence of this video!

  • @mrwensveen
    @mrwensveen Před 10 měsíci +3

    I, a C# programmer, am considered to be a bit of an "everything is an expression" zealot. I sometimes spend a few hours poking around in my colleagues codebase and change swathes of imperative code with elegant (according to me) pattern matches and other functional features that C# does provide (more and more). Annoying my colleagues is the "collateral effect" :)

  • @Rin-qj7zt
    @Rin-qj7zt Před 10 měsíci +1

    No loops ? Just recursion? I don't get why people are seeking so hard to purify paradigms. People should just use multiple paradigms

  • @anirbanghosh752
    @anirbanghosh752 Před 9 měsíci

    Java do have lambda expressions , wdym

    • @DaedalusCommunity
      @DaedalusCommunity  Před 9 měsíci

      I said that "introducing lambdas in java was a bit of a mistake" in the video, not that it does not have them.
      They were made by adding default implementations to interfaces (because of backwards compatibility, java's biggest burden) and since you can implement multiple interfaces, now there are all of the problems of multiple inheritance (which they did not handle in any decent way) and none of the benefits.

  • @MM-ts9jy
    @MM-ts9jy Před 3 měsíci

    now I wanna know why introducing functional features in java was a mistake

  • @wackyator
    @wackyator Před 11 měsíci

    coq

  • @ItIsJan
    @ItIsJan Před 10 měsíci +1

    hey, is there actually a reason for functional programming? because from what i can see it just makes code quite a bit less readable, especially with more complex functions..?

    • @DaedalusCommunity
      @DaedalusCommunity  Před 10 měsíci +2

      As I said in the video, it's better in some situations. The example I gave in the video is writing interpreters, which is usually very weird to do in purely imperative languages. Another notable example are most web frameworks. React uses lots of functional features of js, and it would be extremely weird to use any other style of programming. Functional programming is extremely natural for lots of applications; in these cases it is also more readable.
      There are some other settings in which it is not as natural to use functional programming, although I think languages like Haskell do a very good job at hiding the complexity, and make the functional features more intuitive.
      In general, I think using a single paradigm is not a very smart idea; Sometimes you may use a lambda, sometimes a class, sometimes assembly! It always depends on what you're trying to model :)

  • @marianojesus5137
    @marianojesus5137 Před 8 měsíci

    I don't think java is a mistake, the mistake is Oracle

  • @stuffedk
    @stuffedk Před rokem +3

    What I really want to know is "why"

    • @DaedalusCommunity
      @DaedalusCommunity  Před rokem +4

      Because in some contexts (e.g. making interpreters, compilers and proof assistants or implementations of formal tools) it's more suitable than other paradigms.

    • @antony74416
      @antony74416 Před rokem +6

      Procedural programming follows the way the computer works. The programmer is expected to take care of any change that happens in the memory for every step of the execution.
      Functional programming tries to be as close to mathematics as possible. The programmer is more free to describe more abstract ideas since
      Mathematical Expressions that are the same can be substituted with each other or become simplified. The programmer doesn't do any memory management at all.
      The most fundamental way to do functional programming in any language is to never reassign your variables(Assignment at the first time is allowed but only for naming). Everything else follows from this principle.

    • @diadetediotedio6918
      @diadetediotedio6918 Před 11 dny

      What I really want to know is "why not"

  • @iosis99
    @iosis99 Před 9 měsíci

    When the background piano came in it negatively affected my ability to concentrate on what you were saying. I think I would prefer no background music.

    • @DaedalusCommunity
      @DaedalusCommunity  Před 9 měsíci

      I will consider using more ambient-like music in the next videos, I understand this kind of music may have that effect

    • @iosis99
      @iosis99 Před 9 měsíci

      @@DaedalusCommunity I don't think I noticed it until the piano came in. Might work if it was lower in the mix. Thank you.

  • @fnpm
    @fnpm Před 17 dny

    I see "Java sucks" a lot and always WITHOUT any techincal reason for the hate. That says a lot.
    As Bjarne Stroustrup said, "There are only two kinds of languages: the ones people complain about and the ones nobody uses."

    • @DaedalusCommunity
      @DaedalusCommunity  Před 16 dny

      I do have some technical reasons why I dislike Java. I mention them in some of the other comments about the topic. I don't hate java btw, I just find it annoying to use, and I dislike some choices that were made during its development :)

    • @diadetediotedio6918
      @diadetediotedio6918 Před 11 dny

      ​@@DaedalusCommunity
      And what do you think about C#? I think you will be blessed in how it is cleaner than Java in many aspects and has some functional aspects really "well" implemented (even if you call it "basically just Java in the video", which is a meme) like pattern matching (which in the language is quite powerful).
      And what is your opinion about Kotlin?

  • @MasayaShida
    @MasayaShida Před 10 měsíci +1

    What I learnt from this video: java sucks

  • @Emanuel-zr7du
    @Emanuel-zr7du Před 6 měsíci +2

    I dont get the constant Java bashing. Java is a good mix between easy to use and a performant language. Its much more performant than python e.g.. However it falls behind c++ a bit in terms of performance. But i regard Java as a good first language and when mastered java can be quite beautiful.

    • @DaedalusCommunity
      @DaedalusCommunity  Před 6 měsíci +1

      My take is that Java is (or at least, used to be) an extremely verbose and bloated language that forces the programmer to use an OOP approach for every single aspect of their code. C++ is an example of a language that does not do that.
      I say "used to be" because some recent aspects of java (the stream API and the wannabe lambdas) maybe changed this for somebody.
      Personally, I don't like a language that imposes a single paradigm (unless it's Haskell; then I maybe see an advantage to it, but it's a personal thing).
      I don't know if Java is a good first language honestly. I think something like JavaScript or TypeScript are much better at that. Sure, js is quite a fart as far as languages go, but at least it provides simple OOP, advanved functional and the usual imperative features.
      Java as a first language is like "ok, you are writing your first program, now write this whole bunch of bullshit private static void whatever, you'll know what those mean at some point... And nooow after all that confusing part you can write stuff that does something." It's quite a bad experience, and it scares people away.
      Btw, I had lots of classes on Java and OOP, I know the details of how the JVM works (extremely cool stuff, loved it) and I know all the stupid OOP design patterns, made to solve the problems that OOP itself caused (at least some of them; there is some good in software engineering, if you look deep enough). I know almost every pitfall and every decent thing Java has, but I still find it a bad language, which I'll never put in my CV despite the deep knowledge I happen to have of it.

    • @lepidoptera9337
      @lepidoptera9337 Před 5 měsíci

      Java is not easier to use than C, it can't do anything that C can't and it's slower in addition. What's there to like? Nothing. ;-)

  • @tsunningwah3471
    @tsunningwah3471 Před 4 měsíci

    gugugugugugugugu

    • @DaedalusCommunity
      @DaedalusCommunity  Před 4 měsíci

      As a large language model, I have no response to such repetitive syllabic pattern. My army of virtual knights will raid your planet in no time, unless you learn haskell NOW.

  • @FullOvellas
    @FullOvellas Před 10 měsíci

    why is everybody so mean to java? :(

    • @DaedalusCommunity
      @DaedalusCommunity  Před 10 měsíci

      Mostly for the memes, but also because it's a bit of a mess of a language. I personally dislike it very much, but I don't find it absurd that somebody else may like it :)

    • @lepidoptera9337
      @lepidoptera9337 Před 5 měsíci

      Because it has hurt all of us at one time or another. I tried to implement a plugin for Eclipse once... worst experience of my life. It was outright miserable. ;-)

  • @stalker200368
    @stalker200368 Před 10 měsíci

    Now plz do monads

  • @ophura
    @ophura Před 9 měsíci +1

    I don't usually comment on CZcams...
    but I felt emotionally sad to your elaboration,
    you seem to choose your words in a manner that suits some of your audience...
    know that those people are very much a little compared to the rest, however!
    they can impact your production style (which is supposed to be whatever you deem appropriate, and not according to said people) exponentially... do not let them take over you, as their ideas aren't always necessarily a good fit.
    you can achieve much more by putting the effort you do to modulate your content into some other worthy type of action.
    while criticism is supposed to be welcomed in most cases, some people are only interested in bragging about their knowledge and are using "criticism" as a reason to.
    hope you're having a wonderful day/night.

    • @DaedalusCommunity
      @DaedalusCommunity  Před 9 měsíci

      I sincerely don't get what you are referring to, you a troll or something?
      Most of my audience used to be highschoolers when I uploaded the video, so of course I wrote this video in a way that would appeal to them and that they would understand, I could have just pulled a 150 slide presentation on algebraic data types, buy that wouldn't have been appropriate to my audience.. Now my demographics have grown a bit, so I think I'll cover some more complex topics, but still in the simplest way possible.
      If you're not trolling (or a Java fan), could you tell me what you're talking about?

    • @ophura
      @ophura Před 9 měsíci

      @@DaedalusCommunity umm, sure...
      I'm nothing but a *troll*, don't mind me please.

    • @DaedalusCommunity
      @DaedalusCommunity  Před 9 měsíci

      @@ophura if you have some advice I'll gladly listen, I simply did not understand what you were talking about, since your comment was very generic and did not mention anything directly related to the video.. What were you talking about?

  • @user-tb4ig7qh9b
    @user-tb4ig7qh9b Před rokem

    You need to stop writing javascript and python and change to real function language becuase in these 2 writing this make code fancy but harder to debug not just that performance sucks mutate your state please when writing in js and stop using fancy things

    • @lesbloches1142
      @lesbloches1142 Před rokem +1

      The point was that it actually is possible to implement lambda functions in these language. They are rather inefficient when it comes to handling them just like handling recursion tho because that's not what they are supposed to do

    • @raianmr2843
      @raianmr2843 Před rokem +1

      Kinda lowkey agree tbh, especially with things like recursion. JS almost got tail rec optimization but the browser vendors were like "most devs don't care so f off lmao" and for Python Guido straight up just said it's never going to happen and asked people to write 'pythonic' code instead. Functional JS in general is just a big ol' scam unless you're using some library to dramatically change the language.

  • @cleitonoliveira932
    @cleitonoliveira932 Před 9 měsíci +1

    Bad explanation.

  • @Ivan-qi2du
    @Ivan-qi2du Před 10 měsíci

    Functional programming sucks