Java, por CFerSant

Hola, antes que nada, empezaré por contarles acerca del lenguaje JAVA sin escribir ni una línea de código.

También especificar que vamos, sobre todo en un principio, a usar mucho el Terminal, así que apoyándome también en Marianitu (que nos enseñó un buen uso del mismo con las clases de Fink), insto a todos a que ya tengan un acceso al Terminal desde el Dock.

Bien, la historia comienza en Sun Microsystems, uno de los líderes en el campo de servidores que basándose en un lema que para ellos prima como es: “The Network is the computer” ( dando a entender que la verdadera computadora es la red como conjunto no cada ordenador individualmente), desarrolla JAVA en un intento de eliminar la barrera de diferencias de arquitecturas incompatibles a la hora de programar, tanto por parte de las máquinas como de los Sistemas Operativos, esto además trasladado al campo de internet era incluso más complicado, pues la coexistencia de tantos sistemas diferentes la hace un sistema “hostil” para cualquier programador que quiera interactuar al 100% en la red. Sun a raíz de tratar de introducirse en el campo de los electrodomésticos, y teniendo en cuenta de que el nivel de sofisticación en este tipo de usuarios no era lo que primaba, buscaron algo que hiciera posible unas interfaces mucho mas cómodas de usar que los sistemas que había por ese entonces.

James Gosling (gurú de la programación) perteneciente a Sun, había estado trabajando en su tiempo libre en un lenguaje que llamado Oak (roble, en inglés) debido a un roble que había frente a la ventana de su casa. Basándose en una filosofía muy parecida a C++ pero simplificada. (El problema que tienen tanto C como C++ es que cada vez que cambia el chip en el cual fué compilado es que debe todo el software de compilarse de nuevo, con todo los problemas que conlleva esto, tanto de tiempo como de dinero.) El primer proyecto en el que se aplico este lenguaje era el proyecto Green, consistía en un sistema de control completo de los aparatos electrónicos dentro del entorno del hogar. Usando un ordenador experimental llamado *7 (Star Seven), el sistema era una representación virtual de una casa inteligente mediante control de pantalla táctil. Aquí hizo su primera aparición “DUKE”, actual mascota de Java.

En 1994 Bill Joy (otro gurú) cofundador de Sun y uno de los principales desarrolladores de BSD Unix, pensó que Internet era un buen entorno en donde luchar la supremacía que ejercía Microsoft en el campo de software, y vió en Oak un buen instrumento para lograrla. Tras un cambio de nombre, de unos cambios de diseño, JAVA nació en Agosto de 1995.

Hasta hace unos años, y me refiero a la era en la que el Flash no era corriente ni el PHP, era imposible interactuar con una página web; quien quisiera tener un contenido mas allá del texto y gráficos estáticos, la única manera de realizarlo era la interfaz CGI (Common Gateway Interface), que permitía (y permite) pasar parámetros desde un formulario HTML y programas del tipo Perl o C. No era precisamente algo muy cómodo.

Incluso hoy en día para ver según que contenidos, necesitamos Plug-ins (que si flash, que si Shockwave, que de algún tipo que nos permita ver y trabajar con una imagen 3D rotándola y demás….), esto podría evitarse si solo se programasen los contenidos interactivos en el lenguaje JAVA y nosotros tuviéramos el soporte para poder ejecutarlo.

Java en base a todo lo anterior, es el primer lenguaje que es compilado e interpretado, por eso nosotros podemos programar en un entorno, compilar nuestro programa, el compilador solo convertirá el código en un código intermedio llamado Byte Code, este código no es ejecutable por si mismo (hoy por hoy solo nos queda esperar los procesadores JAVA para poder verlo), por lo tanto para transportarlo a cualquier entorno necesitamos que cuente con una JVM (Java Virtual Machine, maquina virtual de Java) adecuada a su sistema operativo; la JVM es gratuita y se descarga de la página web de Sun si se necesita, hoy las hay para: Unix, Linux cualquier distribución, Windows en todas sus versiones, HP-Ux, Solaris, Mac,.. la lista creo que se haría muy larga y que en el caso de que la vean en Sun.com verán que no se salta ni uno; este software es quien se encargará de interpretar el ByteCode en código máquina. Citemos otra gran frase que rodea al Java “Write Once Run Everywhere” (escribe una vez, corre (de ejecutar) en cualquier lugar).

