Ariel Costas

Resolviendo los grandes debates del mundo de la informática

Por Ariel Costas - 5 de noviembre de 2021

NOTA: Este artículo es humor, no te lo tomes muy en serio. Si quieres quejarte, manda un correo a ariel arroba costas punto dev

Desde que las computadoras existen, algunos grandes debates han existido sobre dos opciones populares o usar cierto programa u otro. Hoy daré mi opinión sobre estos temas, y por qué mi elección es (probablemente) la mejor /s.

Tabulaciones o espacios

Cuando se indenta el código siempre hay dos opciones: o eres una persona normal y usas tabuladores o quieres ver el mundo arder y usas espacios. Un archivo de código fuente no es más que un fichero de texto en tu disco duro, y cada carácter introducido es un byte (o más) de espacio. ¿Por qué querrías usar cuatro bytes cuando puedes usar solo uno?

Una tabulación horizontal es el carácter ASCII 0x09, y un editor puede mostrarlo como quiera: moviendo el texto después de él 4 columnas a la derecha, 8 columnas o solo dos si así lo deseas. Esto significa que todo el mundo recibe un único byte (0x09) pero eligen como quieren verlo, como una elección personal.

Por otra parte, los espacios son 0x20 en una tabla ASCII, y cada espacio mueve el texto que le procede UNA COLUMNA a la derecha, así que para indentarlo como 4 espacios necesitas 4 bytes. Esto es el cuádruple de lo que necesita un tabulador, hace el fichero más grande y no permite la personalización, porque podría preferir tener indentado de dos columnas, y otra persona de 8 o incluso 16.

Por favor, no malgastes recursos usando espacios, el planeta y otros desarrolladores te lo agradeceremos.

Line Feed vs CarriageReturn+LineFeed

Esto no es tán habitual, pero llegamos al mismo problema: malgastar bytes. Esto es en parte gracias a Windows y DOS usando CR+LF hoy en día, mientras que los sistemas tipo Unix usan solo LF.

Puedes haber visto “\r\n” en algún lugar antes, esas son las secuencias de escape para CR (\r) y LF (\n), que indican que una línea termina y los próximos bytes están en otra línea. ¿Por qué usar dos caracteres para indicar que una línea termina y la siguiente comienza? Una es suficiente, como los sistemas tipo Unix demuestran.

El kernel Linux tiene 17.5 millones de líneas de código, y cada línea tiene tiene un final de línea, así que 17MB de código del kernel son solo finales de línea. Si Linux usase CRLF, eso DUPLICARÍA la cantidad a 34MB solo para saltos de línea.

Así que, una vez más, no malgastes recursos inútilmente. Gracias :)

Modo claro o modo oscuro

Esto es más una preferencia personal, pero prefiero que las cosas relacionadas con la terminal y el código estén en oscuro, por algún motivo. Mis ojos se cansan cuando leo código en modo claro, o lo escribo.

Esto no me pasa con cosas como páginas web, puedo leer artículos largos en una página con fondo blanco sin problema, y no me puedo acostumbrar al modo oscuro en páginas web, programas o apps de teléfonos celulares.

Vi/Vim vs Emacs

En los antíguos días de la informática, los editores de texto más populares eran GNU Emacs y Vi (o vim, VI Mejorado1). Gran parte de las distribuciones para servidores incluyen vim instalado por defecto, porque es bueno para editar desde una terminal.

Emacs, sin embargo, es más extensible y fácilmente personalizable utilizando Elisp (su propia variante del lenguaje de programación Lisp). Emacs también es conocido por cosas como Org-mode, o ser utilizable como un sistema operativo de escritorio (no exactamente, pero casi) teniendo un Gestor de Ventanas (EXWM), Agenda (Org), navegador, terminal e incluso clientes para IRC y otros métodos de comunicación.

Si no conoces ninguno de los dos, te recomiendo que empieces aprendiendo los atajos de teclado de vim (moverte, abrir y cerrar buffers, modos de edición, remplazo y demás) y luego instalar emacs con algo como Evil-mode. De este modo, tienes la extensibilidad de Emacs mientras tienes los atajos (más populares) de vim, y teniendo las mismas asignaciones de tecla en un editor gráfico Emacs o un servidor remoto usando vim en una terminal con SSH.

Y ya está, he resuelto los grandes dilemas/debates de la informática que han existido durante años, en solo unas líneas de texto. Supongo que soy el ser humano más inteligente que nunca ha existido ;).

Estoy de broma, pero si crees que algo es incorrecto o solo quieres comentar este artículo, tómate la libertad de escribir a mi bandeja de entrada pública [Etiquette] [Archivo]


  1. Adaptado al castellano, en inglés Vim viene de “Vi IMproved” ↩︎

#software #humor