¿Por qué a los desarrolladores no les gusta Xcode?

A algunas personas no les gustan los IDEs en absoluto.

Ven la línea de comando como algo puro y hermoso, y el IDE es una monstruosa agregación de funcionalidad. Pero esas personas probablemente no estén muy interesadas en escribir aplicaciones GUI. Si lo fueran, Linux no sería tan horrible en la interfaz de usuario.

Algunos provienen de Visual Studio, y VS tiene algunas características agradables que aún no están en Xcode. Xcode se está poniendo al día en algunas áreas.

Algunos no “entienden” Inferface Builder. IB es la tecnología central sobre la cual Xcode le permite explotar. La noción de que puedes dibujar gráficamente una interfaz. La aplicación luego escupe un conjunto de objetos, que su aplicación puede cargar. Si no comprende la relación entre su aplicación y los NIB / Storyboards, entonces probablemente encuentre Xcode extraño.


Dicho esto, Xcode no está más allá de las críticas. Probablemente haya demasiada funcionalidad siendo calzada en una sola aplicación. Y esta sobrecarga funcional constante causa un par de problemas:

Hay una complejidad creciente. Una cantidad sorprendente de cosas está entrando en la aplicación. Hay características que algunas personas nunca descubren. Y esto puede socavar la usabilidad y la estabilidad.

La funcionalidad está oculta. Esta falta de transparencia significa que usted hace cosas sin saber por qué o sin comprender adecuadamente lo que sucede debajo del capó. Como esos lujosos autos nuevos con la cubierta de plástico en la parte superior del motor. Es hostil para los ingenieros que necesitan entender.

Desde Xcode4 (?), El modelo de gestión de archivos que utiliza Xcode es “las pestañas deberían funcionar igual que en Safari”. ¡No no no no! Las pestañas y los archivos deberían funcionar igual que CUALQUIER OTRO IDE. Siempre pierdo mi lugar porque Xcode cambia constantemente los archivos que están abiertos en mis pestañas y abre múltiples pestañas para el mismo archivo. Es muy chiflado. Y luego están esas dos ventanas de búsqueda en el navegador. Siempre estoy escribiendo mi búsqueda de archivos en la búsqueda del filtro de navegación inferior. Es una experiencia de usuario terrible.

Supongo que Xcode está diseñado por programadores que intentan ser ‘lógicos’ y ‘consistentes’. ¡Sin personas, diseñe para hacer que los casos de uso más comunes sean fáciles, convenientes y sensibles!

Luego tenemos la parte del generador de interfaces / guiones gráficos. Eso no es culpa de Xcode. El diseño automático puede ser conceptualmente elegante y potente, pero ¿utilizable?

Hablando como una persona que creó una sola aplicación para iPhone y pasó alrededor de 60 horas en Xcode, lo veo como un entorno que hace mucha magia en mi nombre pero que podría explotar en mis manos en cualquier momento. Digo “magia” porque ha hecho que el proceso de desarrollo sea mucho menos textual. Aquí están las cosas hechas por Xcode y su equivalente en el mundo paralelo donde las personas de software libre en lugar de Apple Inc hicieron el equivalente de iOS.

Estaríamos escribiendo “hacer iPad” en nuestros shells en lugar de seleccionar “iPad” en algún menú y luego presionar el botón con un triángulo (indicando “ejecutar”, supongo, como lo hace en reproductores multimedia y reproductores de DVD). Es posible incorporar secuencias de comandos de compilación personalizadas en lo que sucede cuando presiona el triángulo, por lo que Apple podría haber creado lo mejor de ambos mundos para el público en general. Si todos fueran como yo, preferiríamos escribir “make iPad” y luego ver una salida detallada que indique que todo funciona correctamente, o no según sea el caso. Pero el botón funciona bien, hasta que no funciona, y luego obtienes una ventana emergente de alerta o tienes que buscar en algún registro de errores.