CARACTERISTICAS DE JAVA

SIMPLE

Como C y C++ son los lenguajes mas difundidos, Java se creo en base a estos dos, pero sin la características menos usadas de estos. Java usa por ejemplo un garbage collector (recolector de basura) para mantener limpia la memoria dinámica.

Los problemas a los cuales no nos vamos a tener que enfrentar son por ejemplo:

– punteros

– referencias

– registros (struct)

– definición de tipos (typedef)

– macros (#define)

– liberar memoria (free)

ORIENTADO A OBJETOS

Soporta las tres características del paradigma de la orientación a objetos:

– Encapsulación

– Herencia

– Polimorfismo

Nota: Explicar este paradigma es un poco extenso pero sobre todo muy abstracto, y no conozco para nada el nivel de programación que hay en aquí, con lo cual les pido que escriban si ven que esto es necesario.-

DISTRIBUIDO

Proporciona librerías para que los programas puedan correr en diferentes plataformas.

ROBUSTO

Java realiza comprobaciones en tiempo de compilación y en tiempo de ejecución con lo que es posible detectar los problemas con mayor fiabilidad.

ARQUITECTURA NEUTRAL

Lo dicho, JAVA se compila sin tener en cuenta la arquitectura de la máquina.

SEGURIDAD

Java no utiliza ni casting ni punteros como si lo hacen C++ o C y previene con esto los accesos ilegales a la memoria. También el código pasa a través de un verificador de Byte Code que comprueba los formatos y aplica unas plantillas basadas en teoremas que detectan código ilegal.

CONTRAS

Aunque encontrarán que mucha gente coincide conmigo en lo próximo. Esto es desde mi aspecto personal y basándome en la experiencia pura.

– Java tiene elementos muy seguros, pero hecha la ley hecha la trampa y habitan Applets (pequeñas aplicaciones Java) en internet que contienen código maligno, sepan, no hay código 100% seguro.

– En Java hay que tipear mucho. Aunque muchos IDE (entornos gráficos de programación) pueden hacerlo menos duro, igualmente habrá que escribir mucho código.

VENTAJAS

Es un lenguaje muy completo, con muchas librerías que nos permitirán crear muchas utilidades.

En Mac (entorno en el que soy nuevo) veo que tiene una gran parte dedicada en la propia base de su sistema operativo.

Oracle lo usa, y esto ya es sumar otro grande. Si uno trabaja en oracle, verá que es puro JAVA; en Windows da los mismos problemas que tiene cualquier programa en este entorno sobre todo de velocidad ejecutando su parte gráfica, pero si se ejecuta en un Solaris de Sun (excelente sistema operativo) o en cualquier sistema en base Unix, se verá en toda su potencia.

Bueno siempre antes de empezar es necesaria la parte teórica, hoy por hoy, a ustedes no les valdrá mas que para hacerse una idea de las bases de este lenguaje y sus teóricos Pros y Contras, al ir avanzando descubriremos que es verdad y que no, pero no me puedo permitir decirles que abran el editor vi tipeen unas cosas, compilen y corran y vean sus errores y aprendan; esto ya me lo permitiré en el próximo capítulo, mostrándoles que son los errores básicos, como se estructura un simple “Hola Mundo”, y en si mismo, la primera base de este bonito lenguaje.

0 0 votos
Article Rating
Subscribe
Notify of
7 Comments
Oldest
Newest Most Voted
Opiniones Inline
Ver todos los comentarios
Anónimo
Anónimo
19 years ago

Un buen artículo, aunque quería puntualizar una cosa, la verdadera herencia de Java no proviene exactamente de C o C++, viene de Objective-C y OpenStep (ahora Cocoa), como James Gosling reconocio en una WWDC, y en algun otro lugar más.

Anónimo
Anónimo
19 years ago

En mi opinión, le faltan unos cuantos contras a este articulo…
1º La velocidad de ejecución es lenta. Recordemos que obtienes un codigo sin optimizar, que se ejecuta sobre una VM sin optimizar, de ahi que java solo funcione a una velocidad adecuada en entornos solaris.
2º La carga de procesador que produce la VM, es bastante superior a la que ofrecen otros interpretes como php o perl que si se pueden optimizar correctamente para cada procesador.
3º El soporte de VM en las diferentes *BSD es escaso y anticuado

Saludos

Anónimo
Anónimo
19 years ago

Muchas gracias por las críticas. Que seríamos sin ellas.
Bueno, quería matizar un poco estos comentarios. Con respecto a lo que dices nachob, de donde proviene JAVA es realmente incierto, C y C++ se llevan la palma por su gran similitud pero nunca ha quedado claro. Realmente el surgimiento de JAVA hasta que llega la conversión del OAK es más bien una leyenda casi que “urbana”, pues las teorías son muchas.
Los contras pueden llegar a llenar páginas y páginas, así como los pros, yo no creo conocer algún lenguaje que se salve de pros y contras, unos mas que otros, lo que si es claro a mi juicio es que JAVA es relativamente sencillo (sin llegar al extremo de VB) lo cual lo hace idóneo para sentar algunas bases y después poder desviarse por donde se quiera.
En los próximos artículos ya hablaré sobre los paradigmas de la programación orientada a objetos, y después de que ello quede claro, se apuntará a escribir JAVA.
Muchas gracias nuevamente por sus comentarios, pues estos ayudaran a replantear sobre la marcha la temática a exponer, y por lo tanto la facilidad de comprensión de la gente neófita en la programación.
Saludos

Anónimo
Anónimo
19 years ago

Vaya, y yo que estaba empezando a aprender Objective-C…

Sugerencia: Podiamos desarrollar una pequeña aplicación con Xcode a través de sourcefourge.net… para aprender y practicar.
Incluso ver el mismo código en Java y Objective-C.

¿demasiado pedir?

Anónimo
Anónimo
19 years ago

Otra vez Java…, bueno, realmente por lo que conozco Java es un Smalltalk simplificado con sintáxis de C…, me explico, Smalltalk es un lenguaje COMPILADO e INTERPRETADO.., mucho antes que Java, procede de fines de los 60 y el estándar de los más usados es smalltalk-80 🙂 . Smalltalk es totalmente orientado a objetos, nada de tipos básicos.., (en Java, además de tipos básicos, se puede picar mucho código procedimental, como en C++ u Objetive C,) es multiplataforma, herencia múltiple, y tiene ventajas (o inconvenientes.. 🙂 de no ser tipado, ni casting ni nada… Como Java tiene herencia simple, y ya aportaba reflexion (instaceof), un programa puede crear nuevas clases “dinámicamente” e instanciar objetos, etc… El “asunto” de los interfaces se “resuelve” de otras maneras…

Un ejemplo curioso de Smalltalk es la sentencia if:

Java: if (miObjeto.equals(otroObjeto)) { } else { }

Smalltalk: (miObjeto equals: otroObjeto) ifTrue: [ ] ifFalse: [ ]

¿a que es cachondo?? Yo no soy muy partidario de Java.., lo considero un “juguete” con mucha publicidad.., de haber llegado 2 o 3 años después estaríamos haciendo servlets y “EJB” EC++B en C++ …, pero también digo que es de lo que, básicamente, como 🙂 . Agradezco a Apple el soporte a Java, aunque lo “nativo” sea Objetive C, y siento que Smalltalk no haya sido “el camino” (eso es vicio mío). Para los “curiosos”, recomiendo SQUEAK, http://www.squeak.org/ , ahí tenéis una versión CARBON y otra COCOA es un entorno Smalltalk bastante completo, con muchas herramientas, gráficos, juegos, donde podéis ver todo el código fuente (Smalltalk), modificarlo, aprender, etc..

Por otra parte, también he hecho alguna chapucilla Java en OSX, me refiero a “integrar” una aplicación Swing con las clases que proporciona Apple (com.apple….) para dar “look” Aqua, y está bastante bien. Es trabajoso (aunque no demasiado), pero se pueden hacer aplicaciones con apariencia windows o aqua según el SO bastante aceptablemente, sin embargo me parece mal la política de Apple de sólo “actualizar” la máquina virtual para su último OS, de hecho, la última actualización del Java VM ha sido sólo para 10.3, ¿qué pasa con mi Jaguar??

Saludos…

Anónimo
Anónimo
17 years ago

esta chido

Anónimo
Anónimo
17 years ago

interesante yo les mandare despues muchas cosa sobre herencia multiple , sobre su informacion me parese muy chido

7
0
Me encantaría saber tu opinión, por favor, deja un comentariox
()
x