¿Tienen preferencia los programadores que han trabajado tanto en la web como en dispositivos móviles y por qué?

Después de trabajar en ambos, creo que la preferencia se refiere al tipo de trabajo que le gusta hacer:

  • Web : le encanta trabajar en lenguajes de tipo débil (javascript) o abstracciones además de javascript (elm, mecanografiado, etc.), esto también significa que no tiene ningún problema para hacer un millón de opciones cuando se trata de sus marcos, CSS pre -procesadores, agrupadores, corredores de prueba, etc. Eso o lo que sea que Dan Danmov (u otra persona) diga sin pensarlo mucho.
  • Móvil: le encanta trabajar con lenguajes fuertemente tipados (Java, Kotlin / Obj-C, Swift, C #) o está tratando desesperadamente de utilizar JavaScript en su aplicación (React Native, ionic, nativescript, etc.), esto también significa que usted no tiene problemas para hacer un millón de elecciones con respecto a su arquitectura (MVC, MVVM, MVP, MVWhatever, VIPER, etc.), su administrador de paquetes (en iOS, en Android, ahora es bastante básico), y le encantan las sutiles diferencias de UI en cada uno pantalla.

Ambas plataformas tienen sus pros y sus contras, y una vez más, la que elija depende más de la personalidad y el estilo de trabajo que cualquier diferencia imparcial, como dijeron Quora User y Ben Vinson, en la web no hay un paso de compilación, por lo que una actualización simple le muestra sus actualizaciones , pero de nuevo, cuando necesita depurar problemas de diseño, puede convertirse rápidamente en una pesadilla.

Por otro lado, tanto Android Studio como XCode tienen constructores de interfaces que, combinados con algunas pautas, crean hermosas interfaces de usuario que se escalan correctamente y no son una pesadilla para trabajar.

Personalmente prefiero trabajar en dispositivos móviles (odio completamente CSS) debido a los marcos de la interfaz de usuario y la gran cantidad de bibliotecas con efectos / componentes / animaciones increíbles, etc. que existen por ahí

Supongo que el mejor mundo es lo que dice James Newman, trabajando en el desarrollo de API de back-end, de esa manera no es necesario lidiar con las interfaces de usuario o las diferencias de plataforma peculiares o cualquier otra pesadilla que las personas frontend suelen encontrar.

Tiendo a preferir el desarrollo móvil al desarrollo web:

–JavaScript es un lenguaje muy limitado que ha sobrevivido solo porque es la única opción en la web (lado del cliente). Seguramente ha mejorado, pero todavía está al menos 5–10 años atrás de lenguajes como Swift of Java. Y esto no se trata de ser tipado de forma dinámica o fuerte (Python es principalmente dinámico y es increíblemente mejor que JS). Tomemos, por ejemplo, una definición de clase en JavaScript, una característica tan básica de OOP solo se definió en EcmaScript 2015 … hace solo dos años. Antes de eso, tenía que usar una declaración de objeto basada en prototipos, y los amantes de JS dirían que fue genial (principalmente porque es diferente de cómo lo hace el 90% de los otros idiomas principales) … pero si fue tan genial, ¿por qué lo hacen? finalmente tuvo que ponerlo en ES2015? … y esto es solo un ejemplo, el cómic al final expone brillantemente la insuficiencia de JS y las “soluciones” proporcionadas por la comunidad:

-A algunas personas les gusta tener que elegir entre 5 marcos nuevos / reescritos diferentes cada seis meses que hacen casi lo mismo (y no es algo revolucionario: principalmente AJAX, enlace de interfaz de usuario, módulos y proporcionar cierta estructura de código). Para mí es más placentero delegar el trabajo de elección a Apple y Google, y dejar que proporcionen un conjunto moderno y estándar de herramientas, pautas y marcos para hacer cosas realmente interesantes: ubicación GPS, acelerómetros, concurrencia, IA, reconocimiento biométrico, 3D , concurrencia, etc.).

Por supuesto, hay bibliotecas / proyectos para hacer algunas de estas cosas en la web, pero generalmente son iniciativas independientes, muchas veces en una etapa de “prueba de concepto”, no como los marcos de herramientas listos para producción proporcionados para Android e iOS.

Así que principalmente mi incomodidad es sobre el tipo de cosas que puedes lograr en ambas plataformas, pero entiendo claramente la importancia de la web y que tal vez sus defectos son el resultado de su mejor atributo: su esencia abierta. Personalmente, prefiero dejar que otros trabajen diariamente.

Como desarrollador web + móvil, haré eco del sentimiento de los demás que respondieron aquí, y diré, sin lugar a dudas, que desarrollar para la web es infinitamente mejor que desarrollar para dispositivos móviles. Lo único que el desarrollo móvil tiene que ver con el desarrollo web es que es más especializado, puede cobrar más dinero por su trabajo. Lo cual, después de pasar tiempo desarrollando para dispositivos móviles, necesitará ese dinero extra para recuperar su cordura.

