On Sunday 01 February 2009 10:46:37 pm Eiger Mora Moredo wrote:
> Luis:
>
>
> El lenguaje con que está implementado el sistema si determina en la
> velocidad de respuesta del servidor, pues lo que deba hacerse, incluso el
> acceso a la DB son instrucciones escritas en un determinado lenguaje, y si
> este lenguaje es más lento en la ejecución de intrucciones, más tardará el
> servidor en dar la respuesta(por supuesto, no te quito razón, en este
> proceso hay pasos comunes que son independientes del lenguaje).

No, en un programa limitado por la entrada/salida (I/O Bound), por definicion, 
el lenguaje (o la CPU) no _determina_ la velocidad de respuesta.

Sigueme un momento. Un ejemplo de programa limitado por la entrada/salida:

  * recibir el pedido por el canal: 1 segundo
  * preprocesamiento en lenguaje X: 3 milisegundos
  * pasarselo a la BD para que de la respuesta: 2 milisegundos
  * esperar por la BD: 2 segundos
  * post procesar los resultados: 2 milisegundos.
  * transmitir la pagina de vuelta: 10 segundos. [en Cuba al menos]

[Los numeros me los acabo de inventar]
El cambio del lenguaje de programacion lo que quita afecta son a esos 7 
hipoteticos milisegundos. Esa es la definicion de un programa I/O-Bound. A no 
ser que python sea cien veces mas lento que el php, la diferencia es 
imperceptible (y si se juega bien con las API, es nula).

Ahora, si el problema fuera "leer los datos, hacer un monton de computos con 
los datos, devolver el resultado", claro esta que la parte de hacer el monton 
de computos determinara la velocidad de ejecucion (y el acceso a los 
dispositivos ya no sera tan importante).

Nuevamente, agarra el servidor mas cargado que tengas a mano, y haz un htop. 
Mira el uso de la CPU: a no ser que sea un servidor de un cluster para 
calculos, la CPU va a estar casi libre.

Los terminos IO-Bound y CPU-Bound no me los invente yo. Hay bastante 
literatura al respecto (especialmente en el tema del disenno de 
planificadores [schedulers] para sistemas operativos).

> Con respecto a la expresión "se conoce", deja una aparente confianza en la
> velocidad del desarrollo pero no indica que sea el óptimo para el sistema a
> implimentar, por tanto de debería migrar de lenguaje.
>
> Ej: Conocemos Python, pero deseamos hacer algo "bastante cercano al Hard"
> solución: Todo con Python(NO), en ese caso se debería utilizar algo como C,
> pero programar todo en C que además no conocemos es algo complicado y
> lento, entonces hacemos una parte en C(lib) y luego seguimos la interfaz
> con Python importando las libs de C...

??En que momento dije que "se conoce" era el unico factor relevante? Tu 
dijiste que no habia que tenerlo en cuenta, yo dije que estaba en desacuerdo 
con no tenerlo en cuenta, pero /no dije/ que era el unico factor ni que 
python habia que usarlo para todo:

===
Conocer el lenguaje, la plataforma, las formas de pensamiento y trabajo en el 
sistema es muy importante. Si tu equipo de trabajo no conoce python, 

--> tendras que tener en cuenta el costo de entrenarlos para eso. ??Vale la 
pena? Otra vez, a responder de acuerdo al problema, <---

pero el factor "que lenguaje se conoce" es importante en la decision.
===

(Puse marcas ---> <--- para que se viera bien que ni siquiera insinue que era 
el unico factor)

Cya,

P.S: Por favor, si vas a responder inline, no hagas top posting.
P.S.S: Esto es ya offtopic. Si fueramos a continuar, creo que seria mejor 
hacerlo en linux-prog.

-- 
Luis Zarrabeitia (aka Kyrie)
Fac. de Matemática y Computación, UH.
http://profesores.matcom.uh.cu/~kyrie
_______________________________________________
Cancelar suscripción
https://listas.softwarelibre.cu/mailman/listinfo/linux-l
Buscar en el archivo
http://listas.softwarelibre.cu/buscar/linux-l

Responder a