Algo que me sigue llamando la atención en informática es la capacidad de rebusque que puede llegar a tener un desarrollador, especialmente a la hora de elegir el hardware con el que va a trabajar. La realidad es que, a día de hoy, la cantidad de software dedicado y de hardware especializado hace que tengamos a disposición una buena batería de elementos. Raspberry Pi (RasPi) es posiblemente la placa lowcost más famosa de todas, por sus prestaciones y bajo costo puede ser tentadora al momento de emplearla para el trabajo de un desarrollador; algo así como una computadora de bajo costo y rendimiento aceptable a utilizar durante horas de trabajo. ¿Qué tal se comporta?
La verdadera pregunta es: ¿para qué usarla?
Creo que un error frecuente en el uso de placas así para labores cotidianas es no entender que no fueron pensadas para eso; pese a que si se pueden emplear para tales fines. En la actualidad el mercado ofrece tan solo la RasPi 400, y algún que otro proveedor aun tiene stock de la RasPi 4. Ambas son similares, CPU ARM, que podemos llevar hasta los 2.2 GHz; y se reparten con 4 Gb de Ram (la RasPi 4 tiene una versión de 8 Gb pero no hace la diferencia). El sistema operativo por excelencia es Raspbian, una distro basada en Debian, que a día de hoy aprovecha el procesador de 64 bits. De hecho, al utilizar tarjetas SD (o discos SSD) el rendimiento suele ser más que aceptable al moverse por el sistema operativo.
El problema, claramente, está en el software. Si vamos a programar sobre web entonces necesitamos un navegador. Raspbian viene con una versión pre-instalada de Chromium con algun que otro plugin para facilitar su uso, y la versión de 64 bits se siente bastante ligera, pero está lejos de tener el rendimiento de una PC regular. Es perfectamente utilizable para tareas de oficina, aunque aun sigue con problemas para los meets con videollamada; no obstante con lo compleja que es la web actual, hay sitios que van a ser bastante pesados de renderizar con la placa. Si el desarrollo no tiene memory leaks muy intensos, suele rendir bastante bien. Un problema adicional es que Chromium me sigue pareciendo un navegador inadecuado para placas así. Firefox ESR y Vivaldi tienen un rendimiento levemente mejor, pero siguen siendo navegadores que no están pensados para estas placas. Hay otros navegadores que tienen un rendimiento increíblemente superior, pero no están ni cerca de los estándares actuales; lo que los vuelve inutilizables para WebApps.
Respecto al editor que usar, entramos en un gran problema. Raspbian viene con Geany, un editor de bajos recursos que tiene un rendimiento excelente en RasPi. El problema es que, para lo que hacen hoy los editores, se encuentra terriblemente limitado. Sirve para cosas puntuales, pero sacando el resaltado de sintaxis y alguna herramienta más no es mucho mejor que usar algo como editor de línea de comando. Si se busca programar en Angular o React se vuelve muy tedioso. Por suerte, hoy tenemos una versión estable de VS Code hecha para RasPi, la cual no es el ideal de rendimiento pero para tareas puntuales es aceptable. Lo utilice para arreglos básicos en una App realizada con Angular y fue muy bien, incluso funciona muy fluido con el plugin oficial de Angular para VS Code. El problema puntual que hay con Angular es el live-reload (la recarga en tiempo real cada vez que un archivo se guarda). Guardando tan solo un archivo el CPU tuvo picos y se demoró más de la cuenta, pero logró pre-compilar; ahora bien, al hacer un sobre guardado (algo que a mi me pasa seguido) Angular directamente crasheó. También dependiendo el código a pre-compilar el sistema crashea a menudo. Esto es algo que sigue siendo motivo de debate a día de hoy con Angular, un modo de live-reload que no recargue toda la aplicación, algo así como un HMR.
En el caso de Android, hay varias pruebas en la web de personas que intentaron instalar Android Studio sin éxito, lo último que vi en esa línea es un truco usando una instalación limpia con Qemu; se logró instalar el Android Studio pero la emulación es sumamente lenta, y no vi a nadie que lograse compilar nada. Donde si RasPi opera muy bien es ejecutando una versión de Android OS en la tarjeta SD; de hecho el rendimiento es fantástico, aun en placas viejas. Por lo que puede utilizarse para pruebas o armado de gadgets.