Actualmente estoy aprendiendo programación funcional en mi tiempo libre con Scala, y tengo una pregunta para principiantes ociosa.Objetos funcionales inmutables en el dominio altamente mutable
Veo la elegancia de tener objetos inmutables al hacer algo como calcular una transformada wavelet de Haar, es decir, cuando los datos que están siendo representados por los objetos no cambian.
Pero vi un blog en el que alguien tenía un pequeño juego como ejemplo cuando demostraba la inmutabilidad. Si un objeto de criatura recibió daño, no cambió su estado: devolvió un nuevo objeto de criatura con los nuevos puntos de golpe y una nueva bandera de "aggro hacia X". Pero si tuviéramos que diseñar algo así como un MMORPG, World of Warcraft dice. Cien jugadores en un campo de batalla ... posiblemente miles de ataques y efectos de hechizo debilitador/debilitador que los afectan de diferentes maneras. ¿Todavía es posible diseñar el sistema con objetos completamente inmutables? Para mí, parecería que habría un enjambre descomunal de nuevas instancias cada 'tic'. Y para obtener la instancia de objetos actualmente válida, todos los clientes tendrían que pasar constantemente por algún tipo de objeto central de "mundo del juego", o?
¿Funciona la escala de programación para esto, o se trata de una "mejor herramienta para el mejor trabajo, probablemente no inmutable aquí"?
Podría publicar un enlace a esa entrada en el blog? –