
C++ vs Java, Python y Ruby.
#1
Posted 29 January 2012 - 01:31 PM
Estoy entre estos 4 lenguajes:
-C++
-Java
-Python
-Ruby
Me gustaría que me lo ordenasen por las siguientes características:
-Más fácil de aprender.
-Más potente.
-Mejor multiplataforma.
-Relación dificultad/resultados.
Y que me diesen su opinión personal.
Saludos y muchas gracias.
#2
Posted 30 January 2012 - 12:31 PM
#3
Posted 30 January 2012 - 12:36 PM
...ahora estoy interesado en aprender programación de lado al escritorio...
Sin dudarlo, Python. Corre en Winbugs, en Linux, en Mac, puedes hacer una aplicación completa y portarla a web sólo cambiándole cuatro líneas, es flexible, no es engorroso...
La única desventaja que le veo es que no está tan difundido como debería.
¿Sabías que el motor de búsqueda de Google está hecho en Python?
#4
Posted 30 January 2012 - 12:49 PM
#5
Posted 30 January 2012 - 01:08 PM



Bueno amigo veras muchas puntos de vistas escoje el que mas te convenga y es como dice el TiammatMX
Sin dudarlo, Python. Corre en Winbugs, en Linux, en Mac,
Python

#6
Posted 30 January 2012 - 01:15 PM
#7
Posted 30 January 2012 - 02:03 PM

