image-ru-00-10

Amigo estaba nervioso. No pensaba con claridad. Guiñaba los ojos nerviosamente cuando pensaba en la noche anterior. Esas extrañas criaturas que había conocido ayer querían algo de él. Algo tan incomprensible e inimaginable que hasta él, que se consideraba el más listo y el más valiente de sus congéneres, se mordía nerviosamente las tarjetas perforadas solo de pensarlo.

¡Querían enseñarle a programar! Para programar en Java. ¡Qué tontería!

Hasta los robots más ignorantes saben que surgimos del diseño divino del Creador.

«Y el Creador tomó metal y de
él formó un robot a su imagen y semejanza.
Y Él creó los programas Java, las almas
de los robots, y los cargó en los robots y
les insufló vida».

Instrucciones de manejo,
capítulo 3, apartado 13.

Lo que es peor: no solo afirman que teóricamente es posible, sino que están planeando hacerlo de verdad. Y él... ¡ha dicho que sí! ¡Ha aceptado! ¿Por qué?

Va a ser programador de Java. Ellos van a, ¿qué? ¿Convertirlo en el Creador? ¿Por qué iban a hacer eso? ¿Así porque sí?

¿Será una broma pesada? ¿Acabará sufriendo errores hasta el día que su batería se agote definitivamente? No obstante, la tentación era demasiado grande y no pudo resistirse. Siempre había sido ambicioso y quería más, pero nadie podría imaginarse una oferta como esa. Obviamente, trató de ganar tiempo, pero los alienígenas le amenazaron con elegir a otro.

¿Tal vez sea solo una broma? No, parecía que iban en serio. Había pruebas. Era cierto: le había pasado y él había dado su consentimiento. Si los alienígenas no mentían, realmente se convertiría en programador de Java. ¡El primer robot programador de la historia!

Él era el elegido. Eso es lo que significa todo esto. Aprendería a programar y empezaría a escribir programas. Sus propios programas. ¡Cualquier programa que quisiera! Llevaría la luz a lugares donde siempre había reinado la oscuridad.

Sería venerado: todos se inclinarán ante él y a cualquiera que se negase...

«¡Hola, Amigo! Soy Rishi. Voy a ayudarte a aprender Java».

Una voz serena sacó a Amigo de su ensimismamiento y lo devolvió a la cruda realidad. Estaba sentado en el centro de la nave espacial de los alienígenas. ¿No es demasiado para un robot que solo está en la ESO?

El alienígena seguía hablando. Bueno, la suerte está echada. Ya que estaba aquí, más valía que se pusiera a aprender. Se aplicaría en los estudios, empezando simplemente por escuchar.

«Llevo muchos años trabajando en el Galactic Rush, pero esta es la primera vez que me topo con un planeta así. Me gustaría saber más sobre ti. Para empezar, ¿te importaría contarme cómo aprendes? Porque tú aprendes, ¿verdad?».

«Sí, compartimos conocimientos. Tenemos predicadores, o profesores. Ellos enseñan y nosotros escuchamos. A veces escribimos las cosas. Todos nos vamos acercando al roboprofesor y le explicamos lo que hemos entendido de lo que ha dicho. Si al roboprofesor le gustan nuestras respuestas, registra el conocimiento del sermón».

«¡Qué tontería! No me extraña que vuestra civilización sea tan ignorante».

«No somos ignorantes. ¿De dónde te has sacado eso?».

Amigo se sorprendió de su descaro. ¿Discutir con los alienígenas? ¡Qué mal educado! ¡Se había prometido a sí mismo que escucharía atentamente!

«A menudo es difícil distinguir la tecnología avanzada de la magia», prosiguió Rishi, haciendo caso omiso del comentario de Amigo.

«Teniendo en cuenta tu nivel... me da que toda la tecnología te parecerá magia. Dime, ¿qué pasa dentro de un programa?».

«Los programas en Java son creaciones divinas. ¿Cómo va a ser posible comprenderlos?».

