¿Qué tan limpio es el código base de Apple en relación con el de Google?

He trabajado tanto en Apple como en Google.

Por lo que pude ver, realmente depende de qué tipo de proyectos estés trabajando. La dicotomía predominante son las herramientas internas versus los proyectos de código abierto y de producción.

La base de código de herramientas internas de Apple puede ser bastante desordenada. A menudo estaban sobredimensionados e indocumentados (la peor combinación, en mi opinión). Por otra parte, para menos herramientas “periféricas”, como el sistema de compilación, la calidad del código es excelente. Holísticamente, creo que pasan tiempo en los lugares correctos.

Google, por otro lado, tiene una excelente calidad de código en todos los proyectos. Del estilo a la documentación. Creo que esto se debe a que tiene tantos proyectos de código abierto (¡Apple también tiene muchos! Pero mucho menos que Google). “Otras” personas tienen que leer y usar este código, por lo que es un orgullo de ingeniería. Tu nombre está en él, mejor que sea bueno.

El código de producción en estas empresas es excelente. Realmente no puedo iluminar ninguna distinción importante. El proceso de revisión es riguroso y se requiere mucha infraestructura.

Espero que ayude.

No he trabajado con las bases de códigos internos de Apple o Google.

He trabajado mucho con los SDK que ambas compañías publican. Ninguno de los dos es universalmente perfecto, pero creo que cuando se trata de código publicado, el de Apple es consistentemente mejor.

En este caso, “mejor” es una definición muy simple: nunca me he encontrado con un código de Apple que simplemente no se compiló o me obligó a hacer cambios significativos antes de que realmente funcionara para mi desarrollo.

Cuando se trata de Google, varias veces he tenido que pasar por un proyecto completo y cambiar algún aspecto del mismo para que se compile o para evitar un bloqueo. Pequeñas cosas tontas que eran bastante atroces y aparentes para un novato: lanzar objetos incorrectamente es un ejemplo que viene a la mente. Soluciones simples, pero plantean la pregunta: ¿cómo un error tan simple sale por la puerta?