Me gusta el concepto de inmutabilidad, pero a veces me pregunto, cuando una aplicación no debe ser paralela, ¿se debe evitar que las cosas sean inmutables?¿Es la inmutabilidad útil en aplicaciones no paralelas?
Cuando una aplicación no es multiproceso, no está plagado de problemas de estado compartido, ¿verdad?
¿O es la inmutabilidad un concepto como OOP que puede usar por completo o no? Excluir los casos en que algo no debe ser inmutable en función del uso/rendimiento, etc.
Me enfrento a esta pregunta cuando escribo una aplicación para mí, que es moderadamente grande (tal vez como líneas de 1-2k).
El estado inmutable es bueno para aplicaciones multiproceso porque es más fácil razonar sobre la corrección del estado inmutable en escenarios multiproceso. ¡Pero TAMBIÉN es más fácil razonar sobre la corrección del estado inmutable en escenarios de un solo hilo! Es simplemente más fácil razonar sobre cosas que no cambian que razonar sobre cosas que sí cambian. –
@Eric: lol. . –