Estaba leyendo un artículo en ibm.com/developerworks (no se puede encontrar el artículo ahora) sobre el desarrollo de software escalable para la nube.OOP y escalabilidad
Por supuesto, la idea principal fue apátrida. Ya nada debería contener el estado y esto se hizo al no tener más datos de miembros. Cada método debe obtener su fecha mediante argumentos que se le pasen.
Un ejemplo fue algo así como:
class NonScalableCircle {
int radius;
void setRadius(int radius){
this.radius = radius;
}
public integer getDiameter() {
return 2*radius;
}
}
La explicación de por qué esto no era escalable era porque hay que establecer el radio primero y luego llamar al diámetro. Entonces, hay un orden para que funcione porque los métodos funcionan con los mismos datos.
El ejemplo era escalable:
class ScalableCircle {
public integer getDiameter(int radius) {
return 2*radius;
}
}
Y por supuesto que es verdad. Escalas sin estado mucho mejor. Dado esto y el hecho de que OBJECT = datos + comportamiento, mis preguntas son:
¿OOP simplemente no es bueno para aplicaciones altamente concurrentes? ¿OOP va a morir y será reemplazado por Programación Procesal?
Porque, tal como está ahora, muchos desarrolladores usan el Modelo de Dominio Anemic y codifican la lógica de los servicios. No hay mucho OOP hecho realmente.
"No, no puedes hacer procedimientos y es muy concurrente". WTF? Esto no tiene sentido. La gran mayoría de los softwares altamente concurrentes en existencia son de procedimiento, y la vasta gran mayoría de software altamente paralelo en existencia es de procedimiento. En _principle_, funcional da ventajas de esta manera, como la gente ha estado señalando durante 25 años, pero decir algo más fuerte que eso está completamente fuera de contacto con la realidad. –
@JonathonDursi su derecha, la declaración era demasiado fuerte. Lo ajusté y lo reduje significativamente. Quise decir que es difícil hacer una concurrencia alta de una manera procesal. También depende de qué nivel de concurrencia/paralelismo hablemos, si es 10 o 1000. – Raynos
Lo suficiente. Pero es difícil hacer altos niveles de concurrencia de cualquier manera :) –