Ir al contenido

Pregunta

Hola a tod@s, como sabéis me encanta hacer temas debatiendo algo (siempre desde el respeto), y el caso es que ahora que sé más o menos C me gustaría saltar a un lenguaje orientado a objetos, he oido hablar muy mal de C++, no sólo a los grandes (stallman, linus...) sino en general, en muchos sitios hay mucho mucho odio a este lenguaje, que si es muy complicado, que si tal, y aprovechando que al fin y al cabo, cuando haga el superior de informática, voy a tener que dar Java si o si, he pensado, oye, ¿y por que no java?.

 

Antiguamente Java no era libre, ni por asomo, era privativo pero desde hace ya tiempo, tanto para programar en él, como para ejecutarlo, se puede hacer completamente libre, hasta el mismo richard stallman (que ya sabemos que muy flexible no es en cuanto a licencias) lo recomienda. Por lo poco que he leido de este lenguaje, lo bueno es que tiene una sintaxis parecida a la de C pero con orientación a objetos y con recolección de basura (vamos que del bajo nivel ya se encarga él), también estuve investigando mucho sobre su licencia, para asegurarme, sobretodo, si al escribir un programa en Java, este iba a ser 100% libre o si mi programa iba a depenteder de alguna librería privativa etc... pero en el mismo directorio de paquetes de la fsf aparece como libre.

 

Es cierto que este lenguaje prima la portabilidad al rendimiento, pero al fin y al cabo, si quieres que algo tenga buen rendimiento, pues bueno, programa en C la parte que sea crítica y el resto puedes usar un lenguaje de más alto nivel. A mi lo que me gustaría llegar a saber es C muy bien (ya que me parece muy importante, imprescindible), Java (como lenguaje de alto nivel, y por tener que darlo si o si en los estudios) y Python (python ya se algo, pero tengo que repasarlo, es un lenguaje excelente).

 

¿Vosotros que opinais de Java?¿Ahora que es 100% libre, hay algún motivo filosófico para no usarlo?

 

Saludos.

Compartir este post


Enlace al post
Compartir en otros sitios

17 respuestas a esta pregunta

Recommended Posts

  • 0

No creo que haya ningún problema etico en cuanto a usarlo, quizás sea sobre la maquina virtual que lo ejecuta.

Java es el que se toma como ejemplo para entender la programación orientada a objetos como por ejemplo la herencia y que toda variable que no sea de un tipo primitivo como int o double es una referencia, que se asemeja a un puntero en c/c++ pero no tratas con memoria dinámica ni direcciones de memoria.

Cuando termines mira también un poco sobre algunos conceptos de programación funcional introducidos en Java 8 esta muy interesante.

No entiendo el problema con c++, quizás sea mas complicado por cosas que introducen aunque también no tengo mucha experiencia porque estoy terminando ingeniería informática 

Editado por Cristobal

Compartir este post


Enlace al post
Compartir en otros sitios
  • 0

Yo en la universidad empecé con Python y Java lo doy ahora. Sin embargo lo mismo que te digo que adoro Python, te digo que odio Java... creo que soy mas de programación scripting.

 

Yo lo veo así, los que nos dedicamos a algo relacionado con la informática y programación, tenemos siempre el gusanillo de aprender un lenguaje nuevo. Así que ya que vas a tener que dar Java si o si, aprovecha ahora y ponte con otro de forma que tengas uno más en la lista.

Compartir este post


Enlace al post
Compartir en otros sitios
  • 0

Por lo poco que probé de cada lenguaje creo que Java tiene la sintaxis que mas me gusta, es como que está más ordenado, casi todo tiene sentido.

En cambio empecé a aprender C++ y me cansé a los días. No me gusta, es como si estuviera todo parcheado. Por ejemplo los arrays tradicionales es como que son muy malos, ni siquiera tienen función .length(). Si querés arrays con función length() tenés que usar clases como std::vector.

Python me gusta más, no me gusta como no es necesario especificar los tipos de variables, o que no haya que especificar si es privada, publica, etc. Por ejemplo veo que la convención es para las variables privadas anteponerle en el nombre un guion bajo, (_variable). Pero eso no lo hace privada, te hace acordar a vos que es privada y lo veo medio trucho

Lo malo de java es que hace falta maquina virtual

A lo mejor me quejo de pavadas, no se

Compartir este post


Enlace al post
Compartir en otros sitios
  • 0

A mi el Java tb lo tengo pendiente me gusta el Gambas y el java tb aqui tienes unos videos muy buenos de Java -

 

https://youtu.be/coK4jM5wvko?list=PLU8oAlHdN5BktAXdEVCLUYzvDyqRQJ2lk

Compartir este post


Enlace al post
Compartir en otros sitios
  • 0

C++ hace mucho tiempo también le eché un vistazo y me pareció muy feo la verdad, especialmente la orientación a objetos, lo único que me llama de C++ es el hecho de que es casi un standard, ahora mismo una gran parte de los proyectos importantes están hechos o en C o en C++, por lo que aprenderlo te abre bastantes puertas a participar en ciertos proyectos de software libre, quitando eso, C++ me parece horrible la verdad, java mucha gente me ha dicho que en cuanto a sintaxis es sencillo y que te tienes que preocupar de menos cosas.

 

También dejo como dato que hay un lenguaje (creo que relativamente nuevo) que se llama Vala, lo ha desarrollado gnome (creo que para no dar su brazo a torcer a C++ XD) y por lo que dicen es de bastante alto nivel (y muy parecido a C#), orientado a objetos y tiene un rendimiento muy parecido al de C, lo que hace es que compila el código a C, y después de C a código máquina, él problema que le veo es que depende de GObject (una librería que ofrece orientación a objetos en C, tiene alguna relación con GNOME, aunque es independiente), por lo que limita un poco la portabilidad. Por otro lado está Genie, que es un lenguaje que usa el mismo compilador de Vala de la misma forma, sólo que con una sintaxis parecida a la de Python.

 

Saludos.

Compartir este post


Enlace al post
Compartir en otros sitios
  • 0

¿Has pensado en otros lenguajes? En mi lista , además de C(o C++) y Java, tengo:

  • Go
  • Ruby
  • Lua
  • JavaScript
  • Perl
  • R Programming

También podrías jugar con PHP o incluso con bases de datos no relacionales(MongoDB por ejemplo). Yo antes de decidir que lenguaje elegir, leo un code del lenguaje o lenguajes en cuestión y me pongo con el que más me haya impactado o gustado...

Compartir este post


Enlace al post
Compartir en otros sitios
  • 0

¿Has pensado en otros lenguajes? En mi lista , además de C(o C++) y Java, tengo:

  • Go
  • Ruby
  • Lua
  • JavaScript
  • Perl
  • R Programming
También podrías jugar con PHP o incluso con bases de datos no relacionales(MongoDB por ejemplo). Yo antes de decidir que lenguaje elegir, leo un code del lenguaje o lenguajes en cuestión y me pongo con el que más me haya impactado o gustado...
De php y mysql ya se lo básico, realmente php es sencillo.

 

Del lenguaje Go la verdad no había oido nada acerca de él, perl la verdad... No se...para eso mejor python xD y ruby no he leido nada, lua es que esta orientado a videojuegos.

 

Saludos.

Compartir este post


Enlace al post
Compartir en otros sitios
  • 0

Go es el lenguaje de Google, se puede incluso desarrollar alguna apk con Go. Yo diría que es interesante, al igual que Ruby que también permite con algún modulo crear una APK :D

Perl vs Python...un eterno dilema, pero una vez leí(no se donde) que a los programadores se les recomendaba tener conocimientos de 2 o 3 lenguajes de scripting. 

Lua al principio si que estaba más pensado para videojuegos, pero por ejemplo en Kali Linux hay unas cuantas cosas programadas en Lua y no es una distro orientada a los videojuegos... otro ejemplo, los wathcfaces que puedes instalar en los smartwatches(como mínimo en LG), están programados en Lua :)

Compartir este post


Enlace al post
Compartir en otros sitios
  • 0

Go es el lenguaje de Google, se puede incluso desarrollar alguna apk con Go. Yo diría que es interesante, al igual que Ruby que también permite con algún modulo crear una APK :D

Perl vs Python...un eterno dilema, pero una vez leí(no se donde) que a los programadores se les recomendaba tener conocimientos de 2 o 3 lenguajes de scripting. 

Lua al principio si que estaba más pensado para videojuegos, pero por ejemplo en Kali Linux hay unas cuantas cosas programadas en Lua y no es una distro orientada a los videojuegos... otro ejemplo, los wathcfaces que puedes instalar en los smartwatches(como mínimo en LG), están programados en Lua :)

 

Estuve mirando cuando leí tu mensaje sobre Go, y me parece interesante no, lo siguiente, tiene una pintaza increible, Lua y Perl la verdad siguen sin llamarme mucho, perl leí un poco su sintaxis y me parece algo fea, si tuviera que aprender dos lenguajes de scripting serían python y ruby, aunque para gustos colores.

 

Saludos.

Compartir este post


Enlace al post
Compartir en otros sitios
  • 0

Ánimo con ese Go! Yo si tuviese tiempo me ponía ahora mismo a ello... y ten en cuenta que Java vas a tener que darlo obligatoriamente, aprovecha y prueba con otras cosas que las clases te las vas a tener que preparar de todas formas :D

Compartir este post


Enlace al post
Compartir en otros sitios
  • 0

Si vas ha estudiar informatica / programación, pues si te adelantas y aprendes java, mejor para ti.

 

Al final te tendrás que adaptarte al puesto de trabajo que tengas, y siempre tendrás que ponerte al dia tanto en el uso de lenguaje como de librerias nuevas que salgan, y frameworks .

 

También conozco gente, que son informaticos, y luego en la vida laboral se han dedicado en redes y dar soporte windows... y la programación la han "olvidado".... aprendiendo y estando más al dia en cuestiones de  redes, claro.

Compartir este post


Enlace al post
Compartir en otros sitios
  • 0

No tengo conocimientos de programación, pero llevo con ordenadores desde hace 24 años y he leído mucho del tema, en mi opinión no se puede comparar C y C++ con java, simplemente porque son dos lenguajes que no están al mismo nivel, java pertenece a un lenguaje de alto nivel y C es de medio nivel muy cercano a bajo nivel, solo tenéis que ver que el núcleo linux esta escrito en C y ensamblador " os imaginarias hacer el núcleo en java :jojojo: " son dos lenguajes de uso general pero C es mas profesional, no digo que java lo sea menos "al final me vais a pegar" pero java tiene tanta importancia porque esta muy extendido y hay una cantidad ingente de aplicaciones desarrolladas en dicho lenguaje, pero para cosas mas robustas y mas potentes tenemos que recurrir a C o a C++, yo soy de esos usuarios que detesta java , pero por la cantidad de fallos de seguridad que tiene esa plataforma. 

Una pregunta a los que estáis estudiando programación en la universidad ¿estudiáis lenguajes de bajo nivel o nivel medio a fondo?

Un saludo y acepto criticas :D

Compartir este post


Enlace al post
Compartir en otros sitios
  • 0

No tengo conocimientos de programación, pero llevo con ordenadores desde hace 24 años y he leído mucho del tema, en mi opinión no se puede comparar C y C++ con java, simplemente porque son dos lenguajes que no están al mismo nivel, java pertenece a un lenguaje de alto nivel y C es de medio nivel muy cercano a bajo nivel, solo tenéis que ver que el núcleo linux esta escrito en C y ensamblador " os imaginarias hacer el núcleo en java :jojojo: " son dos lenguajes de uso general pero C es mas profesional, no digo que java lo sea menos "al final me vais a pegar" pero java tiene tanta importancia porque esta muy extendido y hay una cantidad ingente de aplicaciones desarrolladas en dicho lenguaje, pero para cosas mas robustas y mas potentes tenemos que recurrir a C o a C++, yo soy de esos usuarios que detesta java , pero por la cantidad de fallos de seguridad que tiene esa plataforma. 

Una pregunta a los que estáis estudiando programación en la universidad ¿estudiáis lenguajes de bajo nivel o nivel medio a fondo?

Un saludo y acepto criticas :D

Java de por si no es malo, yo tenia mala opinion sobre el al empezar pero he aprendido a quererlo :sweat: , la maquina virtual o las bibliotecas que se usan ya es otra historia, por ejemplo hay una implementacion open source.

 

En mi caso en la UGR creo que de todo, en cuanto a bajo nivel solo lo basico.

Puertas logicas

Diseñar los circuitos de una calculadora simple (matricula de honor en esa asignatura, tenia que decirlo :D )

Ensamblador

Un poco, lo suficiente para saber como funciona la pila a bajo nivel y eso, dimos una practica sobre "desactivar" un programa bomba con el debugger de GNU.

C/C++

Con una asignatura relacionada con sistemas operativos vimos bastante sobre linux y C, hemos dado cosas como la creacion de procesos hijos, redireccion de flujos de entrada/salida (hicimos un interprete de ordenes, aunque algo cutre), abrir ficheros y ver permisos.... El profesor incluso explico algunos fragmentos de codigo de Linux relacionados con la gestion de procesos o ficheros, fui a Septiembre xD

 

Yo he dado estructuras de datos con C++, he hecho practicas en las que habia que crear celdas enlazadas con punteros, iteradores, sobrecarga de operadores y de ese tema.

Tambien en cuanto a sistemas graficos dimos C++ con Opengl a partir de 2.0, la creacion de shaders la dimos un poco por encima.

JAVA

Todo el tema sobre herencia y paralelismo con Java y el año pasado dimos una asignatura sobre nuevas tecnoligias de la programacion donde dimos la programacion funcional en Java 8.

PHP/HTML/CSS/Javascript

El profesor explico un poco el resto lo teniamos que aprender por nuestra cuenta para implementar una web

Editado por Cristobal

Compartir este post


Enlace al post
Compartir en otros sitios
  • 0

Java tiene tanta importancia porque esta muy extendido y hay una cantidad ingente de aplicaciones desarrolladas en dicho lenguaje.

Poco queda para que deje de ser así :D

 

Una pregunta a los que estáis estudiando programación en la universidad ¿estudiáis lenguajes de bajo nivel o nivel medio a fondo?

Un saludo y acepto criticas :D

Python, sobre todo por lo mucho que se puede hacer con muy pocos conocimientos.  Sin embargo yo creo que aquellos que nos hemos metido en algo que tiene que ver con programación no nos quedamos quietos si sólo nos enseñan un lenguaje. Personalmente y por gusto e interés me metí en perl, Ruby, HTML(a pesar que no se considere lenguaje de programación),  CSS3, JavaScript y estoy con Go!. Por obligación tengo que seguir con Java el próximo curso :S y en mi lista de tareas pendientes tengo PHP, Swift, C(++, # ), bases de datos(Mongo y SQL), R, Lua y alguna que me habré dejado :P

Compartir este post


Enlace al post
Compartir en otros sitios
  • 0

Pues yo de programación poco, lo que he aprendido fue de modo autodidacta coqueteando con la mayoría de lenguajes mas populares en la búsqueda de una primera impresión o el amor de mi vida como programador de andar por casa.
 
Me da un poco de vergüenza decir esto, pero donde mas resultados he logrado, es con C# en VS-2012... "que raro ¿ no?", es realmente intuitivo y la documentación esta regada por cada esquina de internet, es un lenguaje que te regala un gran porcentaje de aspirinas nada mas empezar, ya se sabe que M$ vende sus (software's) motos con ruedas a los lados... En el lado opuesto, con GNU/Linux hay que aprender a mantener el equilibrio y como todo, cada cosa tiene sus ventajas y desventajas.
 

moto-con-bateria-cross-alpha-6v.jpg

 
En un lugar de la internet de cuyo nombre no quiero acordarme... he leído que Java es en la actualidad el lenguaje que mas trabajo genera para los programadores, dentro de 4 o 5 años no se si seguirá siendo el Nº-1 o si C# lo desbancara, a favor de Java, que últimamente ha mejorado la velocidad de la maquina virtual en su ultima versión y corregido algunos problemas de seguridad importantes, lo que hace pensar que se están poniendo las pilas, supongo que eso es provocado por la creciente popularidad de las tecnologías de .NET.
 
A mi personalmente no me gusta Java, aunque mi opinión en este caso no es objetiva, por que el único contacto medio serio que he tenido con código de Java ha sido con un servidor de un Mmorpg y creo que no es suficiente para poder valorar todo un lenguaje con tan poca experiencia en el mismo, no obstante es la impresión que tuve de lo que aprendí del mismo.
 
Por otro lado C/C++ en lo laboral y según he leído, se mantiene mas o menos su demanda de programadores, pero sigue al pie del cañón, pues siempre hace falta gente que lo sepa manejar, no tanto como Java pero hay sigue!. 
 
Sobre el primer comentario @@Pacman:
 
Yo opino que la gente que odia ese lenguaje es por que simplemente se siente superados por C++ y no tienen capacidad e inspiración para desarrollar con un lenguaje relativamente complejo y poco intuitivo cuando es enfocado en proyectos avanzados.

Además cuando se llega a cierta edad... cuesta mas aprender cosas nuevas!, Stallman y Linus han sido pioneros en sus proyectos y tiene muchísimo merito, pero no me extraña que no les guste C++.
 
Yo desde mi muy humilde conocimiento del mismo (C++), creo que no es un lenguaje digno de odio, mas bien al contrario, hay gentes que tienen una gran capacidad para desarrollar cosas originales y útiles con este lenguaje, lo malo que tiene C++ es que no es un lenguaje para todos los programadores, que requiere gran concentración en muchos casos y que también requiere una sólida base de conocimiento multidisciplinar para llegar a dominarlo como pocos.
 
Y si, yo también he oído hablar mal de C++, es mas, tengo dos libros en casa porque en su momento intente aprenderlo y me resigne por mi falta de conocimiento.base@capacidad, pero también he oído hablar bien y muy bien del mismo, por que todo tiene su lado bueno y su lado malo.
Hay gente que sabe apreciar lo bueno de este lenguaje por algo tan simple como el poder hacer cosas de forma eficiente que con otros no se puede o no es rentable en algún aspecto, y lo que nadie puede negar de C++ es que es potente como pocos.
 
Son estos dos los que compre y ahora están cogiendo polvo. :confused:
 

mic2012_g.jpgPORTADA-LIBRO-SPB0015471-MAX.jpg


Yo creo que lo importante de la programación con enfoque a lo profesional, no es conocer mas o menos a varios lenguajes, sino mas bien conocer muy bien uno hasta el extremo de ser un Gurú del mismo y saber vender la moto o el trasatlántico, pero esto es solo mi opinión como autodidacta. :cafe:
 
Saludos!

Editado por wsn

Compartir este post


Enlace al post
Compartir en otros sitios

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Invitado
Responder esta pregunta...

×   Has incluido contenido con formato.   Eliminar formato

  Sólo se permiten 75 emoticonos como máximo.

×   Tu enlace ha sido insertado automáticamente.   Deshacer y mostrar como enlace

×   Su contenido anterior ha sido restaurado.   Limpiar editor

×   No puedes pegar imágenes directamente. Súbelas a algún hosting de imágenes y pega la dirección URL


×
×
  • Crear Nuevo...