Back

Buen SoftwareBlur image

En primer lugar, permítanme escribir las reglas que considero que el software debería seguir para alcanzar la “perfección”.

  1. Modelo.
    • Filosofía del Software Libre: Software libre y de código abierto (FOSS). Promueve la libertad para los usuarios finales; el código es transparente y público.
    • Sin Pago Temporal: El software debe ser gratuito, mantenerse mediante un modelo de donaciones o financiación, o mediante un pago único para apoyar a los desarrolladores.
    • Sin Registro: El software debe ser propiedad de los usuarios, no “alquilado” a una empresa. Si el autor desea generar estadísticas, los usuarios deben estar informados.
  2. Desarrollo.
    • Compatibilidad: Interactúa sin problemas con otros programas y sistemas.
    • Mantenibilidad: Cumple con los estándares de codificación, utiliza nombres de variables y funciones descriptivos, documenta el código exhaustivamente y lo modulariza para facilitar el mantenimiento.
    • Portabilidad: Adaptable a diferentes entornos y plataformas.
    • Rendimiento: El software debe ejecutar las tareas de forma eficiente y responder rápidamente a las acciones del usuario. Sin software innecesario, software adicional ni anuncios.
    • Fiabilidad: El software debe funcionar de forma consistente en diversas condiciones.
    • Escalabilidad: Capaz de gestionar un aumento de la carga de trabajo o de la base de usuarios sin comprometer el rendimiento.
    • Seguridad: El software debe proteger los datos y los sistemas del acceso no autorizado y protegerlos contra vulnerabilidades. Sin puertas traseras ni software espía. Pruebas de penetración externas para mayor seguridad.
    • Facilidad de uso: Las aplicaciones deben ser fáciles de usar y desinstalar.
  3. Licencias legales sólidas: Las licencias de software deben proteger contra el uso malicioso o el robo.
  4. Buena comunidad: Los moderadores deben crear y mantener una comunidad positiva. Esto ayudará al crecimiento y mantenimiento del software.

Hoy en día, sabemos que existe un excelente desarrollo de software de código abierto, gracias a la contribución de grandes desarrolladores y al auge de plataformas de alojamiento de código fuente como GitHub, GitLab, SourceForge, SourceHut, Codeberg, etc., todas basadas en el protocolo Git.

Algunos ejemplos importantes de software de código abierto son: el kernel de Linux, FreeBSD, compiladores (GCC), servidores (Apache, Nginx), virtualización (Docker, VirtualBox), navegadores web (Chromium, Firefox), sistemas de gestión de contenido web (WordPress), numerosas bibliotecas y frameworks de programación (Electron, Vue.js, Next.js, Hugo, Laravel, etc.) y muchas aplicaciones de escritorio para entornos Linux como GNOME, KDE, XFCE, LXDE, Mate y desarrolladores independientes.

Aplicaciones web#

Muchas plataformas y software actuales se utilizan a través de aplicaciones web. La mayoría de estas aplicaciones web se ejecutan en un backend de código cerrado (base de datos y programas del servidor); sin embargo, el frontend es accesible (herramientas de desarrollo) debido a la naturaleza de la web y los navegadores.

Estas son las aplicaciones web que más uso: AlternativeTo, Archive.org, Discord, Dropbox, GitHub, Google Maps, Inoreader, MetaInstagram, OpenAI chatGPT, Raindrop.io, Reddit, Substack, Telegram, TMDb, Twitch, YouTube, Wikipedia, Windy y Zoomearth.

Aplicaciones móviles#

Los smartphones tienen una gran cuota de mercado en sistemas operativos, al igual que el software. Sin embargo, el software desarrollado para móviles es más limitado que el desarrollado para PC. En teléfonos móviles (especialmente en Android) uso estas aplicaciones:

Teléfono (aplicación principal), gestor de contactos (KeepasXC, Raindrop), navegador (Kiwi Chromium, Firefox), editores de vídeo (Obsidian, NMM), cliente de correo electrónico (Gmail, ProtonMail), juegos (Ajedrez, Snake 4D), mapas (Feature, Google Maps), mensajería (SimpleX, Telegram, WhatsApp), reproductor de música (Musicolet), ofimática (Collabora Office), visor de vídeo online (LibreTube, YouTube Advanced), escáner (TinyScanner), mapa celeste (SkyWaler 2), aplicación meteorológica (WeAwow) + aplicaciones predeterminadas (calculadora, cámara, gestor de contactos, visor de vídeo).

Software de escritorio#

La mayoría del software de escritorio que uso es software libre y de código abierto (FOSS) y procuro usar software compatible con el resto de sistemas operativos. Sin embargo, existen algunas aplicaciones propietarias de pago exclusivas que actualmente son mejores que las alternativas FOSS. Aquí tienes una lista del software propietario de escritorio que considero más relevante:

  • Para diseño/imagen: Adobe (Photoshop, Designer, After Effects, Premiere Pro), Affinity (Photoshop, Designer), Apple (Final Cut Pro), Autodesk (AutoCAD, Maya), Blackmagick Design (DaVinci Resolve), SideFX (Houdini)
  • Para edición musical: Apple (Logic Pro), Arobas (Guitar Pro), Image-Line (FLS Studio), Steinberg (Cubase)
  • Para juegos: Lanzadores de juegos (Steam, Epic Games Launcher, Riot Launcher) y la mayoría de los juegos para PC con Windows.

También hay algunas aplicaciones Electron JS propietarias que no son exactamente de código cerrado, ya que se puede ver el código ofuscado a través de la «consola de desarrollador», como Discord, Notion u Obsidian.

En términos de mercado, estos son los sistemas operativos.

  • Windows (72 % de cuota de mercado): tiene la mayor gama de software y controladores. La mayoría del software: muchos controladores propietarios (compatibles con gran cantidad de hardware) y mucho software de pago (software GUI y casi todos los juegos para PC).
  • macOS (16 % de cuota de mercado): macOS tiene mucho software exclusivo de pago, cuenta con una gran tienda y hay mucho software para artistas, diseñadores y músicos.
  • Linux (4 % de cuota de mercado): Linux tiene la mayor lista de software de código abierto. La mayoría es FOSS, sin embargo, algunas empresas publican software propietario de pago.
  • Basado en BSD (desconocido): tiene la lista más pequeña de software, es más para servidores o escritorios básicos, al igual que Linux, la mayoría del software es de código abierto.

Además, los sistemas basados en UNIX (basados en BSD, Linux, macOS, Solaris) permiten ejecutar aplicaciones de Windows con una capa de traducción, llamada WINE. Por lo tanto, se puede utilizar mucho software de Windows (juegos, editores, etc.) en estos sistemas. Por ejemplo, Steam ha implementado configuraciones WINE optimizadas para juegos llamadas Proton para jugar a juegos de Windows en Linux.

Además, hay que tener en cuenta que no se pueden jugar algunos juegos con anticheat como: RIOT (LOL, Valorant), PUGB, EA (FIFA) en Linux debido al anticheat defectuoso y a la falta de compatibilidad nativa. Aquí hay una lista de juegos de Steam compatibles con Linux o Steam Deck (basados en Arch-Linux con KDE) y aquí hay una lista de juegos que utilizan anticheats y su compatibilidad con GNU/Linux o Wine/Proton. Para jugar a un juego en línea en Linux, se deben cumplir ambos requisitos.

Buen Software
https://david7ce.github.io/es/blog/good-software-es/
Author David7ce
Published at February 10, 2024