Hello world!

hello_worldCuriosamente justo al crear un nuevo blog en WordPress.com la primera entrada que sugiere automáticamente se titula “Hello World!”.  Y digo yo: ¿qué mejor título que éste para un primer post en un blog sobre desarrollo de software (aunque aparezcan 2 posts anteriores, éste se puede considerar el primer post ya que los otros 2 son rescatados de un antiguo blog)?

Pues bien, hurgando en el baúl de los recuerdos, se me antoja un agradable ejercicio de nostalgia hacer un repaso sobre los “Hello World!” que he visto y experimentado en mis propias carnes desde que empecé en el mundo de la programación allá por el año…

1986: el primer ordenador que tuve en mis manos fue un Commodore Vic20. El primero que fue mío, un MSX de Sanyo. Ambos arrancaban con un intérprete de Basic:

10 print "Hello World!"

¡Qué sencillo era programar! Dediqué incontables horas a picar los listados de programas que publicaban en revistas de la época. Después los guardaba en cintas de cassette y los ejecutaba con un “RUN”.

¡Qué tiempos! Mis amigos tenían Spectrum 48K, Commodore 64K, Amstrad CPC464… y yo un MSX de 64K con monitor de fósforo verde!

1988: este año empecé con el ensamblador del Z-80. El Basic se me quedó lento y quería sacar el máximo rendimiento a la máquina. Ahora soy incapaz de escribir de memoria un “Hello World!” en ensamblador pero buscando en la web pude encontrar algo:

 EQU CR    = #0D          ; carriage return
 EQU PROUT = #xxxx        ; character output routine
 ;
         LD  HL,MSG       ; Point to message
 ;
 PRLOOP  LD  A,(HL)       ; read byte from message
         AND A            ; set zero flag from byte read
         RET Z            ; end of text if zero
         JSR PROUT        ; output char
         INC HL           ; point to next char
         JR  PRLOOP       ; repeat
 ;
 MSG     DB  "Hello world!",CR,00
 ;

¡Qué recuerdos! Básicamente lo que hace es guardar un puntero al mensaje en el registro HL y luego va cargando uno a uno los caracteres a imprimir en el acumulador y los va imprimiendo hasta encontrar un cero, momento en el que el programa termina y retorna.

1990: en este año conseguí ser el propietario de un flamante ordenador PC con procesador Intel 80386. ¡Guau! El MSX quedaba atrás y empezaba con palabras mayores. Así, con un buen manual y esa máquina, pude aprender MS-DOS:

echo Hello world!

1992: en octubre de este año ingresé en la universidad para estudiar informática. En el primer curso aprendimos Pascal. Para mi fue una grata sorpresa aprender este lenguaje, teniendo en cuenta que sólo conocía el Basic y el ensamblador Z-80; aquello de la programación estructurada resultaba genial:

program HelloWorld;
begin
  WriteLn('Hello World!')
end.

1993: ya en el segundo año en la universidad aprendimos C. Me pareció aún más interesante que Pascal. Aún podía usar técnicas de programación estructurada pero con accesos de bajo nivel que me recordaban el potencial del ensamblador:

#include <stdio.h>
int main(int argc, char *argv[])
{
 printf("Hello world!\n");
}

Varios dolores de cabeza tuve con punteros perdidos, memorias no liberadas…

1994: el tercer año en la universidad aprendimos bastante sobre bases de datos, y esto me dio la oportunidad de conocer SQLPL/SQL:

SET SERVEROUTPUT ON;
BEGIN
    DBMS_OUTPUT.PUT_LINE('Hello world!');
END;

1995: ya en cuarto curso, gracias a la asignatura de Inteligencia Artificial, pude conocer nuevos lenguajes. Primero fue LISP (menudo lío de paréntesis):

(princ "Hello world!")

y después vino Prolog:

main :- write('Hello world!'), nl.

También fue ese año cuando conocí lo que para mi era un nuevo e interesantísimo concepto, la programación orientada a objetos, y fue con Smalltalk y la torre de Hanoi:

Transcript show: 'Hello world!'.

1996: este año conocí el CGI scripting con Perl. Aquello sí que me maravilló ¡era posible construir páginas web con contenido dinámico!

print "Hello World!\n";

1997: un curso de verano en la universidad me hizo descubrir Javascript. De nuevo estaba maravillado: las páginas web podían ser dinámicas gracias a los scripts CGI y además era posible ejecutar código en cliente!

document.write('Hello world!');

Luego ya vendrían los problemas de compatibilidad entre navegadores etc. pero eso ya es otra guerra… por entonces usábamos el timón de Netscape.

1999: andaba este año buscando mi primer empleo como programador, y una empresa me dio la oportunidad de aprender primero Visual Basic:

MsgBox "Hello, world!"

He de reconocer que me gustó. El lenguaje no era extraño para mi y me daba nuevas e interesantes posibilidades.
A continuación topé con Java por primera vez:

public class HelloWorld {
   public static void main(String[] args) {
       System.out.println("Hello world!");
   }
}

Java me recordaba mucho a C y me enamoró en seguida (y aún lo estoy): escribía un código que funcionaba en todas las plataformas, con programación a la vez estructurada y orientada a objetos, y sin los problemas y dolores de cabeza que ocasionaba C. ¡Eran todo ventajas!

2003: en esta ocasión se me ocurrió desarrollar un proyecto personal, una página web, dinámica por supuesto. Sopesé las opciones que se me planteaban y finalmente decidí que la herramienta ideal para este desarrollo era PHP:

<!--?php print 'Hello world' ?-->

Se me antojaba un extraño potaje entre HTML y programación y de primeras no me terminó de convencer. Aún así, como es habitual en mi, una nueva herramienta, un nuevo reto y un nuevo aprendizaje eran una motivación añadida.

2006: en este año tenía entre manos el desarrollo de una intranet corporativa y Microsoft Sharepoint 2003 resultó ser una gran herramienta para ello, motivo por el cual tuve mi primer contacto con C#, que luego continué con otros proyectos personales:

using System;
class Program
{
    public static void Main()
    {
        Console.WriteLine("Hello world!");
    }
}

Seguramente se me haya quedado algún lenguaje o herramienta por el camino. ¿Por dónde continuar? Pues por ejemplo por Python, Groovy, Objective-C, Ruby, …

Como reflexión, vistos todos estos años con la perspectiva de la experiencia acumulada, el que se ha mantenido ahí siempre y sigo usando a día de hoy es Java, y aún no está muerto en absoluto. Si bien está claro que no es el lenguaje ideal para todo (de hecho no existe tal lenguaje) sí ha quedado claro su gran potencial y que ha sabido evolucionar con el paso de los años sin quedar obsoleto.

Anuncios

2 pensamientos en “Hello world!

  1. Qué buenos recuerdos me trae este post 🙂
    Es genial que te hayas decidido a bloggear, tienes cosas muy interesantes que contar, la cuales estoy deseando leer.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s