Foros del Web » Programando para Internet » Python »

django + python se compila

Estas en el tema de django + python se compila en el foro de Python en Foros del Web. estuve viendo que genera dos archivos por ejemplo el __init__.py y __init__.pyc por lo que me hace pensar que compila como lo hace .net si ...
  #1 (permalink)  
Antiguo 19/08/2012, 14:41
 
Fecha de Ingreso: diciembre-2011
Mensajes: 408
Antigüedad: 12 años, 3 meses
Puntos: 18
django + python se compila

estuve viendo que genera dos archivos por ejemplo el __init__.py y __init__.pyc por lo que me hace pensar que compila como lo hace .net si es asi python y django esta mucho mas alto que java o c# porque compila y que yo entienda los un codigo compilado va mas rapido que un codigo interpretato vease php por ejemplo
  #2 (permalink)  
Antiguo 19/08/2012, 15:18
Avatar de jhg
jhg
 
Fecha de Ingreso: marzo-2012
Mensajes: 96
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: django + python se compila

Menudo lío te has hecho tu solo...

Respuesta rápida:
NO compila, el .pyc es un archivo de código byte o también conocido por su nombre en ingles bytecode. Si, es más rapido que PHP, sobre Java hay que decir que esta técnica es común a ambos solo que Java le pone nombres más pomposos como "maquina virtual java" y python nombres más reales como "interprete". No, lenguajes como C, C++ o ensamblador son más rapidos porser compilados o ensamblados en caso de ensamblador.
__________________
JHG
  #3 (permalink)  
Antiguo 19/08/2012, 20:52
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: django + python se compila

1.- Python es un lenguaje interpretado. Interpreta codigo escrito en python o código en byte-code de python. Lo único que hace el *.pyc es general byte-codigo optimizado para después ser interpretado. Pero nunca ocurre tal proceso de compilación.

2.- Java es un lenguaje que esta entre un limbo aquí la explicación de porque. Sucede que una vez que tienes tu código en java escrito, este código pasa a ser compilado a byte-code (una especia de código maquina) y este byte code corre en una maquina virtual (jvm).

3.- C# es diferente este lenguaje si es compilado 100%. Pero pasa por varios procesos. De manera menos detallada sigue este proceso. El código de C# pasa a un lenguaje intermedio (CIL common intermediate language) y después ese código intermedio pasa a código maquina que puede ser interpretado directamente por la maquina.

En conclusión:
Python es un lenguaje interpretado.
Java es un lenguaje compilado e interpretado por una maquina virtual.
C# es un lenguaje compilado.
  #4 (permalink)  
Antiguo 20/08/2012, 01:53
Avatar de jhg
jhg
 
Fecha de Ingreso: marzo-2012
Mensajes: 96
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: django + python se compila

Cita:
Iniciado por razpeitia Ver Mensaje
Python es un lenguaje interpretado.
Java es un lenguaje compilado e interpretado por una maquina virtual.
Dejando de lado lo bonito que queda el termino de maquna virtual java, ¿generar un byte-code optimizado e interpretarlo, y compilar a un byte-code y ejeutarlo no viene a ser lo mismo? Porque si de compilar byte-code se trata Python tiene una función para compilar a byte-code scripts, creo que se llama compile precisamente la función si no recuerdo mál. Y una maquina virtual java o un interprete que abstrae del sistema operativo ¿no cumplen las mismas funciones? Si conoces la diferencia entre el tema este de maquina virtual e interprete, generar byte-code o compilar byte-code, te lo agradeceria.
__________________
JHG
  #5 (permalink)  
Antiguo 20/08/2012, 11:04
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: django + python se compila

Cita:
Iniciado por jhg Ver Mensaje
¿generar un byte-code optimizado e interpretarlo, y compilar a un byte-code y ejeutarlo no viene a ser lo mismo?
Si, es básicamente lo mismo.

Cita:
Iniciado por jhg Ver Mensaje
Porque si de compilar byte-code se trata Python tiene una función para compilar a byte-code scripts, creo que se llama compile precisamente la función si no recuerdo mál. Y una maquina virtual java o un interprete que abstrae del sistema operativo ¿no cumplen las mismas funciones?
Si, si cumplen las mismas funciones.

Esto es por que no existe diferencia técnica entre una maquina virtual y un interprete.

En mi época de estudiante resolver este problema me ayudo a comprender un poco como funcionan las computadoras.
  #6 (permalink)  
Antiguo 25/08/2012, 19:46
Avatar de jhg
jhg
 
