Encuesta: ¿Cuál es vuestro lenguaje de programación favorito?

Iniciado por RockPosts, 10 Septiembre 2015, 03:45 AM

0 Miembros y 1 Visitante están viendo este tema.

Orubatosu

Cita de: Mario Núñez en 27 Septiembre 2015, 18:18 PM
dificil desion, me encanta la programacion y uso todos los que puedo he incluso los convino  :xD, pero si tengo que elegir uno ese es phiton, es mas sencillo que c++ y hace todo lo que hace c++, y ademas se puede programar software para linux, windows y mac alternativamente

Supongo que hablas de Python

Y no creo que haga lo mismo que C++. ¿Puede compilarse?

No, pues ya tenemos una cosa  ;-)
"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998

#!drvy

Cita de: Orubatosu en 28 Septiembre 2015, 23:26 PMY no creo que haga lo mismo que C++. ¿Puede compilarse?

Casi todos los lenguajes interpretados se pueden compilar.. al fin y al cabo "se compilan" al ser interpretados :P

http://effbot.org/zone/python-compile.htm

Saludos

MCKSys Argentina

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


Eleкtro

#23
Cita de: Mario Núñez en 27 Septiembre 2015, 18:18 PMsi tengo que elegir uno ese es phiton, es mas sencillo que c++ y hace todo lo que hace c++, y ademas se puede programar software para linux, windows y mac alternativamente

Cita de: Orubatosu en 28 Septiembre 2015, 23:26 PMno creo que haga lo mismo que C++

Lo acertado habría sido decir que en Python lo puedes hacer de manera más sencilla o reducida ya que es un lenguaje que proporciona una experiencia guiada de programación más amistosa gracias a una extensa librería de miembros (aunque no es nada comparable al gigantesco .Net Framework, dicho sea de paso).

C++ está un paso intermedio más cerca del low-level de lo que está el alejado high-level de Python, esto quiere decir que Python proporciona mayor abstracción que C++ y eso podría incapacitar a Python para ciertas tareas, sin ir más lejos, para el acceso completo a la memoria y por ende su manipulación directa (los llamados punteros);
sin embargo, no todo son ventajas en C++, al menos para los programadores que dependemos de ciertas comodidades que solo encontraremos en lenguajes de más alto nivel, cómo por ejemplo C#, o equitativamente hablando el higher-level Python en tu caso.




Cita de: Orubatosu en 28 Septiembre 2015, 23:26 PMPython

¿Puede compilarse?

No

Cita de: #!drvy en 29 Septiembre 2015, 01:05 AMCasi todos los lenguajes interpretados se pueden compilar.. al fin y al cabo "se compilan" al ser interpretados

http://effbot.org/zone/python-compile.htm

En realidad el compañero @Drvy está en lo cierto, pero te dió una respuesta "con trampa" :P.

@Orubatosu, si tenemos en cuenta que por "compilar" comunmente siempre nos estaremos refiriendo al procedimiento de convertir un lenguaje (el del source-code) a otro lenguaje (object-code) para construir un archivo executable, entonces llevas toda la razón, Python no hace esto.

Lo que ocurre es que durante el proceso de "interpretación", en realidad primero el código fuente es convertido a byte-code, es decir, el código se compila, ya que Python y los lenguajes de scripting en general tienen un compiler "oculto" y un intérprete o máquina virtual, y el intérprete de Python (qué por algo se llama así) se va deteniendo en cada instrucción para evaluar la siguiente y "obtener un resultado", basicamente el código se parsea, se procesan las instrucciones directamente, "al vuelo", y debido a esto, y ya que hablé anteriormente sobre el tema, Python, al necesitar un "intérprete" de este tipo, es más lento que C++. (he tenido que repasarme un poquito los internals de Python, ya que para cada lenguaje puede haber pequeñas diferencias)

Por ende, podemos afirmar que un lenguaje interpretado no se puede compilar, punto y final, por que cuando nos referimos a esto nos estamos refiriendo a generar un executable que contenga instrucciones en lenguaje machine-code/byte-code, no nos tenemos que volver tecnicistas y entrar en todo lujo de detalles que diferencian los aspectos más internos y triviales del concepto VM/intérprete/compiler (¡ni que yo supiera los detalles a la perfección, no soy ningún experto de los aspectos más internos y fundamentales, me puedo equivocar en algo!), pero entrando en algo más de detalle, podriamos decir que un lenguaje no se puede definir cómo interpretado o compilado, ya que un lenguaje es solo un lenguaje, y un lenguaje de scripting hoy en día se puede compilar, pero esto sucede automáticamente y por fines de optimización/rendimiento, por ende, lo que no podemos hacer es compilarlo a nuestro antojo para el fin más común, generar un executable.