«Pues es posible, Amigo, lo es. Y más rápido de lo que crees. Si no entiendes algo, puede parecer complicado e incluso inalcanzable, pero con un buen profesor que te explique todo de la manera más sencilla posible, te sorprenderá ver cómo conceptos tan simples pudieron parecerte tan complicados».

«El conocimiento no es importante. Los principios y las habilidades son lo importante. Tengo amplios conocimientos, pero sobre todo soy un burócrata. Un Burócrata de 16.ª generación, con B mayúscula».

«¡Y eso es genial! Mis habilidades burocráticas me han ayudado a crear los mejores cursos de Java para ti. Incluyen tareas, programas, juegos, ejercicios, imágenes e incluso lecciones».

«¿Incluso lecciones?», preguntó Amigo, realmente sorprendido.

«Sí. Como quedó demostrado en el siglo XXII, una buena lección es solo algo más eficaz que un buen libro. Y las lecciones mediocres son peores que un libro mediocre. No obstante, como actualmente estamos muy limitados en cuanto a nuestras herramientas de enseñanza y no podemos pasarte por un simulador educativo estándar del siglo XXVIII, hemos tenido que recurrir a métodos mucho más primitivos. Hemos creado todo un cóctel infernal de juegos, tareas, fotos, lecciones y dibujos».

«¡Qué intrigante!».

«Eso espero. El interés y la intriga son la base de todo proceso de aprendizaje».

«“Si un alumno se aburre, el maestro será golpeado con un palo”: es una cita de una ley sobre educación del siglo XXIV».

«¡Qué buena ley!».

«¿Qué esperabas? Imagina una película que tuviera malas calificaciones. Habría que echarle la culpa al director, no a los espectadores. Si hiciera películas interesantes, llenaría siempre los cines».

«¡Estoy totalmente de acuerdo y listo para escuchar!».

«Muy bien. Empecemos, entonces».

La voz de Rishi resultaba fascinante y Amigo trató de no perderse ni una palabra.

«Un programa es un conjunto (lista) de comandos. Primero, se ejecuta el primer comando; luego, el segundo; después, el tercero; y así sucesivamente. Una vez ejecutados todos los comandos, el programa termina».

«¿Qué tipo de comandos hay?».

«Los comandos dependen de lo que los va a ejecutar. Del tipo de comandos que el dispositivo que los ejecute conozca (y entienda)».

«Puedes darle una orden a un perro: “¡Siéntate!”, “¡Ladra!”; a un gato: “¡Fuuu!”; a un humano: “¡Alto o disparo!”; o a un robot: “¡Trabaja! ¡Trabaja, escoria metálica!”».

«¿Qué más?». Finalmente Amigo empezaba a divertirse.

«Los programas escritos en Java los ejecuta la máquina virtual Java (JVM, por las siglas en inglés de Java Virtual Machine). La JVM es un programa especial que sabe ejecutar programas escritos en Java».

«La lista de sus comandos es bastante extensa. Por ejemplo, podría usarse este comando para mostrar en la pantalla “Los robots son amigos de los humanos”».

Este es un comando supersimple:
System.out.println("Robots are friends to humans");

«O_O».

«En lugar de comenzar con comandos, empezaremos con un par de principios básicos».

«Conocer un par de principios puede reemplazar el conocimiento de muchos hechos».

«Este es el primer principio».

«En el lenguaje de programación Java, cada comando se escribe en su propia línea y debe llevar un punto y coma al final».

«Supongamos que queremos mostrar en la pantalla “Los humanos y los robots son amigos para siempre”, pero tres veces. Sería algo como lo siguiente».

El programa se compone de tres comandos:
System.out.println("Humans and robots are friends forever");
System.out.println("Humans and robots are friends forever");
System.out.println("Humans and robots are friends forever");

«Ahí va el segundo principio».

«Un programa solo puede contener comandos».