Fecha de Ingreso: marzo-2012
Mensajes: 96
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: django + python se compila

Cita:
Iniciado por razpeitia Ver Mensaje
Esto es por que no existe diferencia técnica entre una maquina virtual y un interprete.
Entiendo que con esto te refieres principalmente a casos como la maquina virtual java y el interprete python.

Temas ya de virtualización real estilo virtual box, etc; ¿tambien estan ncluidos n esa afirmación y son como interpretes? lo digo como hay implementación de virtualización por hardware en la que se apoya el software, extensión del hardware a la maquina virtual huesped, etc; reparto de capacidades fisicas entre entornos virtualizados, y demás complejidades, jejeje.

Y gracias por la explicación.

Cita:
Iniciado por razpeitia Ver Mensaje
Si, es básicamente lo mismo.
Si, si cumplen las mismas funciones.
Resumiendo... los de Java se fueron por las ramas y a un interprete le complicaron el nombre por hacerlo más pomposo, bonito, etc. Sin comentarios... hay cosas que me parecen exageradas, mañana inventare una rueda y la llamare adeur, jajajaja.
__________________
JHG
  #7 (permalink)  
Antiguo 26/08/2012, 22:20
 
Fecha de Ingreso: diciembre-2011
Mensajes: 408
Antigüedad: 12 años, 3 meses
Puntos: 18
Respuesta: django + python se compila

entoces si compila, es que veo que es una velocidad enorme django detecta cuando editas el archivo y cuando cambia de peso entonces genera el compilado barbaro
  #8 (permalink)  
Antiguo 29/08/2012, 01:22
Avatar de jhg
jhg
 
Fecha de Ingreso: marzo-2012
Mensajes: 96
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: django + python se compila

Cita:
Iniciado por minimal Ver Mensaje
entoces si compila, es que veo que es una velocidad enorme django detecta cuando editas el archivo y cuando cambia de peso entonces genera el compilado barbaro
¡¿No has leido nada?!

NO COMPILA PORQUE ES INTERPRETADO GENERA UN BYTECODE QUE ES UN ARCHIVO OPTIMIZADO PARA QUE EL INTERPRETE LO INTERPRETE MAS RAPIDO Y UNA MAQUNA VIRTUAL DE JAVA VIENE A SER LO MISMO QUE UN INTERPRETE

Es cmprensible que la parte de teoria les aburra a algunos pero LEANSELA es necesario para entender los distintos funcionamientos y la diferencia de lenguaje compilado (genera un codigo maquina final que es directamente ejecutable por la maquina fisica) y uno interpretado (en tiempo de ejecucion un programa lo lee y realiza las acciones que sean oportunas en su lugar, lo interpreta).

Las maquinas virtuales son meros interpretes pero con nombres mas pijos, pomposos, chorras. Ya cuando se trata con verdaderas maquinas virtuales tipo virtual box etc se entra en otro campo que es el de la virtualización diferente del de los lenguajes de programación.
__________________
JHG
  #9 (permalink)  
Antiguo 29/08/2012, 07:48
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: django + python se compila

A ver, ¿cómo que no compila? ¿y cómo llamas al proceso de convertir código fuente a bytecode?
Cita:
A compiler is a computer program (or set of programs) that transforms source code written in a programming language (the source language) into another computer language (the target language, often having a binary form known as object code)
Fuente: http://en.wikipedia.org/wiki/Compiler

Compilar no es solamente convertir a código nativo ejecutable por el procesador. Lo que hacen Python, Java e incluso los aceleradores de PHP sí es compilar.
  #10 (permalink)  
Antiguo 29/08/2012, 10:11
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: django + python se compila

Como corolario de este tema:
Python compila a byte-code que después es interpretado por (vaya la redundancia) un interprete y no directamente por la maquina. Por lo tanto no lo hace mas rápido que C, C++, C# u otros lenguajes compilados a código maquina.
  #11 (permalink)  
Antiguo 01/09/2012, 10:37
Avatar de jhg
jhg
 
Fecha de Ingreso: marzo-2012
Mensajes: 96
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: django + python se compila

Añadir solo que, también Python admite la compilación en tiempo de ejecución (como Java, que el byte code lo pasa a codigo maquina en tiempo de ejecución), hay proyectos encargandose de ee aspecto como Pypy, gana mucho (mucho mas aun) en velocidad por lo que dicen las estadisticas que presentan.
__________________
JHG

Etiquetas: compila, django
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:25.