#8
Posted 30 January 2012 - 02:44 PM
#9
Posted 30 January 2012 - 02:50 PM
Pero, he odio que python es fácil y eficiente, pero por ejemplo Java o C++ si lo conoces en profundida puedes hacer cosas más potentes y por ejemplo C++ como ha influenciado ha muchos lenguajes te resulta más fácil aprender nuevos.
Lo que has oído o leído es cierto. C es un lenguaje tan potente que es el usado para escribir la mayoría de los núcleos de los S.O. modermos. C++ es su extensión a POO. C/C++ es multiplataforma en su concepto, aunque a la hora de la práctica dependen del sistema en el que corran pues es un lenguaje compilado.
Saber C/C++ te abrirá muchas puertas, como la de Java con una filosofía y sintaxis muy similar. Este si que es un lenguaje multiplataforma pues no es un lenguaje compilado 100% sino interpretado en la Maquina Virtual Java. Esta misma característica la compartes otros lenguajes interpretados, pero con esto se pierde eficiencia y rendimiento.
La decisión dependerá de que tipo de aplicaciones quieres escribir, que prima en ellas y tus gustos personales y proyectos futuros de aprendizaje.
Lee un poquito de cada lenguaje y sabrás cual es el que mas te interesa.
Saludos.
#10
Posted 30 January 2012 - 02:55 PM
web2py: http://www.web2py.co...s/default/index
y me quedo con las ganas, por que tiene buena pinta.
#12
Posted 30 January 2012 - 03:03 PM
... y ahora estoy interesado en aprender programación de lado al escritorio.
No se por que no se puso en la lista a Delphi o Lazarus (del lado del escritorio ?????).
Me gustaría que me lo ordenasen por las siguientes características:
-Más fácil de aprender. = Delphi
-Más potente. = (muy potente)
-Mejor multiplataforma. = (pascal (lazarus)
-Relación dificultad/resultados. = 1/10
Saludos
#13
Posted 30 January 2012 - 03:38 PM
No se por que no se puso en la lista a Delphi o Lazarus (del lado del escritorio ?????).
Si, Caral tiene toda la razón, echaba de menos una intervención como la suya, y además, esta es una Comunidad muy de delphi...


Saludos.
#14
Posted 31 January 2012 - 10:07 AM
Tradicionalmente las aplicaciones de escritorio se escriben en C++ porque tienes acceso a los API nativos del sistema operativo. Bibliotecas como MFC, WinSock, Com, entre otras de Windows es lo más eficiente que puedes hacer en Windows.
Ahora, formar un programador C++ lleva mucho tiempo. Tanto C como C++ tienen el detalle de que si no sabes bien lo que está pasando los resultados pueden ser catastróficos.
Entonces acá el único de tus indicadores que está alto es "Potente".
Cuando combinamos C++ con Qt entonces agregamos portabilidad y cierta facilidad de uso. Pero aún así no nos escapamos a los 2 o 3 años mínimo para entrenar un buen programador C++.
Java no va al desktop. Descartado (y fijate que es mi especialidad pero su poder está del lado del servidor)
Ruby no es algo que comúnmente veas en aplicaciones de escritorio. Es más popular en aplicaciones Web debido al popular framework "Ruby on rails".
Delphi es fácil de usar, poderoso, relativamente fácil de aprender. El asunto acá es que si usas delphi el de embarcadero entonces estás atado a la VCL y sus componentes (muy buenos por cierto). Pero eso te resta portabilidad. Entonces está la alternativa Lazarus que es mucho más portable pero el IDE aún es inferior al de delphi. Pon en una balanza puesto que también está el detalle que lazarus es open source mientras delphi es un producto propietario.
Otra opción es Python. Está diseñado para que tu código luzca bien, sea entendible y sea fácil de mantener. Desde Python puedes usar bibliotecas gráficas como Qt que es multiplataforma y de muy buen desempeño. De verdad que lo consiedero una muy buena combinación. También está wxWidgets aunque es criticada por tener un API difícil de usar que emula MFC en ciertos aspectos. Otra es GTK+ que va muy bien en Linux puesto que es la más utilizada en ese SO. También ofrece versión para Windows y Mac así que no tendrías problemas en portar tu aplicación.
Algo a tomar en cuenta con Python es que no ofrece tan buen rendimiento como C++ o Java o Pascal. Fijate en estas pruebas de rendimiento http://bit.ly/zQrxfP. Y tu aplicación deberá de alguna manera distribuir el intérprete de Python tal como aplicaciones en Java deben distribuir la JVM.
#15
Posted 31 January 2012 - 10:20 AM
Saber C/C++ te abrirá muchas puertas, como la de Java con una filosofía y sintaxis muy similar. Este si que es un lenguaje multiplataforma pues no es un lenguaje compilado 100% sino interpretado en la Maquina Virtual Java. Esta misma característica la compartes otros lenguajes interpretados, pero con esto se pierde eficiencia y rendimiento.
Falso
La máquina virtual Java utiliza un compilador que transforma los bytecode de nuestra app en código nativo para el procesador donde corre.
Tiene dos modos de ejecución: cliente y servidor.
El modo cliente arranca interpretando mientras el JIT (Just in time compiler) va compilando el bytecode a código nativo según vaya viendo que es necesario. Esto lo hace para permitir que la aplicación arranque más rápido. Eventualmente toda la applicación termina siendo compilada a código nativo.
El modo servidor en el arranque compila todo el bytecode a código nativo y luego lo deja correr. La idea es que las aplicaciones del lado del servidor pueden tardar en arrancar pero una vez en ejecución deben ser lo más rápidas posible.
Esto mismo lo hace .NET/Mono y ahora los intérpretes de Javascript en los navegadores populares.
#16
Posted 31 January 2012 - 11:08 AM
Falso
No tan falso, tu lo has dicho...
En cualquiera de los dos casos la compilación inicial no es al 100% e de una o de la otra forma (interpretando en tiempo de ejecución o previa a esta) el rendimiento se merma de alguna forma, bien mientras ejecuta o en una demora en la carga de la aplicación.
Y saber C/C++ es una gran ayuda para introducirse en Java.
Saludos.
#17
Posted 31 January 2012 - 12:38 PM
No tan falso, tu lo has dicho...
En cualquiera de los dos casos la compilación inicial no es al 100% e de una o de la otra forma (interpretando en tiempo de ejecución o previa a esta) el rendimiento se merma de alguna forma, bien mientras ejecuta o en una demora en la carga de la aplicación.
Y saber C/C++ es una gran ayuda para introducirse en Java.
Saludos.
Eso sí. Tarda en arrancar. Es por eso que no me parece una opción para aplicaciones de escritorio.
Pero del lado del servidor una vez que está corriendo es muy pero muy rápido.
Btw, yo recomiendo iniciarse en Java directo. La experiencia con C++ sólo ayuda en una parte de la sintaxis. Pero la parte de clases y objetos es muy pero muy diferente.
#18
Posted 31 January 2012 - 12:44 PM
Saludos.
#19
Posted 31 January 2012 - 01:06 PM
flash-back tambien te quiero informar que ya puedes colocar tu avatar.
#20
Posted 31 January 2012 - 01:09 PM
Saludos.