Ventana Shell, Vim y código "Hello World"

    Esta es una guía para los no iniciados en el mundo de la programación. Pretende dar las pautas para la creación de un entorno de trabajo similar al disfrutado en #42MálagaFTef (febrero 2022), pero bajo el sistema operativo Windows.

    Básicamente consiste en disponer de un terminal, en el que podamos ejecutar desde la línea de comandos Shell / Bash, Git, para el control de versiones en repositorios, Vim, como editor de texto y gcc, como compilador de C. Intentemos aclarar un poco todo esto.

    Algo de historia para comprender mejor lo que queremos hacer. Pensemos en un entorno Linux, consultando a la fuente Linux handbook nos dice que un Shell es un intérprete de línea de comandos, es decir que acepta y ejecuta comandos. Cuando abrimos un terminal en Linux, ya está ejecutando el shell predeterminado de su sistema. Bash suele ser el shell predeterminado en la mayoría de las distribuciones de Linux, razón por la cual vemos a bash como sinónimo de shell. Ya está, hemos comprendido algo importante, ¿te sientes diferente?, pues esto no es nada.

    Que podemos hacer desde la línea de comandos, bastantes cosas como crear directorios y archivos, realizar búsquedas, listar contenidos, editar propiedades de los archivos, crear y ejecutar script de shell, …, crear archivos de código y es aquí donde queríamos llegar.

    Antes de tirarnos a la piscina para empezar a escribir código, necesitamos conocer una herramienta que nos permita el trabajo en equipo y ¿porqué?, si yo me basto solo. Ahí es donde te equivocas, la programación requiere de colaboración, trabajo en equipo y mas al principio, siempre necesitaras ayuda, la de tu par, compañero de viaje, experto en el que inspirarte o 'San Google'.

    ¿Qué es git?, buena pregunta. Es un sistema para el control de versiones. Digamos que cuando estas trabajando en equipo y alguien comienza un proyecto, se ha de trabajar de forma coordinada, evitando en lo posible 'accidentes o solapamientos innecesarios' para no desperdiciar nuestro bien mas preciado, el tiempo. Git contempla unos cuantos comandos para realizar su función, ya los consultarás, ahora lo importante es que comprendas que con 'git init' creamos el contenedor de trabajo o repositorio y en él, se llevará la cuenta de todas las versiones 'stayed'. Un repositorio es por tanto un contenedor del proyecto. Estos pueden estar en local o en la nube, el mas conocido para este último es github.com. Un archivo interesante en los repositorios es el archivo oculto '.gitignore', en el se detallan todos los archivos que queremos excluir del comando 'git push', en definitiva archivos sin interés o que queremos preservar. Existen muchas plantillas para la creación de este archivo y dependerán de los entornos de trabajo.

    Hasta aquí todo lo que tiene que ver con el entorno de trabajo, pero ¿dónde escribimos nuestro código?. Necesitamos un editor de texto preparado para la escritura de código, es decir que distinga en la escritura, que es una variable, su valor, comandos, constantes,…, esta herramienta es Vim y se incluye de serie en sistemas UNIX y OS X, así como un interprete de lo escrito, de forma que podamos convertirlo al lenguaje máquina y poder ejecutarlo.

    Esto es gcc, son las siglas de 'GNU Compiler Collection' y distribuida bajo licencia general pública GPL. Originariamente su denominación era 'GNU C Compiler', pero con el tiempo esta se extendió a otros lenguajes como C++, Fortram, Ada., lo que lo llevó al cambio de denominación. Con el compilador convertimos los archivos de texto (código legible) en archivos ejecutables (código máquina, no legible), o lo que es lo mismo en unos y ceros.

    Y ya estamos en el meollo del artículo!!!. Acudimos a msys2.org, en esta web podemos encontrar MSYS2, es una colección de herramientas y bibliotecas que nos proporciona todo lo necesario, descrito anteriormente para ejecutarlo bajo Windows.

    Descargamos el instalador msys2-x86_64-20220128.exe, versión para sistemas operativos Windows 7 de 64 bits o posterior. Ejecutamos el instalador y aceptamos las opciones recomendadas. Al termino podemos lanzar MSYS2 y nos abrirá el terminal. Esta ventana de aspecto rudimentario será donde nos movamos a partir de ahora. Pero antes de empezar debemos actualizar la base de datos de los diferentes paquetes.

En línea de comando ejecutamos lo siguiente:

$ pacman -Syu  (al término seguimos con la línea siguiente)

$ pacman -Su (solo queda instalar gcc)

$ pacman -S --needed base-devel mingw-w64-x86_64-toolchain


'Et voilà', pero ¿ya lo tenemos todo?, no. Aún nos faltan cosillas: Git y Vim.


$ pacman -S vim (ya tenemos nuestro editor de código)

$ pacman -S git (ya tenemos nuestro control de versiones)


Ahora si, ya lo tenemos y funciona.

    Lo mas probable es que, con el tiempo, al escribir código algo mas complejo mas allá del 'Hello World' y ejecutarlo os den los temidos errores: 'Bus error' o 'Segmentation fault', …, bienvenido al mundo <code>.