¿Por qué no todas las aplicaciones son 'portátiles'?

45

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?

Tom
fuente
3
Las respuestas a la pregunta explican el curioso "por qué". Sin embargo, el exclamativo "pero por qué" aún permanece (como en "pero por qué no podemos simplemente llevarnos bien").
dbkk101
2
También odio a los instaladores. nada malo contigo
Nick
2
Esto parece una pregunta equivocada. Si desea utilizar aplicaciones portátiles, la pregunta correcta parece ser: "¿Qué programas son portátiles?". Por ejemplo, puede pensar que necesita MS Word, cuando lo que realmente necesita es un programa que pueda leer y escribir archivos de datos .doc. Open Office lo hará ... y, a diferencia de MS Word, está disponible en un formato portátil ... Tengo una copia (y Abiword) en una unidad flash que pasa todo su tiempo conectado a mi computadora portátil. Hay bastantes aplicaciones portátiles. portablelinuxapps.org ofrece 184 para Linux, mientras que portableapps.com/apps ofrece 232 +
El resto del comentario de Bill: ... una aplicación de menús para Windows [posiblemente, ambos incluyen una buena selección de utilidades triviales]). Elija los que desee y deseche los programas no portátiles que puede prescindir ... la mayoría de mis aplicaciones viven en una llave USB. Esto, por lo menos, simplificará la sopa de espagueti de archivos en su HD.
studiohack
También me parece que las mejores herramientas son portátiles. Podría ser parcial.
Vlastimil Ovčáčík

Respuestas:

35

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.

DavidWhitney
fuente
1
Agradable, simple explicación!
alex
77
Otra gran razón para los instaladores (especialmente como Office) es que ningún usuario debería poder afectar a otro usuario en el mismo sistema si no son administradores. Con Office 2007 pesando alrededor de 500 MB, si un usuario quiere usarlo, debe tener su propia copia local. ¡Eso sería 1.5GB para 3 usuarios en el mismo sistema! Google Chrome se instala en su directorio de usuarios local, por lo que si tiene 10 usuarios que tienen Chrome, son 10 versiones diferentes que deben actualizarse y mantenerse. Obviamente, hay ventajas y desventajas para una instalación por usuario frente a una implementación central.
Joshua
1
Algunas aplicaciones, como Photoshop (al menos anterior a CS4), simplemente se pueden copiar y, cuando se inician, crearán los almacenes de configuración de usuario y los archivos necesarios. Además, la mayoría de las aplicaciones .NET son portátiles por diseño, pero los usuarios finales esperan los próximos instaladores finales, muchos de los cuales ni siquiera saben qué es un sistema de archivos.
Oskar Duveborn
También se puede observar que, aunque las aplicaciones están destinadas a dividir configuraciones / bibliotecas / detalles en diferentes lugares, no es una costumbre bien difundida. Muy a menudo encuentro configuraciones para diferentes aplicaciones almacenadas en archivos en sus directorios de programas, y muy a menudo las bibliotecas que podrían compartirse están vinculadas estáticamente en el directorio de programas. Dado que no hay beneficios reales de hacer las cosas de una forma u otra para los programadores, el incentivo para adherirse a las reglas es débil y se produce el desarrollo de aplicaciones en el salvaje oeste :-). Además, supongo que la tradición es fuerte.
Daniel Andersson el
El GAC es solo la segunda venida del infierno de DLL. Buen concepto, pero en la vida real terminas con confusión ya que diferentes ejecutables se enlazan con diferentes versiones del mismo archivo, y algunas versiones de esos archivos pueden tener fallas de seguridad. Es un lío todopoderoso si necesita un entorno seguro. Ahora tiene que parchear diferentes versiones del mismo archivo para parchear el mismo agujero de seguridad. ¡Hurra! Cabe señalar que las políticas y las redirecciones obligatorias pueden ayudar, pero eso es como decir que una tirita ayuda contra heridas abiertas.
Stein Åsmul
12

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.

Piotr Dobrogost
fuente
7

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.

Ash
fuente
6

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.

Old Faithful
fuente
5

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 ).

Cruzar
fuente
Exactamente. ¿Cómo podría el sistema operativo encontrar el EXE o DLL para cargar sin una ubicación fija? "Establecer oExcelApp = CreateObject (" EXCEL.APPLICATION ")" debe funcionar de alguna manera.
Zan Lynx
4

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)

Eric Petroelje
fuente
3

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.

GAThrawn
fuente
¿Por qué es lo único en lo que puedo pensar mientras leo este icono de escritorio de Adobe Reader? Ese es tan increíblemente auto reparador que te aturde la mente ^^
Oskar Duveborn
2

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.

Ross
fuente
2

.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.

BinaryMisfit
fuente
2

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.

Brad Gilbert
fuente
2

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.

Dour High Arch
fuente
2

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.

wag2639
fuente