Haz aplicaciones para Linux

Los llamamientos a “dejar de hacer distribuciones de Linux y hacer aplicaciones en su lugar” han reavivado tensiones de larga data sobre fragmentación, usabilidad y prioridades en el ecosistema Linux. Los comentaristas argumentan que, aunque hay incontables distros y gestores de ventanas, las apps para el usuario final —especialmente las pulidas y centradas en la UX— siguen siendo escasas, obstaculizadas por empaquetado inconsistente, ABI inestables y elecciones confusas de toolkits (Qt, GTK, Electron, Flutter, etc.). Muchos ven las tecnologías multiplataforma o web y nuevos formatos de empaquetado como Flatpak como vías pragmáticas, pero no hay consenso sobre cómo equilibrar la comodidad del desarrollador, la experiencia del usuario, la apertura y el deseo de obtener un ingreso sostenible con software para Linux.

Fragmentación de distribuciones vs. aplicaciones

  • Muchos sostienen que Linux tiene demasiadas distribuciones, lo que provoca “parálisis por elección” y diluye el esfuerzo que podría dedicarse a las aplicaciones y a la UX.
  • Otros dicen que la fragmentación se exagera: la mayoría de los usuarios de escritorio ejecutan Debian/Ubuntu/Mint o algo similar; puedes “elegir una” y listo.
  • Algunos ven los llamados a un “único y verdadero Linux” como una centralización motivada comercialmente; la diversidad se presenta como creatividad y seguridad (evitar la monocultura).
  • Contraargumento: la diversidad complica la vida de los desarrolladores de apps, que deben navegar por distintas distros, DEs y componentes básicos (Wayland/X11, systemd, etc.).

Empaquetado, ABI y “apuntar a todas las distros”

  • Los desarrolladores debaten cuán realista es compilar una vez y ejecutar en todas partes.
  • Enfoque tradicional: distribuir código fuente y usar los gestores de paquetes de la distro, o depender de quienes mantienen los paquetes; los desarrolladores propietarios a menudo simplemente prueban en una distro y aceptan que los usuarios hagan ajustes.
  • La distribución binaria se ve obstaculizada por problemas de ABI de glibc / libstdc++ y por símbolos versionados de .so; los desarrolladores de juegos en Steam lo sufren de forma especialmente aguda.
  • AppImage, Flatpak, Snap, Steam Runtime y los contenedores se consideran soluciones parciales, pero añaden complejidad y no ocultan por completo el cambio de ABI.
  • Los esquemas de nombres de bibliotecas (-dev, números de versión) confunden a los recién llegados, pero se explican como versionado de ABI y separación entre cabeceras y tiempo de ejecución.

Toolkits y frameworks multiplataforma

  • GNOME/GTK y KDE/Qt son las principales pilas nativas, pero se les critica por cambiar APIs, tener UX desigual y un alcance multiplataforma limitado.
  • Comparación con macOS/Windows: esas plataformas ofrecen frameworks base más ricos y estables (gráficos, audio, ML, etc.), lo que hace que desarrollar apps sea más fluido.
  • Electron es ampliamente criticado por ser voluminoso, pero se le reconoce por facilitar el soporte en Linux y permitir muchas apps populares.
  • Se mencionan alternativas: Flutter, Kirigami/QtQuick, Java/JavaFX, NW.js, Wails, WebUI; las opiniones difieren sobre rendimiento, madurez y calidad de UX.
  • Algunos dicen que desarrollar GUI para Linux no resulta atractivo porque hay que elegir entre varias pilas imperfectas.

UX, cultura de la línea de comandos y enfoque en el usuario final

  • Un hilo recurrente: Linux y el software libre suelen invertir poco en UX; muchos usuarios aceptan un acabado pobre en comparación con macOS/Windows.
  • Debate entre CLI y GUI: algunos afirman que las CLIs son la “UX máxima” para usuarios competentes; otros argumentan que las CLIs son un infierno de descubribilidad y hostiles para no expertos.
  • Varios comentaristas subrayan que los usuarios promedio necesitan apps intuitivas y visualmente coherentes, no más gestores de ventanas en mosaico ni herramientas de nicho.

Monetización y economía del código abierto

  • Varios mensajes describen lo difícil que es ganarse la vida con apps de FOSS (los anuncios, las donaciones y las funciones premium suelen rendir poco).
  • Algunos desarrolladores consideran o defienden pasar a código cerrado (o a código disponible pero binarios de pago) para financiar apps de Linux pulidas y orientadas a la UX.
  • Otros enfatizan que un gran subconjunto de usuarios de Linux prefiere firmemente el FOSS por razones de privacidad, longevidad y para evitar el bloqueo; las apps propietarias pueden perder a ese público.
  • Se discuten varios modelos de negocio: contratos de soporte, donaciones/patrocinios, open core, hosting de pago, binarios de pago con código disponible.

Colaboración vs. “otra app/otra distro más”

  • Un sector insta a contribuir a las apps existentes en lugar de reimplementar herramientas similares o crear nuevas distros; ese enfoque podría dar lugar a unas pocas apps excelentes en vez de muchas mediocres.
  • Otro sector sostiene que el esfuerzo y la motivación de los desarrolladores no son fungibles: la gente hackea en lo que le interesa, no le gusta la política de proyectos y valora la autonomía de “rascarse su propia picazón”.
  • La conclusión en el hilo es mixta: se desean más y mejores apps, pero los intentos de dirigir de forma centralizada el trabajo de los aficionados se ven como poco realistas y contrarios al espíritu del software libre.