Imagen de avatar anacareaga
Ana Lilia Careaga

“Java: Programación con aroma y sabor a café”

Ana Lilia Careaga Mercadillo, Julio  2011

Abstract

What is Java? Isn’t it a coffee drink? Yes, but that’s not what we’re talking about here. We are talking about the computer language which has become very popular for its multiple applications. Java is a simple,  object-oriented, network-savvy, interpreted, robust, secure,   neutral architecture, portable, high-performance and dynamic language. It was developed   in 1995 by Sun Microsystems, now   acquired by Oracle Corporation, and was intended for mobile and domestic devices to be able to “talk” to each other. The language has a very similar syntax from C and C++ but has a simpler object model. Java applications are compiled to bytecode and run in any Java Virtual Machine (JVM), regardless operating system and computer architecture. It is intended to let application developers “write once, run anywhere” and   is currently one of the most popular programming languages in use, particularly for  web server applications, video game consoles  and mobile devices but also in science supercomputers. If you browse the Web, you’ve probably run into Java somewhere. Ever wondered what it is and what you can do with it? Read this article and   discover what Java really is.

————————————————————————————————————-

Introducción

“Tinto “es para los colombianos lo que “Java” es  para los estadounidenses, y aunque ambos términos se usan para referirse a una taza de café, hay algunas diferencias.

“Tinto “es para los colombianos lo que “Java” es  para los estadounidenses.

“Tinto “es para los colombianos lo que “Java” es para los estadounidenses.

Para los colombianos, un tinto es, además de una taza de café, un  sinónimo de afecto y hospitalidad. Y quienes nos hemos honrado en probar tan deliciosa bebida en Colombia, sabemos que al hacerlo surge una energía y optimismo que invita a cualquier persona a entablar un diálogo aromatizado de café. En cualquier lugar de este país: en los escenarios más exóticos, en las playas o en las grandes ciudades, siempre habrá alguien que lo sirva y te lo ofrezca. En Bogotá, la oferta es infinita para satisfacer el paladar del más exigente consumidor y encuentras la  mejor taza de café en diferentes presentaciones, colores y sabores…desde un tinto hasta un exquisito café gourmet. La ciudad de Bogotá se encuentra  en el centro del país a una altura de 2,600 metros y se extiende de sur a norte en una gran meseta entre verdes y altas montañas. La capital colombiana puede verse envuelta por las  suaves nieblas de la montaña y su temperatura oscila entre los 8 y 15 grados Celsius. La fatiga se hace sentir desde el momento de arribar y se acentúa al hacer un esfuerzo superior al normal, pero indudablemente el aroma a café que se respira en el ambiente reanima hasta el más fatigado corazón. En el norte de la ciudad se encuentra la zona residencial y comercial. Aquí,  las modernas construcciones hechas de ladrillo  ofrecen una vista espectacular con todas sus tonalidades del amarillo rojizo de la arcilla cocida que se observa en las fachadas, techos y escaleras, y no es raro asociarlas con el aroma de café que se desprende a todas horas. En la zona sur se encuentran los barrios más humildes y en el centro muchas plazas, museos, iglesias y espacios verdes .Pero Bogotá se admira más en su centro histórico, en el barrio de “La Candelaria”, donde se aprecian construcciones coloniales y arte virreinal .Ahí, desde luego, se encuentra el capitolio, la catedral y la gran plaza Bolívar, que posee un especial estilo europeo. Las casonas coloniales sirven de albergue para los museos y galerías de arte. El más impresionante es el Museo de Oro que nos invita, además de admirar una enorme  y sorprendente colección de piezas de oro, a disfrutar en su cafetería un “tinto” al final del recorrido que nos dará la energía suficiente para subir después al Cerro de Monserrate, rodeado de enormes eucaliptos y ubicado a 3,100 kms de altura sobre el nivel del mar, pero no te preocupes porque el ascenso es en teleférico a menos que quieras desafiar a algunos peregrinos y decidas hacer la caminata. Resulta fascinante caminar por las calles de Bogotá repletas de gente, ruido, tiendas e iglesias pero lo mejor de todo  es disfrutar a su gente, cuya hospitalidad y calidez la ofrecen junto con sus  platillos típicos como el ajiaco, acompañado de una buena arepa. Lo anterior hace de nuestra visita a Colombia, una experiencia inolvidable pero siempre y cuando, en cualquier momento, se comparta un tinto, porque tinto, para los colombianos es amistad.

