js objects are mutable; utliliy libraries like underscore, lodash, jquery, do not provide purity guarantees, they export impure functions that mutate objects (e.g. <a href="https:&#x2F;&#x2F;lodash.com&#x2F;docs#merge" rel="nofollow">https:&#x2F;&#x2F;lodash.com&#x2F;docs#merge</a>). When we start leaning heavily on function composition to build our abstractions, we simply must have purity guarantees for everyday utilities or everything falls apart. So to go &quot;full-on functional&quot; in javascript means we need to fork and rewrite the entire ecosystem. And if you&#x27;re going to do that, there isn&#x27;t much value in keeping javascript.