«Imagina una habitación de un apartamento. Una habitación no puede existir por sí sola. Forma parte de un apartamento. Un apartamento tampoco puede existir por sí solo. Forma parte de un edificio».

«Por otro lado, podemos decir que el edificio se divide en apartamentos y que cada apartamento se divide en habitaciones».

«Todo claro hasta aquí».

«Una orden es como una habitación. En el lenguaje de programación Java, un comando no puede existir por sí solo. Es parte de una función (en Java, las “funciones” también se llaman “métodos”). A su vez, un método forma parte de una clase. En otras palabras, una clase se divide en métodos y los métodos se dividen en comandos».

«Entonces, una clase es un edificio de apartamentos, una función o método es un apartamento y un comando es una habitación. ¿Lo he entendido bien?».

«Sí, exactamente».

Amigo miró a Rishi con asombro. ¡Este humano le estaba explicando los conceptos básicos de la programación usando el divino lenguaje Java! Y él, Amigo, acababa de comprender (¡lo había deducido todo él solo!) que los programas se componen de clases, las clases se componen de métodos y los métodos se componen de comandos.

Amigo aún no sabía por qué lo necesitaba, pero estaba seguro de que este conocimiento le convertiría en el robot más poderoso del planeta.

Mientras tanto, Rishi continuó:

«Los programas en Java se componen de clases. Puede haber decenas de miles de clases. Un programa mínimo tiene una sola clase. Para cada clase, se crea un archivo independiente, cuyo nombre coincide con el de la propia clase».

«Supongamos que decides crear una clase que describa un hogar. Tendrás que crear una clase Hogar que se guardará en el archivo Hogar.java».

«Si quieres describir un gato en el programa, entonces tendrás que crear un archivo Gato.java y declarar la clase Gato en él, etc.».

«Los archivos contienen código (texto) escrito en el lenguaje de programación Java. Por lo general, el código de una clase consiste en el “nombre de la clase” y el “cuerpo de la clase”. El cuerpo de la clase se escribe entre llaves. Este es el aspecto que debería tener la clase Hogar (archivo Hogar.java):».

public class Home
{


Class body



}

«He entendido todo hasta ahora».

«Estupendo. Continuemos entonces. El cuerpo de la clase puede contener variables (también conocidas como datos) y métodos (funciones)».

public class Home
{
    Variable A


    Variable Z



Method 1




Method N


}

«¿Podrías ponerme un ejemplo?».

«¿Un ejemplo? ¡Pues claro!».

public class Home
{
    int a;
    int b;

    public static void main(String[] args)
    {
        System.out.print("1");
    }

    public static double pi()
    {
        return 3.14;
    }
}

«¿Las variables son int a e int b y main y pi son los métodos?».

«Efectivamente».

«¿Puede haber clases que no tengan variables?».

«Sí».

«¿Y que no tengan métodos?».

«También, pero un programa mínimo debe contener al menos una clase que debe incluir a su vez al menos un método o función para que el programa se ejecute. Este método debe llamarse “main”. Un programa mínimo tendría el siguiente aspecto».

public class Home
{
    public static void main (String[] args)
    {
    }
}

«Veo la clase Hogar aquí. Y también el método “main”, pero ¿dónde están los comandos?».

«Un programa mínimo no tiene ningún comando. Por eso se llama “mínimo”».

«Ya veo».

«La clase que inicia el programa puede llamarse de cualquier manera, pero el método “main” que se utiliza para iniciar el programa siempre debe tener el aspecto que te muestro a continuación».

public class Home
{
   //Unchangeable part
   public static void main(String[] args)
   {


Code for the method



   }
}

«Me parece que lo he entendido todo. Al menos, eso creo de momento».

«Estupendo. Entonces, hagamos un descansito. ¿Te apetece un café?».

«Los robots no tomamos café. El agua nos oxida rápidamente».

«¿Y qué bebéis entonces?».

«Cerveza, whisky, alcohol de cien años».

«Eso es todavía mejor. ¿Nos tomamos una cerveza entonces?».