Programar en Linux

Franco Catrin fcatrin en tuxpan.com
Mar Oct 24 19:18:22 CLST 2006


El mar, 24-10-2006 a las 12:09 -0300, Marcos Ramirez escribió:
> On Mon, 2006-10-23 at 23:12 -0300, Franco Catrin wrote:
> > El lun, 23-10-2006 a las 15:59 -0300, Marcos Ramirez escribió:
> > 
> > > Quiza tu estas hablando de Packages y/o Modulos? Si es asi, con
> > > "include" los cargas en el momento de ejecutar el script y
> > > necesariamente deben ser parseados y compilados cada vez que el script
> > > se ejecuta (tanto a traves de mod_php como via cgi).
> > 
> > Eso sospechaba, por lo que tendria el siguiento efecto.. si quiero
> > reutilizar mucho código entonces todo se pondrá lento porque cada vez
> > hay que interpretar mas?
> 
> en estricto rigor "mas lento" si, "lento" (en terminos absolutos), segun
> mi experiencia tendria que ser una cantidad bastante grande de modulos
> los que se carguen; pero por otro lado, una adecuada separacion de
> tareas y scripts reduce el codigo que es necesario cargar cada vez.

Si quizas en PHP las cosas se hacen diferente.  Por ejemplo, en Java los
objetos de mi aplicacion estan representados por un modelo, por lo tanto
mi aplicacion se preocupa de manejar objetos de negocio y no
"funciones", por lo tanto el código de mis objetos de negocio y los
objetos que lo soportan (value objects) son simplemente bibliotecas que
ya estan compiladas y disponibles.  En PHP no se como haria eso sin
evitar que el interprete este cargando esos archivos e interpretandolos
cada vez, quizas me deberia olvidar de la idea y tendria que seguir un
enfoque mas funcional.  


> > otra duda que me surge, como lo haces en PHP para distribuir procesos?
> 
> ¿? distribuir procesos es un metodo, y los metodos se pueden implementar
> en cualquier lenguaje que provea las herramientas para hacer lo que el
> metodo requiere. 

Lo que me refiero a que en una aplicacion no sabes esas cosas a priori,
por lo tanto si puedes hacer cosas a nivel declarativo es algo bastante
valorable.  Si no es a nivel declarativo, tendrias que inventarte un
mecanismo declarativo o simplemente reescribir partes de la aplicacion.

Por ejemplo en Java puedo hacer lo siguiente:

objA.execute();
objB.execute();

Y puedo hacer que objA este en una maquina y objB este en otra, y el
codigo es el mismo.  (java me permite verlo asi, aunque las
implementaciones sean radicalmente diferentes, es como usar un proxy)


> > por ejemplo tienes una parte de tu aplicacion que requiere respuestas
> > rapidas, y otra capa que es de procesamiento intensivo pero que no tiene
> > que ser sincronico necesariamente?
> 
> Como implementas esas capas? SOAP? XML-RPC? Corba? Existen bibliotecas
> para manejar esos protocolos, aunque no es una caracteristica de php asi
> como no es una caracteristica de C/C++, Java u otro lenguaje.

No, pero si de especificaciones como J2EE, y eso es lo que hace que PHP
para mi no sea una opcion.  Por ejemplo puedo hacer una llamada remota
como si fuera local, y la implementacion (CORBA, RMI, SOAP) queda
totalmente oculta.

> 
> >  En esos casos lo que uno hace es que unas maquinas hacen un tipo de tarea 
> > y otra u otras maquinas hacen la otra parte de la tarea? que provee php para eso? 
> 
> Francamente, no veo como esta clase de requerimiento deberia ser una
> caracteristica del lenguaje. O para el caso, alguna razon para que no
> puedas usar las mismas tecnicas que usas con Java.

La diferencia es que en Java son un standard (J2EE) que esta
implementado por varios fabricantes (sun, oracle, bea, jboss/redhat,
etc).

Pero en PHP no tengo eso.  cual es el standard? cual es la
implementacion que debo usar de eso?  tengo que hacerlo yo mismo?
deberia resolverlo yo? pero si yo solo quiero resolver mi problema de
negocio!

-- 
Franco Catrin L.       TUXPAN
http://www.tuxpan.com/fcatrin



Más información sobre la lista de distribución Linux