Es importante saber que los granos de café, tienen características distintivas según su procedencia[1]. Y ésta es, quizá, la razón que hace una experiencia diferente tomar un tinto (Bucaramanga, Medellín, Colombia) , un java (isla Java, Indonesia), un café de “altura” o “high grown” (México y Honduras),un harrar (Etiopía) o un minas gerais (Brasil), entre otros. Estas características como el sabor, que incluyen sensaciones como “cítrico” o “terroso”, contenido, cuerpo y acidez hacen que la estimulación se sienta diferente y, por lo tanto, el efecto difiere sutilmente. Dichas características dependerán del ambiente local donde crecen las plantas del café, su método de proceso y subespecie genética. Así, los cafés presentan un gran abanico de sabores  que van desde los más suaves hasta los más fuertes y raros.

El café de Java tiene un sabor distintivo y muy disfrutado por los amantes del café fuerte, picante y dulce. La producción de café arábigo[2] más buscado de Java se encuentra  en la meseta de “Lien” en el extremo oriental de esta isla, perteneciente a Indonesia,  situada a una gran altitud, entre selvas tropicales y montañas volcánicas. La isla de Java forma parte del archipiélago de Indonesia ubicado en el sudeste asiático y es considerada como una de las joyas que la naturaleza ha obsequiado a nuestro planeta. La capital de la República de Indonesia es Yakarta, que se encuentra precisamente en esta isla que es, por cierto, la más poblada del mundo con más de 124 millones de habitantes. Ahí, es posible encontrar especies de plantas autóctonas cuya belleza exótica es asociada no solo a sus paisajes sino a sus habitantes. En sus selvas tropicales se encuentran orquídeas y multitud de plantas epifitas [3] o plantas aéreas que hacen que el clima sea formidable para los cafetos. El origen de esta isla es totalmente volcánico y en su relieve se levantan más de cien volcanes cuyas cumbres sobrepasan los 3,000 metros sobre el nivel del mar. Las cenizas volcánicas contribuyen notablemente a la fertilidad de sus tierras pero aunque los volcanes fertilizan sus inmediaciones y hacen rico el paisaje, su furia es temida por aquellos que encuentran sustento en el suelo. Dicen que los javarianos venden sus almas al volcán y éste las reclama con penosa regularidad.

El volcán Semeru es un faro humeante que cada cinco minutos llena el cielo de destellos “atómicos”, visible desde cientos de kilómetros. Dicen los ciclistas que se necesita tener unas piernas de acero para  ascender un monte en Indonesia porque la “lógica “ nacional de ahorro de cemento y alquitrán para construir una carretera hace que las poblaciones se unan en línea recta, en vez de suaves curvas, lo cual hace, desde luego que el camino tenga una pendiente abrupta e inmontable. Pero, indudablemente, todo tiene su recompensa y para los ciclistas ésta tiene forma de paisaje… y así, por ejemplo, en el volcán llamado Bromo, al  bajar un camino polvoriento que conduce al centro del cráter, las nubes se ponen al descubierto a los ojos de quien puede llegar ahí y constituye un bello asalto a la vista por la naturaleza.

En Java, como en Colombia, el carácter amigable, jovial  y “alocado” de su pueblo está  asociado al café. Y de igual forma, tomarse un “java” es irresistible para todo visitante, pero a diferencia de la suave bebida colombiana, ésta es fuerte y densa y es llamada localmente Kopi Jawa”. Junto con el café, los indonesios te comparten sus platillos típicos como es el  “nasi goreng” (arroz frito) y el “mie goreng” (fideos fritos)…mmm.. ¡deliciosos!

