Hace mas de 10 años atras cuando recien aprendia a prograamar recuerdo que todo era desarrollo de aplicacioens de escritorio usando las herramientas al rededor de lenguajes como C#, Java, C++, y hasta python por ejemplo
Pero conforme han pasado los años estas han ido desarpareciendo y ya no muchos programadores hablan de este tipo de aplicaicones, y por esto algunos de ustedes quizas ya se han hecho la pregunta si aun vale la pena desarrollar aplicaciones de escritorio, o si alguien realmente las usa
pero en resument si, por supuesto que aun hay apliaciones de escritorio, y aun vale la pena desarrollarllas, pero hay que tener en cuenta algunas cosas. Vamos a empezar
actualmente la mayor cuota de usuarios estan con las aplicaciones web, y por esto todas las emrpesas tienen soluciones elaboradas para llegar a todos estos usuarios, es por eso que siemrpe se habla de la nube, porque permite que una web pueda llenar esta demanda de usaurios
y tambien la prioridad de la mayoria de esta smpresas es mejroar la aplicacion web, lo que si algun proyecto necesita de una app de escritorio lo que hacen estos dias es simplemente convertir su web a una aplicaicon de escritorio por asi decirlo, usanro herrmaientas como Electron
de hecho es probable que tengas herramientsa creadas con frameworks de este justo ahroa en tu comptuador como visual sutdio code, figma, microsft teams, discord, e incluso hasta el menu de inicio de windows 11 esta creado con React Native en lugar de usar codigo nativo
y no es que microsfot no puede crearlos, ellos tienen frameworks nativos especializados para usarse en Windows, programdaores dedicados de C#, pero lo cierto es que la web tiene muchas ventajas incluso en desarorllo, se despleigan cambios mas faciles y de forma constante, no tienen que preocuparse por compatiblidades del software, porque todo siempre se ve desde un navegador y como hay muchos desarrolladores web, practiacmente estos mismo pueden crear tambien el desktop. es decir el sueñó de crear
Es decir esa frase de java de "Write Once, run everywhere" (Escribe una vez, corre en cualquier lugar) actualmente lo ha conseguido Javascript a traves de la web
Ahoras estas apps creadas con frameworks web funcionan pero tiendnen a cosnumri mas recursos de lo normal porque basicamente jeeuctan un navgador, por ejemplo electron usa crhomiin que es en esencia lo mismo que google chrome y por eso mucho se quejan de la memoria que consume
y por esto tambien hay variantes que tratan de ser mas ligeras que electron como Neutralino,o Tauri que usa Rust, o Wails que usa Go, o Flutter de Google, o incluso Net Maui usando C#, aunque en realidad hay una variedad muy amplia de opciones que peuden encontrar en el repo de awesome electorn alerntaives
Pero aun asi con estas opciones lo cierto es que hay ciertos tipos de programas que no se pueden hacer usando este enfoqu ede converitr una web a desktop, por ejemplo cuando hablamos de edicion de video, produccion musical (DAW), gaming, o trading finanicero, o CAD (Como autocard por ejemplo). en todos estos tipos el rendimiento es vital par el uso del programa, el desarrollo de aplicaciones de escritio nativo es muy requerido, porque no puedes editar un video de 8k, o simular trades de altafrecuencaia en una pestañá del navegador, asi que necesitas de acceso al CPU, manipular hilos, y manjear la memoria del sistema
asi que programas como Photoshop, davinice resolve, adoble premire, Autocad, todos estos necesitas apps de escritorio
y claro ustedes diran pero si hay editores en el navegador como canva o capcut, o autocad y Photoshop tienen versiones web, y si pero no es lo mismo, hablar de software nativo que pueden procesar archivos muy pesados y de lata calidad a solo unos clips pequeñós
o en el caso de autocad por ejemplo una solucin es usar webassebly que permite ejecutar ciertas porciones de codigo nativo dentro del navegador pero no es de gratis, proque este realmente usar los recursos de tu computador asi que es en parte como ejecutar una app desktop y lo unico que tiene de web es que se abre desde el navegador probablemen, ademas este estandar aun se sigue desarrrollando, pero es otro tema
lo cierto que cuando se requiere acceso ofline, seguridad, o prcoesar datos localemnte lo mejor es una app de escritio nativa y esto lo saben gobiernos, finanzas, o basicamente uclquier empresa que cuide muchos estros tema, porque aqui no quieres crear una web bonita y comptaible con un motno de dispostiovas aqui buscas rendimiento y seguridad
Pero la premisa es simple, si eres desarrollaro o estas trabajando en un equipo, si tu proyecto es prinicpamnete web, y solo unos cuantos usuariso son los que usan desktop obviamente lo mejor aqui es ofrecerles una app de escriotiro cross-platform, porque puedes mantener casi a la par el desarrollo de la web con la de escriotiro de hehco esto es similar a lo que pasa con las aplicaciones moviles, porque la web tambien digamos que se apodra un poco de su mercado con frameworks que usando tecnlogia web permiten crear apps como React native y Flutter, pero lo cierto es que cuando se requiere rendimiento o una mejor experiencia de usuario lo mejor es ir por nativo.
Pero si lo que buscas es crear una herramienta que procesa recursos intensivos, necesitas mejor seguridad, o acceder a recursos del sistema como pueden ser por ejemplo modelos inteligentes que ahora tambien estan populares ejecutarlos localmente, aplicacioens de esto nativos es la mejor ocion
asi que si las aplicaicones de escritorio aun son relavantes, y lo que se trata aqui es de usar la herramienta adecuada para tu proyecto.