Recientemente he estado tratando de 'instalar' cosas mucho menos en mi máquina con Windows (odio los instaladores, necesito saber dónde colocan los programas ...), optando por usar versiones portátiles o independientes de las aplicaciones.
Los puse todos en un directorio 'Programas' en una unidad separada de mi partición de Windows, por lo que cada vez que reinstalo, tengo todas mis aplicaciones disponibles con un mínimo esfuerzo y, por el lado positivo, obtengo una configuración agradable y limpia.
Las aplicaciones como Office y Creative Suite todavía requieren que pase por un proceso de instalación horriblemente largo donde miles de bibliotecas y herramientas al azar se lanzan a través de mi sistema.
¿Por qué las aplicaciones de Windows aún necesitan instalación? ¿Por qué no podemos simplemente arrastrar Photoshop a una carpeta a la OSX y simplemente hacer que funcione? ¿Alguien más se enfoca en aplicaciones portátiles, o solo estoy siendo OCD sobre todo?
Respuestas:
Los instaladores son el resultado de años de evolución y un poco de historia (simplificada) ayuda a entender por qué hacen lo que hacen.
El modelo de Windows 3.1 sugirió archivos de configuración de estilo config.ini por aplicación con bibliotecas compartidas compatibles que van a las carpetas del sistema para evitar la duplicación y el desperdicio de espacio en disco.
Windows 95 introdujo el registro que permite un almacén central para la configuración de la aplicación, reemplazando muchos archivos de configuración. Más importante aún, la configuración de Windows se almacenó en el mismo lugar.
El registro se hinchó debido a que las aplicaciones no se limpiaron después de sí mismas. El infierno de DLL ocurrió como resultado de múltiples versiones de las mismas bibliotecas compartidas que se sobrescribieron entre sí.
.NET introdujo el concepto de app.config (archivos casi ini marca 2, esta vez con un poco más de estructura, lo que ahorra a los desarrolladores la pérdida de tiempo escribiendo analizadores manuales). El GAC se introdujo en los ensamblados compartidos de versión en un intento por evitar el infierno de DLL.
En Windows XP y más en Vista, Microsoft intentó definir el espacio de usuario como un lugar para almacenar datos de usuario y archivos de configuración en una única ubicación estándar para permitir perfiles móviles y una fácil migración (solo copie su perfil) con las aplicaciones instaladas en Archivos de programa .
Entonces, supongo que la razón es que "las aplicaciones en Windows están diseñadas para vivir en un lugar, sus dependencias compartidas en otro y los datos específicos del usuario en otro", lo que prácticamente va en contra del concepto de copiar una sola ubicación.
.. y eso es antes de que tenga que configurar cuentas de usuario, y configurar y garantizar permisos de seguridad, y descargar actualizaciones e instalar servicios de Windows ...
xcopy es el "caso simple" y ciertamente no es la mejor opción para todo.
fuente
La implementación de XCOPY fue anunciada por Microsoft como el camino del futuro hace un par de años. Todavía nada :)
Mientras tanto, puede estar interesado en la plataforma PortableApps.com.
fuente
Gran pregunta, hice una pregunta relacionada sobre Stack Overflow hace un tiempo.
La respuesta a menudo parece ser "porque así lo hemos hecho en el pasado". Lo siento, pero eso no se lava conmigo.
Algunos otros han dicho que la razón principal se debe al registro. Si está hablando de un controlador de dispositivo o algún otro componente COM, etc., sí, esto puede ser necesario, pero no para aplicaciones GUI como procesadores de texto u hojas de cálculo.
Es bastante posible escribir una aplicación que compruebe en el inicio la configuración de registro requerida y solicite al usuario que los use / use los valores predeterminados. O, como lo hacen actualmente muchas aplicaciones protable, jst informa al usuario que la integración del sistema operativo actualmente está limitada porque se está ejecutando en modo portátil.
Los instaladores a menudo también tienen mucho "conocimiento" sobre cómo funciona la aplicación. Luego, cuando la aplicación cambia, a menudo también debe actualizar el instalador. Esta es una causa clásica de errores / problemas que he visto en mi programación de tiempo.
Es el enfoque de talla única para todos.
fuente
Respuesta simple y contundente: es simplemente una cuestión de quién tiene el control. La mayoría del software hoy en día está diseñado por gigantes corporativos para el entorno corporativo o institucional donde a los usuarios se les dice qué hacer en lugar de decirles a sus computadoras qué hacer por ellos.
Su pregunta es extremadamente importante porque plantea una pregunta fundamental sobre los derechos y libertades individuales que están siendo erosionados cada vez más, no por tiranos como en las sociedades antiguas, sino por la codicia corporativa y la necesidad de unos pocos de controlar a muchos.
De hecho, parece que hemos olvidado que exactamente las mismas personas que solían denunciar la tiranía de gigantes como IBM se han convertido en los IBM de hoy en día ... Basta con mirar las prácticas comerciales de Microsoft, Apple y Adobe para nombrar algunos y decirme con franqueza que con sus licencias restrictivas son más benignas que las prácticas comerciales de IBM, el mismo IBM que, por su apertura, en realidad lideró el camino hacia la revolución de la computación personal ...
He estado usando muchas aplicaciones portátiles y autónomas a lo largo de los años y, sin excepción, han demostrado ser las más efectivas, las más rápidas y las más pequeñas en términos de huella y recursos y, por último, no solo son superiores a su bloatware homólogos, pero la mayoría de las veces, también son gratuitos.
Ya es hora de una segunda revolución de la computadora personal. Mejorar la portabilidad al reducir la hinchazón y aclarar dónde se almacenan las configuraciones, en una carpeta distinta en una ubicación física distinta en un medio físico tangible, es un paso en la dirección correcta.
fuente
Una combinación del registro y el almacenamiento por usuario. El registro es una pieza crítica, especialmente si su aplicación está basada en COM (lo que requiere registrarse, lo que sucede en el registro). El almacenamiento por usuario (de configuración, etc.) también es un componente importante. La única buena manera de hacer esto es almacenarlo en algunos directorios especialmente diseñados (consulte Almacenamiento aislado ).
fuente
Principalmente debido al registro de Windows: aunque sus programas están en un determinado directorio, la configuración a menudo se almacena en el registro.
También puede ser porque el programa coloca archivos en otros directorios en su computadora que no sean el directorio de instalación (por ejemplo, system32)
fuente
Una gran ventaja para los instaladores sobre el tipo de instalación Xcopy / portable es la reparación automática.
Una aplicación que utiliza el sistema Windows Installer correctamente tendrá todo tipo de información guardada en la base de datos de Windows Installer en su máquina, así como a menudo un caché de partes importantes de los archivos de configuración.
Si la aplicación se rompe por algún motivo (algo más elimina / reemplaza un archivo, el registro se corrompe, problemas de disco, el usuario elimina el acceso directo, etc.), entonces si es un "acceso directo anunciado", el instalador realmente comprueba los archivos y las claves cada vez que se inicia y reemplaza si no están presentes, o puede ir a Agregar o quitar programas y hacer clic en Reparar en la aplicación.
fuente
Creo que en parte tiene que ver con la gran cantidad de ventanas crudas que necesitan las aplicaciones. Por ejemplo, claves de registro, datos de usuario (/ Users // AppData). Quizás OSX solo maneja esto mejor / de manera diferente.
Por otra parte, no es imposible crear aplicaciones que puedas extraer de un archivo; siempre estoy feliz cuando este es el caso.
fuente
.Net Framework es la plataforma para habilitar este tipo de funcionalidad, y la mayoría de los instaladores solo se usan porque esto es a lo que están acostumbrados los usuarios normales. De la misma manera que los usuarios de Mac están acostumbrados a copiar archivos en la carpeta Aplicaciones.
La mayoría de los instaladores simplemente expanden los archivos en la carpeta Archivos de programa y crean un acceso directo. Es más un caso de lo que los usuarios saben, y a menudo es más simple mantener el proceso igual incluso si la aplicación es portátil.
fuente
Algunos programas requieren que la ubicación de instalación esté en el registro, otros pueden tener sus ubicaciones codificadas en el programa (este fue el caso de perl.exe).
Básicamente, la razón principal son los programadores que tomaron la salida fácil y codificaron algo en los programas, ya sea claves de registro o rutas reales codificadas.
fuente
Muchas aplicaciones de Windows deben hacer uso de entornos o servicios del sistema, como SQL Server, IIS, WMI, dominios de seguridad, Active Directory y muchos otros. Un usuario típico puede no tener idea de cómo configurarlos, o incluso no tener acceso a ellos.
Las aplicaciones como Microsoft Office no son archivos únicos; Contienen docenas de archivos, ejecutables, utilidades, servicios, plantillas, complementos, controladores, etc. Cuando instala una aplicación, no puede simplemente sobrescribir todo lo que usa la nueva aplicación, tiene que encajar con lo que ya está allí. Los instaladores de Windows hacen más que simplemente copiar archivos, pueden consultar el entorno del sistema, ejecutar scripts e instalar servicios, y configurar la máquina como si fuera un administrador.
dbkk101 pregunta por qué las aplicaciones de Windows "no pueden llevarse bien". Pueden, para eso están los instaladores.
fuente
Concedido con algunos programas, la instalación es tonta, pero hay mucho más que simplemente "arrastrar un archivo al directorio de programas".
Por lo menos, un instalador decente con descomprimir el archivo de instalación y configurar los accesos directos adecuados y facilitar la eliminación del programa cuando ya no lo desee. Creo que la descompresión y la copia es probablemente lo que lleva más tiempo.
Luego están los archivos compartidos, esto es especialmente cierto en el mundo de Linux, aunque no tanto en Windows IMO.
Lo más importante es que algunos programas deben configurarse para la máquina y algunos (supongo que al menos) intentan optimizar en función de la máquina o, al menos, eso es lo que el diálogo de Adobe me hace creer.
Además, nunca he visto una razón para instalar en una partición separada. Tiende a perder todos sus valores de registro y configuraciones de configuración. Además, prefiero esa pérdida porque reduce la hinchazón de Windows.
fuente