Hola a todos. Hace mucho que quiero escribir este mensaje pero la
verdad no me animaba pues me va a costar mucho explicarme. Lo
intentaré de todas formas
Estoy trabajando en un proyecto personal cuyo contexto es el
desarrollo de aplicaciones web en donde el usuario escribe su
aplicación en su lenguaje orientado a objetos de escritorio preferido
(java, python, smalltalk, igual da) y un traductor genera el código
javascript, html y css necesario para representar la aplicación en
forma web.
Como pasa con todos los traductores, hay formas, conceptos o tecnicas
que no son naturalmetne traducibles. En mi caso el problema es con los
mensajes a objetos remotos, es decir qué ofrecerle al usuario para el
envío de mensajes a objetos remotos de forma tal que le sea lo más
natural posible.
El problema es que, en un LOO como java o smalltalk, el envío de
mensajes a objetos es hace síncronamente: el emisor se conjela hasta
que el receptor responde. De esta forma los "programadores de
escritorio" asumimos que la respuesta forma parte del mensaje (o al
menos esto me pasa a mi).
Los mensjaes sincronos no son viables en el ámbito de la comunicación
cliente servidor, por lo que debo analizar cuál es la forma más
natural de exponer el problema al usuario.
Entonces mi primera pregunta sería medio teorica y es: ¿forma la
respuesta parte del mensaje?(sinc) ¿o la respuesta en sí es un
segundo mensaje?(asinc)
Y mi segunda pregunta es más bien sobre la sintaxis. Los mensajes
sincronos toman como síntaxis : "respuesta := objeto mensaje
parametros", pero para los mensajes asíncronos ya no sería tan
tribial. Todas las soluciones que se me han ocurrido implican al menos
dos elementos nuevos que intervienen en el envío de un mensaje: 1)
notificación de la respuesta y 2) la identificación explícita de
mensajes.
Por último al acostumbrarnos a trabajar con mensajes asíncronos (por
ejemplo ajax o invocación a WS) nos damos cuenta de que la forma de
pensar en los objetos cambia, el código se espaguetiza más (el órden
de las sentencias no se respeta al enviar un mensaje; el control salta
a un handler para notificar una respuesta). Me gustaría saber cuál es
la experiencia de los demás en estas situaciones, y si alguien conoce
alternativas de síntaxis para "aliviar" este cambio.
Un saludo. Espero se halla entendido el problema. Cualquier sugerencia
o lectura sobre el tema es bienvenida. Gracias por la paciencia ;)