Anjana Vakil: Immutable data structures for functional JS | JSConf EU

Поделиться
HTML-код
  • Опубликовано: 1 авг 2024
  • 2017.jsconf.eu/speakers/anjana...
    Functional programming has been gaining a lot of popularity in the JS community, and with good reason: rejecting side-effects and mutability - in-place changes to data - helps avoid a lot of headaches. But when you refuse to mutate objects, you have to create a whole new object each time something changes, which can slow things down and eat up memory, making functional programming seem inefficient.
    That’s where immutable data structures come in - to save the day, and time and space! Also called “persistent data structures”, they help you efficiently make new “modified” versions of immutable objects, by reusing parts of the old object that you don’t need to change.
    In this talk we’ll take a look at how these data structures work, why they’re fantastic for functional programming, and how we can easily use them in our JS code thanks to libraries like Mori and Immutable.js.
  • НаукаНаука

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

  • @dhallqvist91
    @dhallqvist91 7 лет назад +144

    Anjana is such a talented speaker, great job!

  • @ralphpelador
    @ralphpelador 7 лет назад +283

    she's back!

  • @jex465
    @jex465 6 лет назад +50

    Came here from her unconf 2016 video . i need more of her talks .

  • @victorpetrescu13
    @victorpetrescu13 7 лет назад +30

    Nice talk. She has a cool way of making even things you already understand/know more clear (and fun). And definitely more energy than last 10 talks I've been to. Wish more speakers would be a bit more like that.

  • @CerdasIN
    @CerdasIN 7 лет назад +4

    Very talented. She can bring programing more informative than before. Technical but easy learning. Thanks..

  • @tebogokhanye7035
    @tebogokhanye7035 6 лет назад +8

    Love all of Ajana's talks on open source, very articulate speaker too.

  • @iAmTheSquidThing
    @iAmTheSquidThing 7 лет назад +106

    "Immutability rocks like rocks rock."

  • @monugupta32
    @monugupta32 7 лет назад +161

    The way she talks, it's too good !

  • @vivekiyer6895
    @vivekiyer6895 7 лет назад +29

    Anjana vakil , you are awesome ! ...please make your own channel !!

  • @AlwinArrasyid
    @AlwinArrasyid 7 лет назад +4

    The way she explains things is really something.

  • @ThePsyrencall
    @ThePsyrencall 6 лет назад +1

    Fantastic introduction to how immutable data structures are represented under the hood! Good job!

  • @vmvini
    @vmvini 7 лет назад

    Wow! A quote from 'I heart huckabees'. Loved

  • @normanlipkow5862
    @normanlipkow5862 7 лет назад +4

    Thanks again Anjana! You got me hooked to functional programming. Really good and informative talk.

  • @Limpuls
    @Limpuls 7 лет назад +4

    This is so on time. I was just learning about immutability in FP. Great talk

  • @dfurmans
    @dfurmans 7 лет назад +2

    ¡Muchisíma gracias!
    Danke schön!
    Wielkie dzięki!
    Thank you very much!

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

    Informative and well delivered talk. Thank you!

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

    This was/is an excellent talk. I'll try to implement some of this in my own for learning.

  • @tamerkhraisha6974
    @tamerkhraisha6974 7 лет назад

    very useful talk and great presentation skills

  • @shawn-dsz
    @shawn-dsz 7 лет назад

    down to earth explanation, thanks

  • @chauhan12341
    @chauhan12341 7 лет назад

    thanks for sharing this session full of knowledge

  • @albertgalvez2556
    @albertgalvez2556 6 лет назад

    Anjana, the 70's rock too!

  • @stardust6999
    @stardust6999 7 лет назад +85

    Nice talk.
    Those in hurry, skip to 8:55.

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

    nice talk!! thanks Anjana!

  • @imxron
    @imxron 7 лет назад +477

    Why is no one laughing at her jokes? Javascripters, why so serious?

    • @sweepstakes
      @sweepstakes 7 лет назад +30

      I think the audience mic was a little on the quiet side.

    • @Beefmongering
      @Beefmongering 7 лет назад +32

      imxron Its just engineers, what do you expect

    • @nholanl1952
      @nholanl1952 7 лет назад +35

      There is always much more laughter than you hear. The mics are optimized for the talker, not for the noises done by the audience. This is true for most events, where someone talks on a stage.

    • @DarrenHwang
      @DarrenHwang 6 лет назад +22

      I listen to all tech talks at 1.5x speed. So it's not funny.

    • @tebogokhanye7035
      @tebogokhanye7035 6 лет назад +13

      haha *Germans*

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

    this channel is amazing. I hope it's still alive...

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

    what a teaching method and style #Nice

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

    Beautiful talk, thank you

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

    This is a really good explanation

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

    She's great at expressing her Ideas.

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

    Great presentation!

  • @bleskanet
    @bleskanet 7 лет назад

    good talk! i'll try one of those lib, thanks

  • @bimlendujha9778
    @bimlendujha9778 6 лет назад +1

    Nice way of explaining ... I like the session.
    Great work !!! Please keep it up 👍

  • @cesarmarinhorj
    @cesarmarinhorj 7 лет назад

    thanks to share this! amazing!

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

    Nice explanation with pictures :)

  • @pogurek
    @pogurek 7 лет назад +2

    I've been waiting whole year for this! Thanks.

  • @Duch3v
    @Duch3v 7 лет назад +1

    Great to see another awesome talk from Anjana

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

    Thankyou, this has help me!!!!!!

  • @rajivtandon1872
    @rajivtandon1872 7 лет назад

    Nice Explanation

  • @SasiKumar-no8mx
    @SasiKumar-no8mx Год назад

    This video forever rocks 👍

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

    Really great talk

  • @bytler4518
    @bytler4518 7 лет назад

    Great talk.

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

    Thanks for this!

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

    Damm you're awesome, I am seeing it in 2021 still I am surprised 😅

  • @_ashraful
    @_ashraful 7 лет назад

    Lovely speech

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

    Probably the best speaker i have seen.

    • @edgeeffect
      @edgeeffect 22 дня назад

      I wouldn't say THE best.... but certainly one of the best. :)

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

    great talk!

  • @bgabriel7581
    @bgabriel7581 7 лет назад

    Nice talk!

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

    why would I use any of those libraries to write fp if i can achieve basically same thing with vanilla js and for maybe more complex things i could use lodash

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

    what about lodash? , and does mori and Immutable is following this Tree Data structures and whats their Benchmarks

  • @supervirus5831
    @supervirus5831 7 лет назад

    i am watching i heart huckabees after watching this lecture.:)

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

    awesome good and nice talk

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

    Rocks rock like Anjana rocks.

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

    🙌🙋awesome video mam 😊

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

    thanks for sharing

  • @user-kw9cu
    @user-kw9cu Год назад +1

    Nice talk

  • @roncemine4948
    @roncemine4948 7 лет назад +11

    don't mutate your data!.. alright thanks anjana well said..

  • @Insane430
    @Insane430 7 лет назад +49

    Anjana

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

    printing to the console would be considered a side effect?

  • @zeeshanbhat
    @zeeshanbhat 6 лет назад +1

    I agree with her.....Immutable's way is a bit misleading. Even though it doesn't mutate anything. For e.g the logical meaning of "a.push" seems "push into a" rather than "return a copy of a with new value pushed" . May take a while to get used to it...

  • @midhunprince2034
    @midhunprince2034 7 лет назад

    Excellent

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

    Recommendations conveniently mentioned at 20:00

  • @meligatt
    @meligatt 6 лет назад

    awesome talk, thanks!

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

    there's another way which I normally use is Object.assign(one array/object or value, method /value..etc)

  • @devmrin
    @devmrin 7 лет назад +3

    We need more English teachers to dump base and become software engineers... Boy, can they deliver a pleasant talk.
    as always..thanks Anjana!

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

    Brilliant

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

    Amazing

  • @TheddunTOSS
    @TheddunTOSS 7 лет назад +1

    Very good talk. I totally got the point. But why not use ClojureScript or Elm instead of just JS libraries?

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

    I must be good, because I understood all the things she said perfectly

  • @armandomendivil1117
    @armandomendivil1117 6 лет назад

    awesome

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

    like it a lot

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

    if i would be in her place wouldn't last one minute 😅 she is a great speaker 👍🏼

  • @shrikantsarma27
    @shrikantsarma27 7 лет назад +4

    B-Trees ?

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

    Can someone tell me when you would use this?

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

      Typically you'd use immutable data structures in situations where you have multiple dependencies to the same shared state. For example, in the web dev world, we have a library called Redux that provides state management at a global level. Multiple components (for example in React, Viritual DOM objects) are subscribed to a global state object.
      Having mutable data structures can cause serious inconsistencies between the different components listening to that state. If you use immutable data structures, every update to the global state, would be captured and versioned, properly. So you can roll back your updates too (which is what Redux debugger also allows if you've ever used one).

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

    "We are living in an immutable world and I am an immutable girl." --Madonna

  • @dev1lhun2er
    @dev1lhun2er 6 лет назад

    Not for anyone else in particular, but here you go: 2:55

  • @Sergejack
    @Sergejack 7 лет назад +1

    Are there relevant benchmark proving mori is faster than immutable js? (I'd like to beleive it is)

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

    new subcribers here ..

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

    Do you guys have discord ?

  • @zakariachahboun
    @zakariachahboun 6 лет назад

  • @mikeJohnson2222
    @mikeJohnson2222 7 лет назад

    she rocks.

  • @ehza
    @ehza 7 лет назад

    Cool

  • @MarkBennettCa
    @MarkBennettCa 7 лет назад

    Really enjoyed this talk, thank you!
    Out of curiosity, what software are using to edit your talks? Does it do some background noise reduction on the speaker's audio, as it's very clear.

    • @jsconf_
      @jsconf_  7 лет назад +1

      This was live edited/produced during the event with the audio directly recorded from the primary audio sum that runs on the event speakers.

    • @MarkBennettCa
      @MarkBennettCa 7 лет назад

      JSConf thanks for replying. I'm learning to record speakers at our meetup and really enjoy the quality of yours! Do you mind if I ask if you mix the video live as well, or do you edit different video of the event together afterwards in Final Cut or something similar?

    • @jsconf_
      @jsconf_  7 лет назад +1

      Yes, we edit the video live as well. We do record the individual cameras as well and rarely make corrections after, but by and large the video is done the minute the talk is done.
      Almost all conferences operate like this nowadays because if one needs to have recording operators on site, they might as well use that time to edit, which overall is much cheaper than doing a post production after the fact.

    • @MarkBennettCa
      @MarkBennettCa 7 лет назад

      JSConf what software do you use to do the live video? I've tried Open Broadcast Studio, but have had issues with it losing sync between audio and video as the talk goes on. Also, how do you do the wireless? Is that Bluetooth headset, or do you have a wireless microphone and a mixing board hooked up to the computer doing the recording?
      Thank you for all the answers BTW. Really appreciate the help!

    • @MarkBennettCa
      @MarkBennettCa 7 лет назад

      JSConf this is the channel I'm trying to get ready to formally launch in the fall. You can hopefully see our recording quality improve over the last six months as I've worked on our setup. 😉
      ruclips.net/channel/UCBC21Bfijpx4CCpjnBUdypg

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

    Go forth and don't mutate your data!

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

    So basicely (reall basic) ...what it does is this.
    let zoo = [
    "tiger",
    "loin"
    "riono"
    "crocodile"
    ]
    // we must not putting all the items in one basket instead we will group them in smaller groups
    let zoo = {
    group_one: "tiger, loin"
    group_two: "riono,crocodile"
    }

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

    Those jokes were so good lol... Idk why no one is laughing

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

    You make complex stuff look simple. And this is why we need more women in tech. Things get a lot easier 😁❤

  • @dandanassegarane5672
    @dandanassegarane5672 7 лет назад +1

    Objectif orientéd programmation décomposition

  • @pythagoras281
    @pythagoras281 6 лет назад

    5:11 also who let the dogs out

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

    No need for invocations and sacrifices to the gods of time and space complexity 😄

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

    Her sense of humour 😹

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

    anyone notice that zoo word style zoom

  • @braham.prakash
    @braham.prakash 3 года назад +1

    1.75 here

  • @madhusudhansubedi7105
    @madhusudhansubedi7105 7 лет назад

    wow

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

    💜💜💜💜❤️♥️♥️♥️♥️♥️😜😜

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

    You Can Watch This Vedio At 2x Speed Too

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

    tldr bitmapped vector trie, mori

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

    Why won't you tell them, having 5000 friends is no good for anybody.

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

    I have a feeling that world would have been much better place had woman been treated equally since the beginning..

    • @user-kw9cu
      @user-kw9cu Год назад +1

      So why do you treat them badly? 🤡

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

    npm i -g laugh@7.5.2 --save

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

    Anjana