Hi, I'm a seasoned erlanger, and we do not all tell you that.
The things you quoted and didn't write yourself are not real problems here.
Erlang in general doesn't actually have referential transparency, and it's not clear why this author thought that it did.
It's not clear why the process dictionary would "destroy referential transparency." Erlang doesn't have references, and the PD is just a storage model.
Surviving catch/throw is a benefit, not a problem
I'm not sure why this author is asserting that it "makes debugging difficult." That's just bullshit. What makes debugging difficult is state, and if you need to track state, switching storage methods won't make that easier.
"Try the clean version first" - what do you imagine is the clean version here?
You're just repeating things you don't understand, cargo cult style.
The things you quoted and didn't write yourself are not real problems here.
Erlang in general doesn't actually have referential transparency, and it's not clear why this author thought that it did.
It's not clear why the process dictionary would "destroy referential transparency." Erlang doesn't have references, and the PD is just a storage model.
Surviving catch/throw is a benefit, not a problem
I'm not sure why this author is asserting that it "makes debugging difficult." That's just bullshit. What makes debugging difficult is state, and if you need to track state, switching storage methods won't make that easier.
"Try the clean version first" - what do you imagine is the clean version here?
You're just repeating things you don't understand, cargo cult style.