El cultivo del café en Java se introdujo por los holandeses en el siglo XVII cuando la isla formaba parte de su colonia de las Indias Orientales. Se hizo tan popular en Occidente que en algunos sitios se llamó java al café. Esta denominación aún se conserva en Norteamérica al grado que mucha gente desconoce que Java no sólo es una taza de café sino una bella isla en el sudeste de Asia. Para los informáticos, Java tiene un significado adicional porque es el nombre que se ha dado a un importante lenguaje de programación, cuyo símbolo es, precisamente, una taza de café caliente. Y para los no informáticos, Java es “algo” que se instala en nuestra computadora, consola de juegos o dispositivo móvil que nos permite jugar en línea, chatear con gente alrededor del mundo, calcular el interés de tu hipoteca o ver imágenes en 3D. Para las empresas, es un software necesario para que puedan “correr” muchas aplicaciones en la Intranet y otras  soluciones de e-business fundamentales en la operación de su negocio.

¡Java está en todas partes ¡ Está en tu computadora, en los data centers, en las consolas de videojuegos, en los  celulares o supercomputadoras científicas.

En este artículo se describirán las características de este importante lenguaje de programación, fundamental para el ofrecimiento de la  mayoría de los Servicios IT, pero, antes de comenzar, asegúrate de acompañar esta lectura con una buena taza de café.

————————————————————————————————————

¿Qué es  Java? ¿Cuándo y por qué surgió?

Java es un lenguaje de programación orientado a objetos desarrollado por Sun Microsystems[4] (recientemente adquirida por Oracle Corporation) a principios de los años 90tas. Un lenguaje de programación orientado a objetos es una forma especial de programar, más cercana a como nos expresamos en nuestro lenguaje en la vida diaria. Este lenguaje de programación conserva mucho de la sintaxis de otros dos lenguajes llamados C y C++ [5], pero tiene mayor simplicidad porque elimina ciertas herramientas que inducen errores.

Sun Microsystems patrocinó en 1991 un proyecto de investigación llamado “Green” con la idea de tener un lenguaje de programación  que se adaptara a dispositivos electrónicos domésticos que tuvieran un microprocesador. El equipo  “Green Team” trabajó durante 18 meses en Menlo Park liderado por James Gosling quien llamó a su lenguaje inicialmente “Oak”  debido  a un roble que tenía a la vista de su ventana en las oficinas de Sun. Posteriormente se descubrió que ya existía un lenguaje de programación con el mismo nombre y el  término Java lo sustituyó cuando estando en una cafetería frecuentada por varios de los miembros del equipo fue sugerido mientras disfrutaban una taza de café fuerte y aromático. Sin embargo, aún no está claro si también se trata de un acrónimo de las iniciales de sus creadores: James Gosling, Arthur Van Hoff. Y Andy Becholsheim; pero definitivamente, el hecho de que el icono que lo representa sea una taza de café caliente, confirma que se refiere al café ya que en la cafetería cercana a las oficinas de Sun se ofrece ese tipo de café. Otro dato curioso es que los 4 primeros bytes de los archivos .class que genera el compilador (llamados “número mágico”), son en hexadecimal 0xCAFEBABE.

Pero el proyecto Green tuvo dificultades porque el mercado de dispositivos electrónicos inteligentes de uso doméstico no se desarrolló como se esperaba. Peor aún, un contrato importante por el que Sun había competido se le otorgó a otra empresa y el proyecto estuvo a punto de cancelarse. Afortunadamente, coincidió que en este momento la World Wide Web comenzó a ganar popularidad y Java tenía un gran potencial para adaptarse para agregar contenido y dar animación a la Web .Esto dio nueva vida a la taza de café caliente y Sun anunció formalmente una conferencia (1995) donde llamó la atención especialmente a la comunidad de negocios. Por esta razón, en la actualidad Java se utiliza para desarrollar aplicaciones empresariales a gran escala y para mejorar la funcionalidad de los servidores.

Java

Java

