Como lo mencionaron otros, es una cuestión de compensaciones y de tener el conocimiento correcto.
El único escollo que es posible que desee considerar es el siguiente: menciona en su pregunta que considera que la web tiene una ventaja "multiplataforma". ¿Pero lo hace realmente? Piénselo de esta manera: si desarrolla algo para el escritorio, debe definir la lista de plataformas y sus requisitos de soporte.
No se equivoque, es lo mismo para la web. Y a pesar de que ya es tremendamente más simple de lo que solía ser, si diseña una aplicación pública amplia, tendrá que lidiar con todas las versiones posibles de cada navegador web. Y si se trata más de una aplicación empresarial, prepárese y prepárese para redactar sus requisitos de plataformas de navegador compatibles con mucha precisión.
No piense que evitará tener hacks específicos de la plataforma aquí y allá si construye algo significativo.
Y luego las partes divertidas. ¿Qué es lo mejor? ¿Los navegadores que se actualizan casi transparentemente con mucha regularidad como Chrome? ¿O los que implementan actualizaciones de seguridad solo mensualmente y características principales cada edad de piedra (como IE)? La respuesta no es tan obvia como podría pensar, porque algunas de estas actualizaciones "transparentes" frecuentes pueden romper su código, y deberá seguir esto y reaccionar rápidamente. O vigile las versiones preliminares beta y dev durante el desarrollo y las pruebas. Para todos los navegadores que tontamente dijiste que querías apoyar (buena suerte).
Ah, y no olvidemos las consideraciones de la interfaz de usuario. También se enfrentan a la alegría de decidir si desea una interfaz de usuario consistente TRAVÉS todas sus plataformas de destino, o una interfaz de usuario consistente CONplataforma de destino de cada host. ¿Ves todos esos pequeños botones que puedes ver en las páginas web? ¿Desea que sean exactamente iguales en todas partes o que se integren con el entorno utilizado por su usuario? Por supuesto, este problema no es nuevo y existió para otros modelos de desarrollo, pero parece ser más importante aquí, y depende del tipo de usuarios a los que se dirija y de lo que esperan. El usuario final público tenderá a querer que se integre con su plataforma, pero aún así querrá que "¡vaya!" ellos con cosas elegantes, mientras que el usuario empresarial querrá algo que se parezca a una aplicación de escritorio. Y las plataformas móviles tenían una nueva dimensión para todo esto.
Para los últimos 2 párrafos, una idea común es a veces empaquetar un navegador web preconfigurado con su instalador, que luego se conecta a su aplicación web (alojada localmente o en la web). Es genial porque controlas la frecuencia de actualización y puedes "congelar" el estado y sabes exactamente qué apoyar y probar. Además, puede agregar cosas interesantes como extensiones de usuario dedicadas. Por ejemplo, empaquetar un cromo "congelado" con pequeñas extensiones de Chrome que ha desarrollado para facilitar el uso de su aplicación web para diferentes tipos de usuarios puede ser extremadamente agradable. Por otro lado ... ahora eres responsable si ocurre una violación de seguridad porque congelaste el ciclo de lanzamiento, y tu aplicación no se beneficiará de las mejoras de velocidad (si las hay).
Como muchas cosas, es un hacha de doble filo.
Nota: Tengo un fuerte sesgo en contra de la web por ser básicamente una gran pila de tecnologías a medias (y soy cortés aquí), hasta las capas OSI, en las que seguimos agregando capas de basura ocultando los problemas debajo sin resolver realmente o arreglarlos.
Dicho esto, estoy a favor de la web por su naturaleza ubicua como plataforma. Creo que el movimiento de su empresa es (probablemente) el correcto. Depende de su mercado objetivo y de las plataformas a las que apunta, obviamente. Si desea exponer algo como un servicio, entonces probablemente esté listo (aunque tampoco es necesario). Si no lo hace, entonces tal vez no haya tantas razones para ello.
Hmm, y espero algunos desarrollos divertidos en el futuro ahora que las variantes más livianas de los sistemas operativos existentes siguen generando para entornos móviles (netbooks, teléfonos inteligentes, PDA, tabletas, libros electrónicos ...), con más énfasis en el uso de navegadores integrados livianos. .. pero con toda su nueva cuota de fallas de renderizado de UI.
Con respecto a las tecnologías basadas en complementos ... Diría que aléjese de ellas. Mejorarán el poder de su aplicación, pero limitarán su penetración en el mercado. En algunos casos, lo verá como una ventaja en términos de soporte multiplataforma, hasta que una nueva plataforma de repente se niegue a admitirlos. Los estándares web están aquí por una razón (tenga cuidado de no entusiasmarse demasiado con todo en HTMl5, o podría explotar en su cara).
EDITAR: otras cosas a considerar ...
Reclutamiento
Es extremadamente difícil encontrar desarrolladores web con conocimientos. Uno pensaría que hay una manada de ellos, pero están perdidos en un gran grupo de personas, bueno, bastante incompetentes, que piensan que haber logrado escribir 700 líneas de JavaScript / ECMAScript para implementar alguna validación en sus formularios es el final. y todo lo que se puede lograr en términos de habilidades de alto nivel.
No estoy bromeando, últimamente mi primera pregunta para todas las entrevistas de desarrollo web es cómo declarar una variable y luego si hay una diferencia entre usar var
o no (dependiendo de cómo respondan). Es deprimente. Me resulta mucho más difícil encontrar un desarrollador web promedio o avanzado que encontrar un desarrollador de escritorio promedio o avanzado.
Percepción
Nadie lo considerará en serio cuando diga "Soy un desarrollador web". Es para una subclase de programadores, desarrolladores, ¿no? Los que ignoras y burlas desde lejos, y no te unes cuando van a tomar café. :)
Obviamente, esto no es cierto, pero se reduce al hecho de que se desarrolla para un entorno que se gestiona principalmente para usted. Los navegadores corrigen su marcado jodido, sus estilos jodidos, e incluso corregirán sus secuencias de comandos jodidas para algunos de ellos, y lo optimizarán para usted si lo desea. Y si usted es un desarrollador web, la gente no asumirá que tiene una pista sobre la programación de nivel inferior, por lo que debe ser un completo idiota, ¿verdad?
Y luego se dan cuenta de cuán locamente complejo puede ser ECMAScript, pero se negarán a revisar su opinión. Porque es la web. No nos gusta intrínsecamente, simplemente nos gusta lo que nos permite hacer.