Programación en 3 capas ¿Qué me recomiendan... PERL o C? Please, ayudenme a encontrar el NORTE

Horst von Brand vonbrand en inf.utfsm.cl
Mie Ago 24 16:57:35 CLT 2005


Andrés Ruz Salinas <andres en efusion.tv> wrote:
> 	Estoy empezando a desarrollar aplicaciones en 3 capas bajo Linux y
> he visto algo de información sobre el tema. Estoy analizando si usar PERL o
> C como capa intermedia (o de proceso) pero estoy topando en que no he visto
> mucha información sobre su uso. 

Je.

> 	Lo que he probado es PERL dentro de PHP como una especie de
> componente o modulo de tal forma que le paso parámetros al archivo PERL y lo
> ejecuto dentro del mismo PHP con la función ''exec("línea de comando(s)",
> variable de salida)'' y en la "variable de salida" parseo el resultado que
> me entrega el modulo PERL y de esta forma termino mostrando los datos
> resultantes con el mismo PHP, lo que me deja intranquilo por que no se si
> estoy usando de buena forma las 3 capas.

No veo que tenga mucho sentido eso, PHP es (casi-casi) Perl. Mejor que
andar mezclando lenguajes (eso tarde o temprano sale caro), quedarse con
uno.

[...]

> 	Por otro lado estoy viendo la posibilidad de usar C por que pienso
> que este lenguaje me debería dar mejores resultados ya que los archivos ya
> están compilados y sólo deberían ser ejecutado con lo que pienso que el
> rendimiento aumenta pero no sé si será mucha la diferencia pensando que las
> máquinas de hoy son muy rápidas y el "compilar en tiempo de ejecución para
> ejecutar"(PERL) o "ejecutar sin compilar"(C) se note demasiado al momento de
> usarlos.

C es mas eficiente, pero mucho (mucho!) mas caro de producir. Salvo que
puedas demostrarme que el cuello de botella esta en la capa que quieres
implementar en C, no te la compro. Y si el cuello de botella esta alli,
corre la famosisima regla del 95-5: 95% del tiempo se va en 5% del
codigo. Metele mano a ese 5% (incluso implementa exactamente /eso/ en C). Y
recuerda que las estimaciones de cual es ese 5% generalmente no tienen
ningun punto de encuentro con la realidad, /mide/ antes de hacer nada. Eso
en caso que determines que modificar para eficiencia sale mas barato (en
desarrollo y mantencion futura!) que simplemente comprar un tarro mas
grande...

Notese que he visto aumentos impresionantes de rendimiento via reorganizar
la base de datos (agregar indices, ...) e incluso reorganizar consultas.
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513


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