El objetivo inmediato de Gosling fue reorientar la plataforma hacia la Web, que, con la llegada del navegador Web que existía entonces “Mosaic” facilitaría la comunicación interactiva. Sun creó además su propio navegador conocido bajo el nombre de HotJava. Pero en el momento en que Netscape desplazó a Mosaic Sun fue sorprendido positivamente  cuando el Vicepresidente Ejecutivo (Marc Andressen) de Netscape decidió que Java sería la plataforma que soportaría sus navegadores. A partir de este momento, Sun fundó el grupo empresarial JavaSoft para que se encargara del desarrollo tecnológico.[6]Dos semanas después se publicó la primera versión del lenguaje Java. La promesa inicial del propio Gosling fue “Write once, Run Anywhere” (Escríbelo una vez, ejecútalo en cualquier lugar), de donde es fácil deducir que Java es un lenguaje que corre en cualquier plataforma y es independiente de ésta. Versatilidad que se logró cuando se incorporó la posibilidad de ejecutar applets (que es un pequeño programa que es utilizado en una página Web para ejecutar alguna aplicación).

Java ha experimentado muchos cambios desde la versión primigenia llamada JDK 1.0 (Java Development Kit, versión 1) hasta la última Java SE 7 (Java Platform, Standard  Edition) que se lanzó en febrero de 2011.La próxima versión Java SE 8 será lanzada a finales de 2012.

¿Por qué usar Java?

Indiscutiblemente, la versatilidad y eficiencia de la tecnología Java, la portabilidad de su plataforma y la seguridad que aporta  han convertido a esta tecnología la ideal para su aplicación en redes, incluyendo Internet. Es por ello que celulares, centros de datos, consolas de juegos, supercomputadoras científicas, dispositivos domésticos emplean Java. Basta mencionar que más de 4.500 millones dispositivos utilizan Java (celulares, sintonizadores, impresoras cámaras Web, juegos interactivos, sistemas de navegación para automóviles, terminales de lotería, dispositivos médicos, cajeros automáticos….).

¿Por qué los desarrolladores de software eligen Java?

Java ha sido probado, mejorado y ampliado por una comunidad especializada de más de 7 millones de desarrolladores que la empelan en todo el mundo. Las razones son las siguientes:

  • Desarrollar software en una plataforma y ejecutarlo en prácticamente cualquier otra plataforma (cualquier sistema operativo).
  • Crear programas para que funcionen en un navegador Web y en servicios Web.
  • Desarrollar aplicaciones para servidores como foros en línea, tiendas, encuestas, procesamiento de formularios HTML, etc.
  • Combinar aplicaciones o servicios que usan el lenguaje Java para crear servicios o aplicaciones totalmente personalizados.
  • Desarrollar potentes y eficientes aplicaciones para teléfonos móviles, procesadores remotos, productos de consumo de bajo costo para prácticamente cualquier tipo de dispositivo digital.

Diferentes Ediciones Java para diferentes Aplicaciones

Sun define tres ediciones en un intento por cubrir distintos entornos de aplicación, donde los programas son organizados en grupos llamados bibliotecas. Cada biblioteca contiene interfases y software relacionados. Así, ha distribuido muchas de sus API´s[7] (Application Program Interface) de manera que pertenezcan a cada una de las  tres principales ediciones[8]:

  • Java ME (Java Platform, Micro Edition) o J2ME — orientada a entornos de limitados recursos, como teléfonos móviles, PDAs (Personal Digital Assistant), etc. Especialmente para dispositivos con  limitaciones de memoria o procesamiento por lo tanto sus API´s son ligeras J2ME se divide en dos grupos de bibliotecas:

–      Connected Limited Device Configuration (CLDC): Para móviles y smartphones, que son más limitados.

–      Connected Device Configuration (CDC): Para tablets, netbooks, Pocket PCs y algunos dispositivos más poderosos.

  • Java SE (Java Platform, Standard Edition) o J2SE — para entornos de gama media y estaciones de trabajo. Aquí se sitúa al usuario medio con PC de escritorio. Ofrece varias API´s que  se bajan directamente del sitio de Java (Oracle Corporation).Se divide en dos grupos:

