• JackbyDev
    link
    fedilink
    English
    arrow-up
    13
    arrow-down
    1
    ·
    1 year ago

    With regards to immutability and pure functions, I don’t really care where the language falls on the scale the author defined so long as there is a way to easily express deeply immutable objects and pure functions. There are a ton of benefits of those two things and a lot of optimizations and assumptions that can be made with them. So I don’t really care if everything is immutable by default but just being able to tell the compiler/runtime “Hey listen, this thing won’t change ever, got it? So go crazy with passing it to threads and stuff” or “This function will 100% definitely return the same value if given the same input so if it takes a long time you can cache the result if you’re able to.” both seem very appealing.

    • abhibeckert@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      arrow-down
      1
      ·
      1 year ago

      Hey listen, this thing won’t change ever, got it? So go crazy with passing it to threads and stuff

      I don’t really care about that - none of the code I write is compute bound anyway. The CPU is generally twiddling it’s thumbs idle for millions of cycles with occasional brief moments of activity when the SSD finally responds to the read operation that was requested an eternity ago. Or worse, it might be waiting on a network request.

      I want immutability so I can, for example, make a copy of it and know my copy will always be the same as the original. In other words I want to be able to do my own caching/etc (possibly to avoid SSD access).