I came across this video of Uncle Bob speaking about the SICP book and the assignment statement and it made me think (and read the corresponding chapter from SICP).
I'm wondering whether the arguments listed (local state, side effects, etc.), considering the first edition was published in 1984, are still a problem in modern languages like Java and C#. It may have been a problem then. Is it still now? Or has something changed?
For example in Java we have immutable String
s. A particular area I can think of where assignment is detrimental is concurrency (correct me if I'm wrong). No assignment means no synchronization and no resource deadlocks, right?