Curso de Programación Paso a Paso [Java]

Mensajes
49
Reacciones
60
Puntos
0
Buenas a todos, no me gusta hacer spam, pero como creo que este tema lleva mas de 3 años parados y os puede interesar pues os lo comento.

Si queréis seguir aprendiendo Java tengo un canal de youtube donde podéis tener la oportunidad de aprenderlo, trata todas las lecciones de aquí y muchísimas mas (actualmente la parte de Java tiene un total de 40 videos publicados...), aquí podéis ver la lista de reproducción con todos los vídeos, mi consejo es empezar en orden por el primero!!

https://www.youtube.com/playlist?list=PLw8RQJQ8K1yQDqPyDRzt-h8YlBj96OwMP

Aqui el primer video:

Para aquel que quiera aprender C tambien (yo siempre recomiendo aprender C como primer lenguaje, aunque esto es muy subjetivo) hay otra lista de reproduccion de C con 43 videos:

https://www.youtube.com/playlist?list=PLw8RQJQ8K1ySN6bVHYEpDoh-CKVkL_uOF

Un saludo y feliz año a todos!!
 

Link~.

Elite Member
Mensajes
1.049
Reacciones
324
Puntos
656
@felomeno una pregunta, en qué características crees que sería mejor escojer a Java sobre C++ y viceversa?

Me gustaría saber tu opinión.
 
Mensajes
49
Reacciones
60
Puntos
0
@felomeno una pregunta, en qué características crees que sería mejor escojer a Java sobre C++ y viceversa?

Me gustaría saber tu opinión.
Bueno, te contesto yo si quieres...

C++:
C++ es un lenguaje orientado a aplicaciones de escritorio fundamentalmente, es decir, los programas que usas en tu PC cotidianamente, como puede ser un juego cualquiera o grandes programas como Photoshop, AutoCAD o cualquier programa grande mas o menos serio. ¿Por que se usa C++ para estas cosas? Tienes que tener en cuenta que C++ es un lenguaje que se ejecuta en tu PC de forma nativa, por lo que es MUY eficiente, así que todo aquello que requiera gran eficiencia suele usar C++ (de ahi que los juegos 3D y tal estén hechos en C++, tanto en PC como en consolas).

¿Y por que no se hace TODO en C++ si es lo mas eficiente? Parecería lo mas normal hacerlo así, pero lo cierto es que cada día se usa menos C++ y el por que es muy simple, desarrollar en C++ es complicado, es un lenguaje bastante complejo de usar y que tiene muchas limitaciones... por ejemplo si quieres desarrollar para Windows y luego quieres ejecutar ese programa en Linux no funcionara, imagínate ejecutar el mismo programa en una consola o en cualquier otro dispositivo movil o lo que fuese... resumiendo, no es un lenguaje multiplataforma, por lo que tendrás que aprender los entresijos de cada plataforma para desarrollar para ella (y eso es tiempo y esfuerzo). Otra gran limitación es que no tiene un buen soporte de multihilo (no ha tenido soporte para usar varios procesadores a la vez hasta muy muy poco y es muy precario) y tampoco se puede usar para temas web, por ejemplo.

Java:
Por todas estas limitaciones que acabo de contar nació Java, el objetivo de Sun cuando lo creó fue centrarse en lograr un lenguaje que fuese el sustituto de C++, quitándole todos sus defectos y que se pudiera ejecutar en cualquier dispositivo. La idea era que Java fuese el lenguaje preferido para programar lavadoras, frigoríficos, lavavajillas, DVDs, etc durante los años 90 pero hicieron un lenguaje tan bueno que se uso para muchísimas mas cosas y se le han ido añadiendo características cada pocos años.