Tendríamos algún tipo de lenguaje declarativo para una GUI almacenada por convención en algún archivo como “app.gnuface”, y posiblemente una selección de herramientas para visualizar el guión gráfico (todo lo cual probablemente sería menos resbaladizo que el de Apple). El generador de interfaces, que es una excelente herramienta de arrastrar y soltar para hacer GUI. Puede usarlo para arrastrar desde el generador de interfaz a la ventana de código fuente, de modo que se pueda usar algo como un botón mediante programación. No puedo imaginar una mejor manera de hacer las cosas.

Estaríamos descargando linters de los geeks generosos que los hicieron y configurando nuestras herramientas para trabajar con ellos, y posiblemente contribuir al desarrollo de esas herramientas. En cambio, xcode analiza estáticamente su código y hace sugerencias fuera de la caja.

Xcode es la única forma razonable de crear aplicaciones para iPhone en 2016. No tiene los aspectos libres, textuales y estables de cosas como Make y Emacs y Vim y bash. A diferencia de ellos, probablemente no existirá en 15 años. Sin embargo, Xcode es el único IDE que me gusta. Hace magia para ti, y ten cuidado de respaldar tu trabajo porque a veces esta magia explota.

Porque es un monstruo de conflicto de fusión. Está mejorando, pero mover archivos en un proyecto de equipo grande es un poco estresante y terminas perdiendo un tiempo precioso descubriendo cómo arreglar archivos xml generados automáticamente y difíciles de entender. Dicho esto, probablemente no sea tan diferente de cualquier otro IDE a ese respecto, pero a veces uno desearía que la jerarquía de archivos simplemente siguiera las carpetas sin la complicación de un directorio de archivos y grupos almacenado en un archivo xml junto con otras configuraciones variadas.

Si le pregunta a un desarrollador en la plataforma X sobre las herramientas y el entorno de desarrollo en la plataforma Y, muy a menudo obtendrá menosprecio. Los desarrolladores pueden ser bastante conservadores, ya que invirtieron mucho tiempo y esfuerzo en aprender un entorno y flujo de trabajo, pueden resistirse a aprender uno nuevo.

Yo uso Xcode, yo uso vim en Linux. Puedo trabajar en ambos. Ambos tienen buenos puntos, ambos tienen puntos doloridos. He escrito MUCHO código en ambos a lo largo de los años. En general, prefiero Xcode. Pero sigo haciendo Linux con una ventana de terminal, así que tampoco lo odio.

No me gusta la parte del patio de recreo. Cada nueva línea de código que escribe comienza a ejecutar el programa completo. Realmente lo hace lento y en algún momento lo cuelgan. ¿Hay alguna opción para desactivar esta ejecución automática?

Me gusta totalmente XCode porque lo uso en un período de tiempo prolongado y me permite usar Storyboard . Pero he experimentado con AppCode, que es IDE para iOS / MacOS y, en general, para el sistema basado en OSX / iOS hecho por JetBrains y veo totalmente que AppCode es mucho más rápido que XCode . He conocido a muchas personas que se van de Xcode a AppCode porque no les gusta Storyboard. Todo el trabajo es código para estas personas, por lo que es una ventaja usar AppCode debido a sus opciones de indexación y depuración rápida.

Cuando utilicé Xcode por primera vez, fue inútil la referencia cruzada y el soporte de autocompletar para C ++. Actuó como si fuera compatible con C ++, pero realmente apestaba.

Ha mejorado mucho desde entonces, por lo que parte del odio que ves puede ser de versiones anteriores.

Tuve muchos problemas con Xcode, cuando comencé a usarlo hace unos 3 años.
Ahora me parece bastante bueno, especialmente después de agregar Swift. Y Swift está mejorando cada vez más. Solo desearía poder refactorizarlo.

Me gusta mucho Xcode. He creado toneladas de aplicaciones iOS durante muchos años y realmente me gusta y no puedo pensar en otra forma de hacer aplicaciones iOS. También me gustó Interface Builder cuando era una aplicación externa, seguro que olvidó hacer conexiones de vez en cuando, pero nunca entendí por qué algunas personas seguían quejándose.

Creo que generalmente se reduce a: “Esta no es la forma en que estoy acostumbrado a hacer cosas, por lo tanto, lo odio”.

No, Xcode es realmente bueno, no perfecto, pero con mucho el mejor IDE en el que he trabajado