Durante los últimos años, todos los proyectos serios en los que he trabajado han estado basados en la web o tenían una interfaz de usuario no gráfica (servicios, scripts de línea de comandos, etc.). Puedo armar una aplicación WinForms o hacer un simple WPF cuando sea necesario, pero nunca he profundizado en algunas de las API de nivel inferior como MFC o QT.
Entiendo que esto depende de la situación, pero en general, ¿vale la pena tomarse el tiempo para aprender bien el desarrollo de escritorio o las aplicaciones se están moviendo a la web y a los dispositivos móviles a un ritmo que hace que este conocimiento sea menos relevante? Además, ¿espera que los desarrolladores con los que trabaja tengan experiencia con la interfaz gráfica de usuario de escritorio?
Respuestas:
Yo diría que sí, lo es. Hay una especie de efecto pendular en el desarrollo del programa. Primero todo corrió directamente en la computadora. Luego, cuando la computadora se volvió lo suficientemente potente como para ejecutar múltiples programas, obtuvieron mainframes con terminales tontas. Pero las terminales tontas realmente apestan en términos de usabilidad, por lo que tan pronto como las computadoras se volvieron lo suficientemente potentes como para colocar cantidades razonables de hardware dentro de un sistema del tamaño de una terminal, obtuvimos computadoras personales, y todo se ejecutó directamente en la computadora.
Entonces se inventó la World Wide Web, y estamos de vuelta a un mainframe (servidor) y un terminal tonto terminales (navegador). Pero mudos todavía chupan realmente en términos de facilidad de uso, y la gente está empezando a volver a aprender las lecciones de hace 30 años , y estamos alejándonos de eso otra vez. Gran parte del desarrollo realmente candente en estos días es para aplicaciones de escritorio (o móviles) que se ejecutan localmente, pero que pueden conectarse a Internet con fines específicos para mejorar su funcionalidad.
fuente
Incluso si nunca tiene la intención de hacer un desarrollador de escritorio, le sugiero que obtenga suficiente experiencia como para tener una opinión informada sobre cuándo es mejor usar una solución de escritorio en un cliente web.
fuente
Sí, pero no en la forma en que estás pensando.
La programación GUI no es más difícil ni requiere habilidades especializadas además de la familiaridad con la interfaz de programación GUI. Conectar botones, ventanas y controles no es terriblemente difícil y es bastante fácil con entornos de programación modernos en comparación con los primeros días con cosas como MFC. La programación de la GUI es algo que es bastante fácil de aprender cuando se requiere.
Sin embargo, aunque conectar botones y cuadros de texto es bastante fácil, saber cuándo y dónde colocar los botones, y diseñar una interfaz gráfica de usuario para ser utilizada por los seres humanos es muy difícil. Esa es una habilidad muy valiosa e importante para tener. Sin embargo, los principios de diseño que se aplican a las interfaces nativas frente a la web son muy similares.
Aprenda a diseñar buenas interfaces de usuario que sean efectivas y no confundan a los usuarios, y se familiarizará con la programación de forma gratuita.
fuente
Realmente va a depender de tu situación. Recientemente trabajé para una compañía Fortune 500 que tenía varios proyectos para convertir aplicaciones web nuevamente en aplicaciones de escritorio (SmartClient / Click-Once). En sus circunstancias particulares, tenía mucho sentido y eliminaba varios problemas de usabilidad que sufrían sus aplicaciones existentes.
Si usted es un empleado a tiempo completo y su empresa generalmente no diseña aplicaciones de escritorio, entonces probablemente no tenga ningún sentido estar totalmente actualizado en Winforms o WPF. Sin embargo, si usted es un consultor y le gustaría poder ofrecer otro servicio a sus clientes, entonces no puede perjudicarlo.
fuente
Hmm, además de GMail, Stack-Exchange y la banca en casa de mi banco, uso todo el día software no web. Ahora, con la llegada de los teléfonos inteligentes y las tabletas, las aplicaciones web son aún menos atractivas para mí (uso el cliente de Facebook de mi teléfono inteligente). Eso es del lado del usuario.
Lado del desarrollador: en mis últimos 10 años, trabajé casi solo en software que no es web (y mi carrera abarcó muchos dominios muy diferentes mientras trabajaba como consultor de software) y no veo ninguna tendencia web futura en mi trabajo.
Entonces, sí, sigue siendo un aprendizaje obligatorio en entornos de interfaz gráfica de usuario de escritorio.
fuente
Por supuesto, "depende", pero creo que su experiencia es típica. Raramente he tenido que crear un cliente grueso para cualquiera de las aplicaciones que he escrito. A menos que haya una razón específica por la que el cliente necesita ejecutarse en el escritorio (problemas de conectividad o juego en 3D, etc.), creo que es más fácil para el desarrollador y los administradores mantener una "instancia" de la aplicación. Si tienen el conjunto de habilidades para diseñar una aplicación web, deberían estar bien si se mueven al ámbito de la aplicación de escritorio en general.
En realidad, creo que es más importante que un desarrollador de cliente grueso aprenda la programación de aplicaciones web; la herencia de la apatridia de HTTP hace que sea un paradigma de desarrollo de aplicaciones más difícil de entender (o al menos tiene que pensar un poco más que simplemente abofetear) controles en un panel).
No lo olvide: tiene tecnologías como Silverlight y Adobe Flex / AIR que pueden abarcar la línea entre la aplicación de escritorio / web.
fuente
Según el equipo de IE9:
No debería haber una brecha entre las aplicaciones nativas y las aplicaciones web. La aceleración HW, el JS rápido y la fijación del sitio lo inician
Creo que es una apuesta segura que estas tecnologías crecerán más juntas. Si es un desarrollador de Java, hay muy poca diferencia entre desarrollar aplicaciones de escritorio y aplicaciones web (usando GWT). No es irrazonable esperar que cada vez más plataformas de desarrollo "de escritorio" puedan apuntar al motor del navegador. Tampoco es irracional esperar que cada vez más aplicaciones de escritorio tengan un modelo de distribución similar a la web (actualización automática en segundo plano, ejecución de espacio aislado, como Chrome).
fuente