Entradas

Mostrando entradas de marzo, 2017

No dejes que la inmutabilidad te amargue un buen rendimiento

link La inmutabilidad está de moda. Esto da un nuevo vigor a los lenguajes funcionales. Y en muchos lenguajes no funcionales, cada vez se valora más la inmutabilidad. El código es más legible. Esto es importante porque el código se empieza una vez, pero se mantiene durante años. Los problemas son más fáciles de razonar. Es más difícil tener inconsistencias, evitas race-conditions en programación concurrente y esto supone la puerta al paralelismo. Además, es más fácil diseñar correctamente con esta restricción. La inmutabilidad conlleva copias, en ocasiones muchas. Pero los compiladores son listos, muy listos, y son capaces de remplazar una copia por cambio insitu (mutación) sin que el diseño y tu código expresen ni padezcan de mutaciones. Esto es fantástico, ¡¡¡Qué más se puede pedir!!! Pues quizá sí, si el rendimiento te preocupa mucho, quizá te gustaría representar en el diseño que no quieres que se copie. Está bien que el compilador en muchos casos evite la cop