De todos modos, la razón por la cual, al menos para mí, es la libertad. Cuando quiero hacer un producto o comenzar un nuevo proyecto para la web, voy a mi computadora, abro mi terminal, ejecuto un par de comandos para configurar mi aplicación y empiezo a hackearla. Cuando creo que está en buen estado, puedo enviarlo en vivo a uno de mis diversos proveedores de la nube, enviar un enlace por correo electrónico e instantáneamente está en línea para que el mundo lo vea.

Por otro lado, cuando estoy desarrollando para dispositivos móviles, para poder hacer algo genial con él (es decir, mostrarlo a otras personas y usarlo con otras personas) tengo que pasar por el jardín de otra persona (App Stores) para obtener Mi código aprobado. Y luego, para colmo, cada vez que quiero hacer incluso la actualización más pequeña de ese código (como cambiar una palabra en una oración), tengo que repetir todo el proceso. Y si alguna vez tiene algún problema con uno de estos guardianes para desarrollar sus aplicaciones, intente comunicarse con una persona real con quien hablar. Mi aplicación fue denegada en Android y me dijeron que tardaría 3 días en recibir noticias suyas. Esperé más de 2 semanas y no escuché nada, y finalmente solo lo hice después de que un amigo me contactó con alguien que trabajaba en Google y me ayudaron a resolver mi problema.

En mi opinión, cuando desarrollas para dispositivos móviles (que uso indistintamente con el desarrollo para tiendas de aplicaciones móviles), básicamente eres un agricultor que trabaja en el jardín de otra persona.

Recientemente, mi manera de evitar esto ha sido encontrar un punto medio saludable: prefiero hacer que la aplicación móvil de la API hable. De esa manera todavía estoy desarrollando para la web (técnicamente), pero me pagan como un desarrollador móvil y no tengo que aguantar las tonterías que conlleva ser un desarrollador móvil.

He hecho un montón de desarrollo web, y he hecho desarrollo tanto para iOS como para Android. Prefiero la web por varias razones:

  • Nunca tendrás que escribir en Objective-C.
  • De todos modos, casi todas las aplicaciones deben estar vinculadas a la web, por lo que se interrumpe al intermediario en términos de lo que tiene que trabajar.
  • No hay problema en estar atado a un solo dispositivo y tener su código roto cuando Apple decide follarte.
  • Más opción. En todo.
  • La prueba es más fácil en todos los sentidos (más rápido, sin requisitos de certificados extraños, sin simuladores lentos, etc.), y estás probando en el dispositivo real en el que estás codificando.
  • Si alguna vez tiene que hacer una aplicación móvil corporativa, ayúdelo, dios. Los requisitos de seguridad harán que quieras sacar los ojos de encima.
  • Una parte notable de la opción de más opciones son más bibliotecas para hacer todo. Prácticamente nunca se quedará atrapado entre 1 o 2 bibliotecas de escaneo de códigos de barras factibles, por ejemplo … hay muchas más opciones, lo que significa que algunas de las opciones son más fáciles de usar.
  • No tienes que usar el maldito Xcode. De hecho , puede elegir entre un montón de herramientas para cualquier parte. Porque más opciones .
  • En el 99% de los casos, nunca tendrás que hacer una mierda con los JAR.
  • No es feo como joder aplicaciones de Android.

Hago. Y puedo decir que prefiero el móvil.

La razón es que la interfaz de usuario móvil es más sencilla de implementar debido a que es más especializada. Algo como el xml de Android es muy fácil en comparación con CSS. Y Swift, Java (Kotlin) es un alivio después de pasar un tiempo codificando en JavaScript.

Prefiero móvil (y escritorio) a la web. Después de aproximadamente 10 años de desarrollo web, me aburrí de hacer aplicaciones web. Prefiero los desafíos técnicos de optimizar el rendimiento, lidiar con hilos, etc., que viene con el código compilado. Y hay algo acerca de compilar código y ejecutarlo en mi máquina que es satisfactorio. Actualmente trabajo en aplicaciones de audio, un campo divertido y desafiante.

Bueno, soy alguien dispuesto a usar cualquier herramienta calificada para hacer un trabajo …, no soy uno de esos tipos que dicen que un lenguaje de programación en particular es malo, pero hay una cosa segura que trabajar en dispositivos móviles me ha hecho preferir

Es POO.

Para dar gravitas a la otra respuesta (soy el segundo en el momento de escribir), estoy completamente de acuerdo.

Actualmente trabajo en un proyecto que tiene dos servicios web y una aplicación para iOS, y cada vez que tengo que hacer cambios en la aplicación para iOS me avergüenzo más.

¿Por qué?

Con las aplicaciones web, puedo hacer un cambio y presionar actualizar para ver los resultados. La aplicación de iOS es más como: hacer un cambio en el guión gráfico si tiene un cambio de UI y / o el código del controlador, la aplicación necesita compilarse, luego se carga en el dispositivo o simulador. Fácil en el papel, pero suficientes cambios simples podrían significar una hora de mi día.