Functional programming is a cool paradigm to work in, because avoiding mutable objects can save you a lot of headaches! But when you’re using only immutable objects, you have to create a new object each time something changes, which means copying even the parts that didn’t change! This can slow things down, and you might even run out of memory!
(Given at !!Con 2016 - http://bangbangcon.com/)