A día de hoy Java es de los lenguajes mas usados del mundo (si no el que mas) porque tu haces un programa, y te da igual la plataforma, te da igual si estas desarrollando para Linux, MacOS, Windows, Xbox o lo que fuese, el programa funcionara en cualquier parte, así que es un lenguaje multiplataforma (el por que lo es lo puedes consultar en la wikipedia, es un poco engorroso de explicar la primera vez). Ademas de ser multiplataforma también se puede usar Java para temas Web, es un lenguaje perfecto para utilizar varios hilos (uso de varios procesadores), Sun creó unas librerías super completas que te lo hacen casi todo (el famoso API de Java) y encima es sencillisimo de aprender, por todo esto Google escogió Java como lenguaje para desarrollar en Android. ¿Donde esta entonces la pega de Java? Pues que su rendimiento no es tan bueno como el de C++, o mejor dicho, no era tan bueno como el de C++, ya que con las versiones de Java que han ido saliendo (realmente me refiero a la JVM, pero no quiero entrar ahí) se ha reducido muchísimo la diferencia y ademas Java puede usar varios núcleos, por lo que dependiendo del programa puede superar en rendimiento por mucho a un programa en C++.

Resumiendo:
Como todo en la vida, ¿que es mejor escoger entonces Java o C++? pues todo depende de lo que quieras hacer, para programas que requieran un gran rendimiento y sean aplicaciones de escritorio C++ es la típica respuesta, para el resto Java.

Aun así mi consejo es, que si lo que quieres es desarrollar un juego (es lo típico), te tires de cabeza a por Java y LibGDX mas adelante, porque C++ es mucho mas difícil de aprender y hacer un juego puede ser de lo mas difícil que exista en programación, por lo que lo ideal es empezar con Java, hacer un juego con LibGDX y cuando ya tengas experiencia y domines Java y crear juegos, aprendas C++ (que es parecido a Java, por lo que lo aprenderás rápido) y luego aprendas cualquier otra librería para hacer juegos con C++ (por ejemplo Cocos2D-X).

Un saludo!
 

Link~.

Elite Member
Mensajes
1.049
Reacciones
324
Puntos
656
Bueno, te contesto yo si quieres...

C++:
C++ es un lenguaje orientado a aplicaciones de escritorio fundamentalmente, es decir, los programas que usas en tu PC cotidianamente, como puede ser un juego cualquiera o grandes programas como Photoshop, AutoCAD o cualquier programa grande mas o menos serio. ¿Por que se usa C++ para estas cosas? Tienes que tener en cuenta que C++ es un lenguaje que se ejecuta en tu PC de forma nativa, por lo que es MUY eficiente, así que todo aquello que requiera gran eficiencia suele usar C++ (de ahi que los juegos 3D y tal estén hechos en C++, tanto en PC como en consolas).

¿Y por que no se hace TODO en C++ si es lo mas eficiente? Parecería lo mas normal hacerlo así, pero lo cierto es que cada día se usa menos C++ y el por que es muy simple, desarrollar en C++ es complicado, es un lenguaje bastante complejo de usar y que tiene muchas limitaciones... por ejemplo si quieres desarrollar para Windows y luego quieres ejecutar ese programa en Linux no funcionara, imagínate ejecutar el mismo programa en una consola o en cualquier otro dispositivo movil o lo que fuese... resumiendo, no es un lenguaje multiplataforma, por lo que tendrás que aprender los entresijos de cada plataforma para desarrollar para ella (y eso es tiempo y esfuerzo). Otra gran limitación es que no tiene un buen soporte de multihilo (no ha tenido soporte para usar varios procesadores a la vez hasta muy muy poco y es muy precario) y tampoco se puede usar para temas web, por ejemplo.

Java:
Por todas estas limitaciones que acabo de contar nació Java, el objetivo de Sun cuando lo creó fue centrarse en lograr un lenguaje que fuese el sustituto de C++, quitándole todos sus defectos y que se pudiera ejecutar en cualquier dispositivo. La idea era que Java fuese el lenguaje preferido para programar lavadoras, frigoríficos, lavavajillas, DVDs, etc durante los años 90 pero hicieron un lenguaje tan bueno que se uso para muchísimas mas cosas y se le han ido añadiendo características cada pocos años.

