Por qué Mac OS no tiene un botón de actualización como Windows?

Tengo una respuesta, y responde al enigma de User-12140973118483743392 también.

Cree que no necesita uno, pero por lo tanto falla en ciertos casos de esquina.

Mac OS X opera en un modelo de «pedir permiso».

Windows opera en un modelo de «pedir perdón».

Así que para mostrar las opciones disponibles, Mac OS X pide permiso, en cuanto a lo que se le permite hacer a un objeto. Luego muestra sólo las opciones disponibles. Esta es la razón por la que, en un programa de Mac OS X correctamente escrito, algo no se mostrará como una zona de caída válida, si usted está, por ejemplo, arrastrando un tipo de documento que no entiende sobre su icono.

Windows, por otro lado, le mostrará todas las opciones disponibles, y entonces usted puede probarlas, y obtendrá un error si no funciona (generalmente una cachimba; a veces más extensa).

La premisa básica de Apple aquí -que es incorrecta para los sistemas informáticos modernos- es que es posible hacer una comprobación previa de la operación antes de intentarla, y entonces puede mostrar las opciones, y luego hacer la operación.

La razón por la que esto es incorrecto para los sistemas informáticos modernos es que pueden ser multiusuario – incluso si los usuarios no están en el mismo ordenador.

Así que si, por ejemplo, toma un servidor de archivos que se comparte en común con una serie de máquinas, es posible preflight una operación, como «arrastrar documento de la carpeta A a la carpeta B», y obtener la respuesta «sí, esto está permitido». Pero entre el momento en que preguntas si está permitido, y luego realizas la acción basándote en que entiendes que es una operación permitida – es posible que otro usuario entre y cambie los permisos del objeto que estás arrastrando, la carpeta de origen, o la carpeta de destino, de tal manera que la operación ya no está permitida.

Mac OS X tiende a manejar tales errores de manera incorrecta.

En cambio, Windows maneja estas operaciones de la misma manera: permitiendo que se intente la operación – incluso si es absurda en el momento en que se inicia el intento. O bien funciona, o lanza un error.

Debido a que este es un resultado esperado – al carecer de una capacidad de preflight para algo como isValidDropTarget(fileType) – Windows espera la posibilidad de un error, y lo maneja correctamente. La desventaja es que presenta opciones sin sentido, pero la ventaja es que el software tendrá rutas de error completamente desarrolladas.

Así que el resultado de esto es que el sistema Mac OS X puede – y espera – notificaciones de cambio de sistema de archivos para todas las carpetas abiertas – incluso si están en un servidor remoto, que puede estar conectado utilizando un protocolo de sistema de archivos remoto (por ejemplo, WebDAV, NFS, etc.), que no puede proporcionar tales notificaciones.

Así que para los archivos locales – y para los sistemas de archivos remotos AppleTalk, que sondea el tiempo de acceso a la carpeta cada 11 segundos – Mac OS X puede actualizar automáticamente el contenido de las carpetas.

Pero es imperfecto, y no funciona para algunos sistemas de archivos remotos, almacenamiento conectado a la red, o potencialmente en otros casos también.

Sólo parece funcionar para usted, porque usted es un solo usuario, y el almacenamiento es (efectivamente) local.