jueves, 9 de abril de 2015

Programación Hola Mundo

Hola Mundo

La ventana principal de Lazarus

Una vez instalado Lazarus y Free Pascal, escribir nuestra primera aplicación es coser y cantar.
Lo primero que sorprende es la cantidad de ventanas que aparecen. Cada ventana tiene una función muy útil, y hay incluso más ventanas que pueden aparecer o desaparecer, pulsando el menú Ver. Por supuesto, si te estorban, puedes cerrarlas; solo la ventana principal donde está el menú es necesaria, las demás se pueden abrir y cerrar libremente.
Recomiendo echar un vistazo general a la aplicación, y configurarla a gusto de cada uno. En el menú "Entorno" se encuentran tanto las opciones generales como las del editor. Como puede comprobarse en la foto, he puesto colores personalizados, pues me gusta el color azul retro del antiguo Turbo Pascal para el código.
La ventana donde pasarás la mayor parte del tiempo, es, por supuesto, la del código. Hay otra muy importante debajo, la de mensajes, que informa de todos los errores que pueda encontrar el compilador. Las otras ventanas que se ven en la foto son el editor de interfaces y la lista de propiedades de los controles. Hablaremos más sobre esto en futuras lecciones, pero por el momento, puede ser divertido experimentar un rato.

La primera aplicación

Tras el primer "shock" inicial, te enseñaré a escribir tu primera aplicación en pascal:
En el menú Proyecto, selecciona Nuevo Proyecto, y la opción de proyecto personalizado. Con esto crearemos el programa más sencillo posible, a ejecutar desde la consola.
Efectivamente, como se trata de un programa de consola, y te encuentras en un editor gráfico, debes indicar a Lazarus que quieres que se ejecute un terminal cuando sea compilado. Por lo tanto, antes de nada, ve al menú Ejecutar, y en Parámetros de ejecución selecciona la opción "Usar al lanzar la aplicación". En la entrada justo debajo verás que sale la orden xterm en Linux, y el intérprete de comandos en Windows; eso es lo que pretendemos.
Sin más dilación, te explico que significa el código que ves, que será algo parecido a esto:

program Project1;
 
{$mode objfpc}{$H+}
 
uses
  Classes, SysUtils
  { you can add units after this };
 
{$IFDEF WINDOWS}{$R project1.rc}{$ENDIF}
 
begin
end.
De momento, no tienes que comprender todo lo que pone. Aprenderás más adelante que significa. Como nuestro programa es muy básico, hay cosas que nos sobran. Borra todo lo que sobre hasta que se quede así:
program Project1;
 
begin
end.

Esto es todo lo que se necesita para que un programa hecho en Pascal funcione. Por supuesto, esto no hace nada. Es lo más básico de todo.
Lo que significa es lo siguiente:
program Project1;

Indica al compilador que este fichero se trata de un programa, y que se llama Project1. El punto y coma del final es siempre necesario excepto para algunos casos; significa que detrás de ello van otras instrucciones.
begin
end.

Significa que ejecute todo lo que hay entre begin end.. Evidentemente, no hay nada, por eso no ejecuta nada. Pon algo interesante en medio:
program Project1;
 
begin
          writeln('¡Hola mundo!');
end.

A continuación, salva el proyecto. Preguntará el nombre del fichero, ponle el nombre leccion1.lpi, guardándolo en un directorio que te convenga.
Te habrás dado cuenta, que, tras salvarlo, el nombre del programa ha cambiado automáticamente:
program leccion1;
 
begin
          writeln('¡Hola mundo!');
end.
Efecticamente, ahora es leccion1. Correcto.
Finalmente, pulsa Ejecutar (en el menú ejecutar), o F9. Saldrá una ventana con un contenido similar a este:
/home/javi/program/pascal/lecciones/leccion1
¡Hola mundo!
--------------------------------------------------
Press enter
Lo que nos interesa aquí es, por supuesto, el ¡Hola mundo! que se ve en medio...

¿Porqué ha sucedido esto? No hay que ser muy listo para ver que ello tiene que ver con esto:
          writeln('¡Hola mundo!');

Lo que significa es: escribe una nueva línea con el contenido '¡Hola mundo!' en la consola. writeln no es más que una entre las miles de funciones que hay disponible en Pascal. Programar consiste en llamar a funciones que ya están hechas, o hacer unas propias si no están disponibles. En este caso, writeln es la función que se encarga de escribir datos en la consola.

Distribuir tu aplicación

Parece sorprendente, pero tu aplicación ya está lista para ser empaquetada y mandada a los amigos. Si vas al directorio del proyecto, te encontrarás con el archivo leccion1.exeen Windows o simplemente leccion1 en Linux y OS X. Este es un ejecutable con todo lo necesario para ejecutarse en otras máquinas.
Tanto en Windows como en Linux puedes ejecutar la aplicación en la consola como de costumbre:
cd directorio_donde_esta
./leccion1   => si es en linux y OS X
leccion1     => si es windows
Por supuesto, es un programa tan tonto que difícilmente encontrarás a alguien interesado... pero es una buena forma de demostrar lo simple que es crear aplicaciones con Lazarus/FreePascal. Compara esto con los archivos Java y el lío de configuración de los jar, make, los headers de C y C++, etc. Es más, en las próximas lecciones veremos que más cosas buenas tiene Pascal que ofrecer en este aspecto.
Incluso para más adelante, cuando las aplicaciones sean gráficas, es igual de fácil compilarlas y empaquetarlas.
Free Pascal enlaza las aplicaciones estáticamente, por defecto. Esto significa que todo lo necesario (excepto por supuesto las librerías del sistema) está contenido en el ejecutable. No más follón con dependencias.

Finalmente, una aplicación creada en Windows es recompilable, generalmente sin cambios, en Linux y OS X. Eso significa que, generalmente, solo hay que hacer el esfuerzo de programar en una plataforma y chequear que funciona en las otras, ¡así de simple! Y si lo precisas, puedes hacer pequeños ajustes para cada plataforma.

No hay comentarios:

Publicar un comentario