A día de hoy Java es de los lenguajes mas usados del mundo (si no el que mas) porque tu haces un programa, y te da igual la plataforma, te da igual si estas desarrollando para Linux, MacOS, Windows, Xbox o lo que fuese, el programa funcionara en cualquier parte, así que es un lenguaje multiplataforma (el por que lo es lo puedes consultar en la wikipedia, es un poco engorroso de explicar la primera vez). Ademas de ser multiplataforma también se puede usar Java para temas Web, es un lenguaje perfecto para utilizar varios hilos (uso de varios procesadores), Sun creó unas librerías super completas que te lo hacen casi todo (el famoso API de Java) y encima es sencillisimo de aprender, por todo esto Google escogió Java como lenguaje para desarrollar en Android. ¿Donde esta entonces la pega de Java? Pues que su rendimiento no es tan bueno como el de C++, o mejor dicho, no era tan bueno como el de C++, ya que con las versiones de Java que han ido saliendo (realmente me refiero a la JVM, pero no quiero entrar ahí) se ha reducido muchísimo la diferencia y ademas Java puede usar varios núcleos, por lo que dependiendo del programa puede superar en rendimiento por mucho a un programa en C++.

Resumiendo:
Como todo en la vida, ¿que es mejor escoger entonces Java o C++? pues todo depende de lo que quieras hacer, para programas que requieran un gran rendimiento y sean aplicaciones de escritorio C++ es la típica respuesta, para el resto Java.

Aun así mi consejo es, que si lo que quieres es desarrollar un juego (es lo típico), te tires de cabeza a por Java y LibGDX mas adelante, porque C++ es mucho mas difícil de aprender y hacer un juego puede ser de lo mas difícil que exista en programación, por lo que lo ideal es empezar con Java, hacer un juego con LibGDX y cuando ya tengas experiencia y domines Java y crear juegos, aprendas C++ (que es parecido a Java, por lo que lo aprenderás rápido) y luego aprendas cualquier otra librería para hacer juegos con C++ (por ejemplo Cocos2D-X).

Un saludo!
Gracias por tú respuesta, muy bien explicado. No me arrepiento de estar estudiando java entonces.

Saludos.
 
Mensajes
301
Reacciones
16
Puntos
0
Ubicación
in somewhere unexpected place
Bueno, te contesto yo si quieres...

C++:
C++ es un lenguaje orientado a aplicaciones de escritorio fundamentalmente, es decir, los programas que usas en tu PC cotidianamente, como puede ser un juego cualquiera o grandes programas como Photoshop, AutoCAD o cualquier programa grande mas o menos serio. ¿Por que se usa C++ para estas cosas? Tienes que tener en cuenta que C++ es un lenguaje que se ejecuta en tu PC de forma nativa, por lo que es MUY eficiente, así que todo aquello que requiera gran eficiencia suele usar C++ (de ahi que los juegos 3D y tal estén hechos en C++, tanto en PC como en consolas).

¿Y por que no se hace TODO en C++ si es lo mas eficiente? Parecería lo mas normal hacerlo así, pero lo cierto es que cada día se usa menos C++ y el por que es muy simple, desarrollar en C++ es complicado, es un lenguaje bastante complejo de usar y que tiene muchas limitaciones... por ejemplo si quieres desarrollar para Windows y luego quieres ejecutar ese programa en Linux no funcionara, imagínate ejecutar el mismo programa en una consola o en cualquier otro dispositivo movil o lo que fuese... resumiendo, no es un lenguaje multiplataforma, por lo que tendrás que aprender los entresijos de cada plataforma para desarrollar para ella (y eso es tiempo y esfuerzo). Otra gran limitación es que no tiene un buen soporte de multihilo (no ha tenido soporte para usar varios procesadores a la vez hasta muy muy poco y es muy precario) y tampoco se puede usar para temas web, por ejemplo.