A lo que realmente se refiere el enlace que compartió @Drvy, es a empacar, usando un packer, o podemos llamarlo sencillamente un "convertidor de script a executable", es un tipo de herramienta que lo que hace es combinar en un único archivo extraible (SFX) el script.py, el intérprete (py.exe), y dependencias críticas para su ejecución (python27.dll, módulos, etc), luego, una vez que se ejecuta el archivo "compilado", el contenido empacado automáticamente se extrae a una carpeta temporal y seguidamente se inicia el intérprete (py.exe) pasándole como argumento el script y opcionalmente argumentos adicionales de éste.
Eso no es compilar, el código fuente de Python o del lenguaje de scripting que sea no se convirtió durante el procedimiento, sigue habiendo un archivo local script.py que al fin y al cabo se debe "interpretar" con la ayuda del buen llamado "intérprete".

Nota: Cada "packer" puede tener una lógica diferente, claro está.

Saludos!








Orubatosu

Hombre, es la diferencia fundamental.

Un lenguaje, incluso en "byte-code" como pueda ser Java requiere un "interprete" para su ejecución, en ese sentido C++ no lo requiere, se puede ejecutar directamente sin mediación de otros.

Es como decir que "Visual Basic compila", si "pero"... con sus librerías para ejecutarlo.

No obstante hay otra cuestión.

En C++ puedes hacer modulos para Phyton. ¿Puedes hacer lo contrario?  :laugh:

Ojo, no digo que uno sea mejor que otro, cada lenguaje tiene su uso y su campo de aplicación
"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998

Mad Antrax

Actualmente mi lenguaje favorito es VBS, lo utilizo a diario en mi trabajo para automatizar tareas, realizar backups, monitorizar recursos, actualizar tablas en SQL, mandar e-mails automáticos....

Una joya de lenguaje, a ver si tengo tiempo y doy el salto a PowerShell.
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

MCKSys Argentina

Cita de: Orubatosu en 29 Septiembre 2015, 11:23 AM
Un lenguaje, incluso en "byte-code" como pueda ser Java requiere un "interprete" para su ejecución, en ese sentido C++ no lo requiere, se puede ejecutar directamente sin mediación de otros.

La VM es necesaria para abstraerse del OS. Me gustaría ver que hicieras un ejecutable en C++, compilado a "nativo" y que corra en W$, Linux y Mac (por nombrar 3).

Cita de: Orubatosu en 29 Septiembre 2015, 11:23 AM
Es como decir que "Visual Basic compila", si "pero"... con sus librerías para ejecutarlo.

Pero eso se puede cambiar fácilmente: [TUTORIAL] Insertando la VM de VB6 en un EXE  ;D ;D

Cita de: Orubatosu en 29 Septiembre 2015, 11:23 AM
En C++ puedes hacer modulos para Phyton. ¿Puedes hacer lo contrario?  :laugh:

En python muestras un mensaje por consola, para cualquier OS que tenga la VM, en 1 sola línea. Puedes hacer eso en C++?  :laugh:

Cita de: Orubatosu en 29 Septiembre 2015, 11:23 AM
Ojo, no digo que uno sea mejor que otro, cada lenguaje tiene su uso y su campo de aplicación

Exacto.  ;)

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


MinusFour

Cita de: Orubatosu en 29 Septiembre 2015, 11:23 AM
Hombre, es la diferencia fundamental.

Un lenguaje, incluso en "byte-code" como pueda ser Java requiere un "interprete" para su ejecución, en ese sentido C++ no lo requiere, se puede ejecutar directamente sin mediación de otros.

El compilador de C++ tecnicamente solo traduce el programa a Object Code. Es el linker el que le da el formato de ejecutable, una vez que haya linkeado todas las dependencias. Y no es necesario que se produzca un ejecutable para que el código sea compilado. V8 de Google Chrome, compila javascript a código nativo y no genera un ejecutable.

Cita de: Orubatosu en 29 Septiembre 2015, 11:23 AM
En C++ puedes hacer modulos para Phyton. ¿Puedes hacer lo contrario?  :laugh:

Con un transpilador de Python a C++ si puedes.

Cita de: Eleкtro en 29 Septiembre 2015, 05:01 AMPor ende, podemos afirmar que un lenguaje interpretado no se puede compilar, punto y final

Los compiladores e interpretes son implementaciones del lenguaje, el lenguaje en sí no debería ser caracterizado por compilado o interpretado a menos que los detalles del lenguaje no permitan que sea uno o lo otro. Si la maquina virtual compila el código primero y luego lo interpreta, entonces la implementación del lenguaje incluye los dos, compilado e interpretado.

seba123neo

En este momento Java para aplicaciones Android, y VB.NET, antes el VB6.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson