epelpad

El post que buscas se encuentra eliminado, pero este también te puede interesar

Por que razon elegir java

Creo que va siendo hora de que explique los pros, los contras y todos los aspectos relevantes sobre Java, una vez hemos probado el Holamundo y como compilarlo ( y que, OMG, funciona!;si no ha ocurrido eso, deverias volver a revisarlo todo)

para empezar, aclarar que java es un lenguaje orientado a objetos. ¿que significa esto? que si no has programado nunca, y vas poco a poco, no tendrás problema, pero si eres programador acostumbrado al paradigma de la programacion imperativa o funcional, te recomiendo que te armes de paciencia para entenderlo todo.(mi proximo post hablará especificamente sobre las diferencias entre la programacion orientada a objetos o POO y la programacion imperativa)

además, la ventaja de java, la que hace que sea en lenguaje muy atractivo, es simple: es multiplataforma. expliquemos esto: normalmente un programa viene definido por un codigo fuente; dicho codigo fuente, al compilarlo, se transforma en una serie de sentencias escritas en lenguaje maquina. ¿cual es el problema? que todo depende del sistema operativo en el que se haya compilado, pues cada codigo se traducirá a las sentencias maquina especificas ( e incompatibles) de cada SO. expresado con una metafora sería como traducir un texto ( codigo fuente) al inglés, al chino o al francés. logicamente, un inglés no podría leer un texto en chino ( en esta metafora nadie sabe idiomas ) y así sucesivamente. y ¿cómo soluciona esto java? facil, cuando compilamos en java lo hacemos a un lenguaje más o menos unificado ( siguiendo con la metafora de los idiomas, que sea el esperanto), que se traduce en tiempo real por una maquina virtual, que no es más que un interprete, desde el bitecode de java a las sentencias maquina de cada ordenador ( traductor en tiempo real de esperanto-chino, por ejemplo). ¿la ventaja? como dije anteriormente, un mismo codigo YA COMPILADO ( esto es muy importante) puede utilizarse en GNU/linux, en Windows, en MacOS… parece que no, pero para usuarios multiplataforma ( vease mi caso, que tengo que usar windows aunque no me guste mucho) es una enorme ventaja.

pero esta portabilidad no se limita a ordenadores, ya que Sun ( la empresa que lo creó) pensó en java como una especie de lenguaje universal, y para ello creó una version más pequeña y minimalista de su API pensada exclusivamente para dispositivos pequeños y moviles. exacto, ese hola mundo, con los paquetes adecuados, podría funcionar en tu terminal movil. sinceramente, me parece una idea bastante atractiva que, solo cambiando unas pocas sentencias, podamos llevarnos nuestro programa a cualquier lado ( teniendo en cuenta, claro está, las limitaciones tecnicas del movil).

es probable que en un futuro investigue como utilizar el java en moviles, pero de momento, intentemos usarlo en ordenadores, que no es moco de pavo.

sin embargo, como no todo el monte es oregano, hay que recalcar como desventajas que al ser un lenguaje que se traduce en tiempo real, requiere un porcentaje más elevado de recursos que un programa nativo ( cosa que, para aplicaciones pequeñas como las que vamos a crear aqui, y en ordenadores potentes como los que se comercializan ahora, no es un gran problema). además, tambien hay que tener instalada la maquina virtual, con el consiguiente marron de tener que buscarla, instalarla, etc… por que, amigos mios, NUNCA viene instalada.

hablando de su sintaxis, prefiero hacer una comparacion con el lenguaje que parece ser el estandar de la programacion: C ( o su equivalente en POO, C++); como ventaja destacar que, pese a que java ha sido escrito en C/C++ , su sintaxis es infinitamente más clara e intuitiva; además, desaparecen tanto los punteros ( con los problemas asociados que causan) como la basura que generan los objetos y que hay que recojer a mano en C++ ( de ello se encarga un recolector de basura especifico que se encuentra en la maquina virtual); no os preocupeis si no entendeis esto bien ahora, en el proximo post lo explicaré más a fondo. como desvenmtajas, el java tiene limitada la herencia a una sola clase, es decir, no existe la multiherencia ( que, bien mirado, con los problemas que puede generar, casi es una ventaja).

en conclusion: si quereis un lenguaje que sirva para todas las plataformas, que sea facil y potente al mismo tiempo, y con el que podais aprender POO de una forma bastante intuitiva, java es la mejor eleccion.

no obstante, voy a recomendar algun otro lenguaje más especifico, pues mucha gente lo que realmente busca es que la aplicacion funcione al pulsar un boton en una ventana y ya está, escribiendo el menos codigo posible: para ello visual basic ( VB en windows, y gambas en linux) es la mejor opcion: programaicon grafica del tipo arrastrar y listo, con una sintaxis minimalista y bastante eficaz ( pero, como siempre, no es portable). y para los que busquen una programacion profunda, casi a nivel de bit, ya sea para programas grandes y complejos que necesiten ser muy optimizados o para plataformas que no admitan una maquina virtual, la mejor opcion es C/C++, que pese a su complejidad a niveles avanzados, es el estandar de la programacion actual ( y te deja hacer unas barrabasadas que no veas, creedme)

espero que con este post haya dejado un poco más claro por qué he elegido java, per no obstante hay una razon más, esta muy personal:

escribir la interfaz grafica de java es tremendamente facil si sabes como, y no hay que buscar tampoco una interfaz para cada plataforma ( a direfencia de directx para windows, o qt o GTK para GNU/llinux, por citar ejemplos) con sus bibliotecas y sus funciones. en java solo existen el AWT y el Swing, y una es casi una pequeña ampliacion de la otra ( ya explicaré la diferencia más adelante); es decir, a efectos practicos, no necesitas má que un bloc de notas para empezar a programar, nada de paquetes graficos que hay que instalar aparte, solo programar y listo ( pues ya viene todo instalado en el JDK); personalmente, lo veo una ventaja: cuanto más sencillo sea todo, mucho mejor.

6 comentarios - Por que razon elegir java

tuxin
chido tu post te urge tener presencia, ja,ja. pásate por el mio mi primer.. si.
MrUploader
Hola

Yo prefiero el lenguaje C# de microsoft y uso linux XD, es que estaba aprendiendo una plataforma de programación que es similar a .NET se llama Mono. Bueno la gracia de esto es que C# a pesar de ser de microsoft es un lenguaje muy avanzado, en el sentido de que tiene muchas posibilidades y incorpora muchas nuevas palabras claves.

Corrígeme si me equivoco, voy a decir las cosas que tiene C# que Java no tiene.

Delegados
Eventos
Bucle foreach
Propiedades (set; get
Estructuras
Polimorfismo (tiene java =S)
Clases y métodos sellados
Ocultación de miembros
Espacios de nombre
Punteros ( eso si, si los usas tu código queda marcado como inseguro)
Sobrecarga de operadores (lo tiene C++ también)
Instrucciones checked y unchecked
Parámetros por referencia (osea es lo mismo que usar & en los argumentos en C++ ¿No estoy seguro si Java lo tiene =S ?)

Hay palabras claves que son muy interesantes, otras para mas bien uso muy científico. Pero quiero destacar que hay palabras claves que ayudan mucho, como delegate, foreach, set, get, event, ref, namespace, etc.

Bueno e aprendido super poco de Java así que lo desconozco mucho, pero dicen que la sintaxis es muy similar a la de Java algunos dicen que es un clon, pero no es tan así por que C# tine muchas cosas mas, según los que e leído de personas que han estudiaron Java y C#.

Y gracias a la plataforma mono puedes hacer varias cosas, como usar GTK#, Cairo, Las librerías Tao.OpenGL, Tao.Glut, Gnome#, Gdk#, etc. También se usa una maquina virtual al igual que Java y también, gracias a Mono, se puede pasar a lenguaje de maquina (binario), de esto último no estoy muy seguro, pero parece que si. Y mono tiene miles de cosas mas, etc.

No quiero que sea una guerra de religiones, piensa de manera neutral, busca un poco sobre la plataforma mono tal vez te interese ;-)
pkd001
Java es mejor y si C# es copia.
PezEspalda +2
Yo creo que más allá de los recursos lo más importante es lo que uno puede crear.
Un ingeniero mexicano que trabaja en Zynga decía que para atender 55 millones de
partidas de poker diarias (15.000 por segundo) utilizaba, del lado del servidor, PHP,
sin frameworks ni nada raro, escrito a mano... eso tiene valor.
Lo bueno de la programación en general es que el límite lo ponemos nosotros.
gadhager
por masoquista, empece un curso de programacion basico y nos metieron java....ni los profes lo saben....