–      Java Development Kit (JDK) o Standard Development Kit (SDK): un kit para desarrollo en Java y debe ser instalado sólo por los desarrolladores, por poseer herramientas para tal tarea.

–      Java Runtime Edition JRE: una versión más liviana de JDK pues está preparada para el ambiente de ejecución, o sea, esta versión ejecutará los sistemas construidos con SDK.

  • Java EE (Java Platform, Enterprise Edition) o J2EE — orientada a entornos distribuidos empresariales o de Internet. Posee un gran número de API´s donde la seguridad es la principal preocupación. Es ideal para realizar aplicaciones en servidores de aplicación así como para distribución de servicios a terceros. La versión 7 estará disponible para trabajar en una plataforma de Cloud Computing.

La información sobre cada edición y el sitio donde pueden bajarse gratuitamente  es:  http://www.oracle.com/technetwork/java/index.html

El conjunto de las APIs es controlado por Sun Microsystems/Oracle junto con otras entidades o personas a través del software llamado JCP (Java Community Process). Las compañías o individuos participantes del JCP pueden influir de forma activa en el diseño y desarrollo de las APIs, algo que ha sido motivo de controversia.

Otras Ediciones de Java

JavaFX es una familia de productos basados en Java para la creación de RIA´s (Rich Internet Application) que son aplicaciones Web que tienen la característica principal de ser multimedia e interactivas. Hay dos tipos de plataformas: JavaFX Script y JavaFX Mobile y corren en una amplia variedad de dispositivos.

Java Card: Es una tecnología basada en Java para applets (aplicaciones) en tarjetas inteligentes como la que se emplea en tarjetas SIM del celular y monederos electrónicos.

Java TV: También conocida como JSR 927 provee una implementación segura para aplicaciones que corren a través de la TV o set top boxes como video en demanda, juegos y aplicaciones educativas.

Máquina Virtual Java

Java es multiplataforma. Cuando un programa Java es compilado, un código intermediario es generado al cual se le ha llamado bytecode. Este bytecode es interpretado por la Máquina Virtual Java (JVM) instalada en la computadora del usuario y corre en la mayoría de los sistemas operativos. En otras palabras, la máquina virtual es una máquina hipotética que emula por software una máquina real y es la responsable de  traducir los bytecodes en el código nativo del sistema operativo  de manera que se pueda correr cualquier aplicación.

Compilador e Interpretador Java

La compilación consiste en  traducir, línea por línea, un programa de alto nivel a instrucciones en código de máquina que pueda interpretar las acciones a seguir. De un código Java, que está en un archivo .java, el compilador javac genera el bytecode el cual crea a su vez un archivo .class. Después de eso la  Máquina Virtual Java ejecuta el bytecode y corre el programa. El compilador de Java llamado JIT (Just in time) analiza y borra códigos innecesarios aumentando con ello la velocidad de ejecución lo que ha hecho de Java un lenguaje más rápido que el propio “C”.

Java

Java

Entornos de desarrollo en Java (IDE) : Eclipse, Netbeans y  Jbuilder

Existen diferentes programas comerciales que permiten desarrollar aplicaciones en código Java. La compañía Oracle, que recién adquirió Sun Microsystems,  distribuye gratuitamente el JDK (Java Development Kit) y bibliotecas (a veces llamadas también librerías) por separado que permiten compilar y ejecutar programas en Java. Sin embargo los  entornos de desarrollo integrados o IDE (Integrated Development Environment), como su nombre lo dice, en un mismo programa es posible  escribir el código en Java, compilarlo y ejecutarlo sin tener que cambiar de aplicación .Los entornos de desarrollo en Java más representativos son los siguientes:

Eclipse: Eclipse [9] es un entorno de desarrollo integrado (IDE en inglés) de código abierto  multiplataforma para desarrollar  “Aplicaciones de Cliente Enriquecido”, opuesto a las aplicaciones “Cliente-liviano” basadas en navegadores.