Java:
Por todas estas limitaciones que acabo de contar nació Java, el objetivo de Sun cuando lo creó fue centrarse en lograr un lenguaje que fuese el sustituto de C++, quitándole todos sus defectos y que se pudiera ejecutar en cualquier dispositivo. La idea era que Java fuese el lenguaje preferido para programar lavadoras, frigoríficos, lavavajillas, DVDs, etc durante los años 90 pero hicieron un lenguaje tan bueno que se uso para muchísimas mas cosas y se le han ido añadiendo características cada pocos años.

A día de hoy Java es de los lenguajes mas usados del mundo (si no el que mas) porque tu haces un programa, y te da igual la plataforma, te da igual si estas desarrollando para Linux, MacOS, Windows, Xbox o lo que fuese, el programa funcionara en cualquier parte, así que es un lenguaje multiplataforma (el por que lo es lo puedes consultar en la wikipedia, es un poco engorroso de explicar la primera vez). Ademas de ser multiplataforma también se puede usar Java para temas Web, es un lenguaje perfecto para utilizar varios hilos (uso de varios procesadores), Sun creó unas librerías super completas que te lo hacen casi todo (el famoso API de Java) y encima es sencillisimo de aprender, por todo esto Google escogió Java como lenguaje para desarrollar en Android. ¿Donde esta entonces la pega de Java? Pues que su rendimiento no es tan bueno como el de C++, o mejor dicho, no era tan bueno como el de C++, ya que con las versiones de Java que han ido saliendo (realmente me refiero a la JVM, pero no quiero entrar ahí) se ha reducido muchísimo la diferencia y ademas Java puede usar varios núcleos, por lo que dependiendo del programa puede superar en rendimiento por mucho a un programa en C++.

Resumiendo:
Como todo en la vida, ¿que es mejor escoger entonces Java o C++? pues todo depende de lo que quieras hacer, para programas que requieran un gran rendimiento y sean aplicaciones de escritorio C++ es la típica respuesta, para el resto Java.

Aun así mi consejo es, que si lo que quieres es desarrollar un juego (es lo típico), te tires de cabeza a por Java y LibGDX mas adelante, porque C++ es mucho mas difícil de aprender y hacer un juego puede ser de lo mas difícil que exista en programación, por lo que lo ideal es empezar con Java, hacer un juego con LibGDX y cuando ya tengas experiencia y domines Java y crear juegos, aprendas C++ (que es parecido a Java, por lo que lo aprenderás rápido) y luego aprendas cualquier otra librería para hacer juegos con C++ (por ejemplo Cocos2D-X).

Un saludo!

Buena respuesta
te complemento diciendo que la razón por la que java es multiplataforma es porque lo que hace es levantar un sistema sobre el que estamos trabajando, esta creo que es la forma mas fácil de explicarlo, comparándolo con una maquina virtual, lo desventajoso de esto es lo que se demora en abrir una aplicación como esta, solo mira el JDownloader xd
 
Mensajes
49
Reacciones
60
Puntos
0
Buena respuesta
te complemento diciendo que la razón por la que java es multiplataforma es porque lo que hace es levantar un sistema sobre el que estamos trabajando, esta creo que es la forma mas fácil de explicarlo, comparándolo con una maquina virtual, lo desventajoso de esto es lo que se demora en abrir una aplicación como esta, solo mira el JDownloader xd

Bueno, realmente Java no tiene un sistema como dices, sino que utiliza una maquina virtual sobre la que trabaja Java, en este caso se llama JVM (Java Virtual Machine), por lo que para ejecutar Java siempre debes de tener instalada la JVM en tu sistema operativo y si no existe JVM en tu sistema operativo no puedes ejecutar Java, asi de simple.