Netbeans: NetBeans [10] es un proyecto de código abierto de gran éxito con una gran base de usuarios, y una comunidad en constante crecimiento. La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir de un  plug- in. Un plug- in es un archivo Java que contiene classes de java escritas para interactuar con las APIs de NetBeans y un archivo especial (manifest file) que lo identifica como módulo.

Jbuilder: Jbulider es un entorno de desarrollo IDE, basado en Java y parecido a Eclipse.

¿Dónde  puedo aprender a programar en Java?

Actualmente en muchas escuelas y universidades ofrecen cursos de programación en Java. Pero para los que quieran aprender a programar en Java por su cuenta hay una infinidad de tutoriales  en la red. Recomiendo revisar los que ofrece Oracle en:

http://download.oracle.com/javase/tutorial/index.html

Para aprender a hacer tu primer programa de “Hello World” en Java, puedes ver este video:

http://www.youtube.com/watch?v=UGmhks4K13g&feature=related

……………………………………………………………………………………………

Conclusiones

Dicen que escribir un programa en cualquier lenguaje de programación es como escribir un ensayo, y escribir un ensayo es como crear una buena pintura. Porque tanto los códigos de línea, como las frases, al igual que los colores, se deben combinar en forma agradable. La armonía resultante de esta mezcla es el gran secreto de los ensayistas así como el de los programadores .Quien sabe escribir un buen ensayo, puede hacerlo en todos los lenguajes si respeta las reglas gramaticales y la sintaxis de cada lengua; de manera semejante, un buen programador lo es en todos los lenguajes si tiene dominio de los códigos y su respectiva sintaxis. Pero, no basta con el dominio impecable del código, en este caso de Java, como tampoco basta que las ideas de un ensayo sean armoniosas, es preciso mostrar argumentos de una forma cautivante. Y, así como un ensayo se escribe para ser leído y cautivar al lector por su necesidad de ilusión y de esperanza, un programa de cómputo debe ser escrito para transformar un simple código en una acción específica que pueda tener argumento para reutilizarse por cualquier programador en cualquier máquina. Y   , de manera semejante a un texto, como  diría Octavio Paz: “el texto es un lenguaje que al usarse se reproduce y se vuelve otro”, los lenguajes de programación, en especial los de código abierto buscan ese mismo efecto: hacer desaparecer al autor, dejando sólo su huella para que pueda ser continuada por alguien más.

Java se ha convertido en un lenguaje de programación con una implantación masiva en todos los entornos (personales y empresariales). Por esta razón es imprescindible buscar la armonía de un ensayo, los colores cautivantes de una bella pintura y el logro personal que se tiene ante el hecho de crear algo pensando en los demás. El desarrollo del software es en definitiva, una actividad creativa, aunque no necesariamente artística ya que no hay que confundir arte con ingeniería.


[1] Citado en http://www.bedri.es/Comer_y_beber/Cafe/Variedades_de_cafe.htm

[2]. También es conocido como café turco

[3] Se refiere a cualquier  planta que crece sobre otro vegetal usándolo solamente como soporte

[4] Sun Microsystems es una empresa informática recientemente adquirida por  Oracle Corporation anteriormente parte de  Silcon Valley, fabricante de software y semiconductores.

[5]C es un  lenguaje de programación de alto nivel creado en  1972 por los Laboratorios .Bell. C++ es otro lenguaje de programación, basado en  la manipulación de objetos (programa orientado a objetos), creado en  1980

[6] Información extraída de varias fuentes: http://www.cad.com.mx/historia_del_lenguaje_java.htm,  Mc Laughlin, Brett Java & XML, 2nd Edition Solutions to Real-World Problems,Burd, Barry, Java for dummies. 5th edition

[7]Una API es el conjunto de funciones y procedimientos  que ofrece cierta  biblioteca para ser utilizado por otro software como una capa de abstracción.

[8] Citado en http://www.oracle.com/technetwork/java/index.html

[9]Citado en http://es.wikipedia.org/wiki/Eclipse_(software)

[10]Citado en http://es.wikipedia.org/wiki/NetBeans

Deja un comentario