Trabajar sobre una maquina virtual es malo porque realmente lo que hace es que Java no se compila como un lenguaje normal que convierte todas las instrucciones a codigo ensamblador, sino que las convierte en un lenguaje que se llama ByteCode (creo recordar que se llama) y ya es la JVM la que se encarga de transformar este codigo a ensamblador en tiempo real... es decir, mientras se esta ejecutando el programa se va traduciendo a la vez, lo que hace que le resta rendimiento al dispisitivo donde se ejecuta. Ante este inmenso problema empiezan a aparecer alternativas, la nueva maquina virtual de Java en android (ant creo que se llamaba) que se puso como opcional en Android 4.4 y obligatoria en Android 5 lo que hace es que cuando bajas una aplicacion y se instala, tambien compila la aplicacion y en ese momento la transforma a codigo ensamblador, de forma que ya nunca mas tiene que volver a traducirse y no se le resta rendimiento al dispositivo y en dispositivos moviles, se gana tambien bateria, ¿Donde esta la pega? facil, requiere mas memoria para ser guardado, pero el codigo a dia de hoy representa muy poco espacio, puede que unos simples megas y con las cantidades de memoria flash que hay en la actualidad ha empezado a poderse "desperdiciar" este espacio.

Sobre esto hay muchisimo escrito en internet de gente que domina muchisimo del tema.

Un saludo.
 
Mensajes
301
Reacciones
16
Puntos
0
Ubicación
in somewhere unexpected place
Bueno, realmente Java no tiene un sistema como dices, sino que utiliza una maquina virtual sobre la que trabaja Java, en este caso se llama JVM (Java Virtual Machine), por lo que para ejecutar Java siempre debes de tener instalada la JVM en tu sistema operativo y si no existe JVM en tu sistema operativo no puedes ejecutar Java, asi de simple.

Trabajar sobre una maquina virtual es malo porque realmente lo que hace es que Java no se compila como un lenguaje normal que convierte todas las instrucciones a codigo ensamblador, sino que las convierte en un lenguaje que se llama ByteCode (creo recordar que se llama) y ya es la JVM la que se encarga de transformar este codigo a ensamblador en tiempo real... es decir, mientras se esta ejecutando el programa se va traduciendo a la vez, lo que hace que le resta rendimiento al dispisitivo donde se ejecuta. Ante este inmenso problema empiezan a aparecer alternativas, la nueva maquina virtual de Java en android (ant creo que se llamaba) que se puso como opcional en Android 4.4 y obligatoria en Android 5 lo que hace es que cuando bajas una aplicacion y se instala, tambien compila la aplicacion y en ese momento la transforma a codigo ensamblador, de forma que ya nunca mas tiene que volver a traducirse y no se le resta rendimiento al dispositivo y en dispositivos moviles, se gana tambien bateria, ¿Donde esta la pega? facil, requiere mas memoria para ser guardado, pero el codigo a dia de hoy representa muy poco espacio, puede que unos simples megas y con las cantidades de memoria flash que hay en la actualidad ha empezado a poderse "desperdiciar" este espacio.

Sobre esto hay muchisimo escrito en internet de gente que domina muchisimo del tema.

Un saludo.

la verdad es que utilice la palabra sistema para que se entendiera, pero si en realidad es como tu dices.
 

Mrat

See You Space Cowboy
Mensajes
5.301
Reacciones
4.007
Puntos
613
Buena respuesta
te complemento diciendo que la razón por la que java es multiplataforma es porque lo que hace es levantar un sistema sobre el que estamos trabajando, esta creo que es la forma mas fácil de explicarlo, comparándolo con una maquina virtual, lo desventajoso de esto es lo que se demora en abrir una aplicación como esta, solo mira el JDownloader xd
Acabo de leer este post, quiero completar que otro problema que radica en Java es que consume demasiada memoria RAM a la hora de correrse.
Demos un par de ejemplos:
Android Studio, una IDE para programar para Android que hizo Google y está hecha en Java requiere mínimo 2 GB de RAM. Es demasiado para un editor simple.
Unity Desktop, el entorno de Ubuntu, el cual reemplazó a Gnome. Es lindo, pero consume mucha memoria RAM ya que está hecho en Java. Casualmente, el hecho de que el mismo sea pesado a la hora de correr es el motivo por el cual casi nadie usa Ubuntu actualmente. En cuestiones de aspecto es lindo xD
 
Arriba Pie