En informática, el minimalismo se refiere a la aplicación de filosofías y principios minimalistas en el diseño y uso de hardware y software . El minimalismo, en este sentido, significa diseñar sistemas que utilicen la menor cantidad posible de recursos de hardware y software.
Historia
A finales de la década de 1970 y principios de la de 1980, los programadores trabajaron dentro de los límites de los recursos relativamente caros y limitados de las plataformas comunes. Eran habituales ocho o dieciséis kilobytes de RAM ; 64 kilobytes se consideraba una gran cantidad y era todo el espacio de direcciones accesible para las CPU de 8 bits predominantes durante las primeras generaciones de computadoras personales . El medio de almacenamiento más común era el disquete de 5,25 pulgadas que contenía entre 88 y 170 kilobytes. Los discos duros con capacidades de cinco a diez megabytes cuestan miles de dólares.
Con el tiempo, las capacidades de memoria de las computadoras personales se expandieron en órdenes de magnitud y los programadores convencionales aprovecharon el almacenamiento adicional para aumentar las capacidades de su software y facilitar el desarrollo mediante el uso de lenguajes de nivel superior . Por el contrario, los requisitos del sistema para el software heredado siguen siendo los mismos. Como resultado, incluso los programas más elaborados y ricos en funciones de antaño parecen minimalistas en comparación con el software actual. Muchos de estos programas ahora se consideran abandonware .
Un ejemplo de un programa cuyos requisitos de sistema le dieron una vez una reputación de peso es el editor de texto GNU Emacs , que ganó el backronym "Ocho megabytes e intercambio constante" en una era en la que 8 megabytes era una gran cantidad de RAM. [1] Hoy en día, el paradigma basado principalmente en búfer textual de Emacs usa muchos menos recursos que los IDE de GUI de metáfora de escritorio con características comparables como Eclipse o Netbeans . [2] En un discurso en la Conferencia Internacional Lisp de 2002, Richard Stallman indicó que el minimalismo era una preocupación en su desarrollo de GNU y Emacs, basándose en sus experiencias con Lisp y las especificaciones del sistema de miniordenadores de gama baja en ese momento. [3]
A medida que las capacidades y los requisitos del sistema del software de escritorio y los sistemas operativos comunes crecieron a lo largo de las décadas de 1980 y 1990, y a medida que el desarrollo de software fue dominado por equipos que adoptaban metodologías de desarrollo de software conflictivas y caprichosas , algunos desarrolladores adoptaron el minimalismo como filosofía y optaron por limitar sus programas a un tamaño o alcance predeterminados. [4] Un enfoque en la optimización del software puede resultar en un software minimalista, ya que los programadores reducen el número de operaciones que realiza su programa para acelerar la ejecución. [5]
A principios del siglo XXI, los nuevos desarrollos en informática han llevado el minimalismo a un primer plano. En lo que se ha denominado la era posterior a las PC, ya no es necesario comprar una computadora personal de alta gama simplemente para realizar tareas informáticas comunes. [6] Los dispositivos informáticos móviles, como teléfonos inteligentes , tabletas , netbooks y computadoras con enchufe , a menudo tienen capacidades de memoria más pequeñas, subsistemas gráficos menos capaces y procesadores más lentos en comparación con la computadora personal que se espera que reemplacen. Además, el uso intensivo de efectos gráficos como la combinación alfa agota la batería más rápido que una "interfaz de usuario plana". [7] La creciente popularidad de estos dispositivos ha hecho del minimalismo una preocupación de diseño importante.
Google 's navegador Chrome y Chrome OS son a menudo citados como ejemplos de diseño minimalista. [8] [9] En Windows 8 , Microsoft decidió abandonar la interfaz de usuario de Aero con uso intensivo de gráficos en favor de la apariencia de Metro "simple y cuadrada" , que requería menos recursos del sistema. Este cambio se realizó en parte debido al surgimiento de dispositivos más pequeños que funcionan con baterías y a la necesidad de ahorrar energía. [10] [11] [12] La versión 7 de Manzana 's iOS hicieron cambios similares para la experiencia del usuario razones. [13]
Uso
Los desarrolladores pueden crear interfaces de usuario lo más simples posible eliminando botones y cuadros de diálogo que potencialmente pueden confundir al usuario. El minimalismo se usa a veces en su significado de artes visuales , particularmente en el diseño industrial del dispositivo de hardware o el tema del software .
Algunos desarrolladores han intentado crear programas para realizar una función particular en la menor cantidad de líneas de código o en el tamaño de ejecutable compilado más pequeño posible en una plataforma determinada. [14] [15] Algunas distribuciones de Linux mencionan el minimalismo como un objetivo. Alpine Linux , Arch Linux , Puppy Linux , Bodhi Linux , CrunchBang Linux , dynebolic [16] y Tiny Core Linux son ejemplos. El desarrollo inicial del sistema Unix ocurrió en hardware de baja potencia, y Dennis Ritchie y Ken Thompson han expresado su opinión de que esta restricción contribuyó a la "elegancia del diseño" del sistema. [17]
Los diseñadores de lenguajes de programación pueden crear lenguajes de programación mínimos evitando el azúcar sintáctico y las amplias funciones de biblioteca . Dichos lenguajes pueden ser tarpits de Turing debido a que no ofrecen soporte estándar para tareas de programación comunes. La creación de un intérprete Lisp mínimo es una tarea de aprendizaje común que se plantean a los estudiantes de informática . [18] El cálculo Lambda , desarrollado por Alonzo Church es un lenguaje de programación mínimo que usa solo definiciones de funciones y aplicaciones de funciones. [19] [20] Scheme , [21] [22] Forth , [23] y Go [24] [25] se citan como ejemplos de lenguajes de programación mínimos prácticos.
El hobby de programación del golf de código da como resultado un software minimalista, [26] pero estos son típicamente ejercicios o poesía de código , no software de aplicaciones utilizable.
John Millar Carroll, en su libro Minimalism Beyond the Nürnberg Funnel señaló que el uso del minimalismo da como resultado dispositivos de "uso instantáneo" como videojuegos, cajeros automáticos , máquinas de votación y quioscos de centros comerciales con poca o ninguna curva de aprendizaje que No requiere que el usuario lea los manuales. [27] Los investigadores de la interfaz de usuario han realizado experimentos que sugieren que el minimalismo, como lo ilustran los principios de diseño de parsimonia y transparencia , refuerza la eficiencia y la capacidad de aprendizaje. [28] El minimalismo está implícito en las filosofías de Unix de "todo es un flujo de texto" y "haz una cosa y hazlo bien", aunque las distribuciones modernas de Unix / Linux no se aferran tan rigurosamente a esta filosofía. [29]
Ver también
- Hinchazón de código
- Código de refactorización
- Concisión : Breve, sucinta.
- No te repitas
- Característica fluencia
- Principio KISS
- Distribución Linux ligera
- Muntzing
- Principio de Pareto regla 80:20
- Regla de menor poder
- Hinchazón de software
- Filosofía Unix
- Ley de Wirth
- Lo peor es mejor
- Ley de envoltura de software de Zawinski
- GreenBrowser
Referencias
- ^ Hagen, William von (13 de mayo de 2010). Ubuntu Linux Bible: con Ubuntu 10.04 LTS . ISBN 9780470881804.
- ^ "Cinco razones por las que Emacs siempre será mejor" .
- ^ "Mis experiencias Lisp y el desarrollo de GNU Emacs" .
... Mi objetivo era hacer la implementación Lisp absolutamente mínima posible. El tamaño de los programas fue una gran preocupación. Había personas en esos días, en 1985, que tenían máquinas de un megabyte sin memoria virtual. Querían poder usar GNU Emacs. Esto significaba que tenía que mantener el programa lo más pequeño posible. Por ejemplo, en ese momento la única construcción en bucle era while , que era extremadamente simple. No había forma de salir de la declaración 'while', solo tenía que hacer una captura y un lanzamiento, o probar una variable que ejecutaba el ciclo. Eso muestra hasta dónde estaba presionando para mantener las cosas pequeñas. No teníamos 'caar' y 'cadr' y así sucesivamente; "exprimir todo lo posible" fue el espíritu de GNU Emacs, el espíritu de Emacs Lisp, desde el principio.
- ^ "dwm - administrador de ventanas dinámico" .
- ^ ne se ha escrito teniendo como objetivo básico el uso moderado de recursos. Se han realizado todos los esfuerzos posibles para reducir el uso de tiempo de CPU y memoria, el número de llamadas al sistema y el número de caracteres que se envían al terminal. - página de información ne
- ^ Strickland, Jonathan (12 de febrero de 2009). "HowStuffWorks" ¿Cuál es la diferencia entre portátiles, netbooks y ultra-mobi " " . Computer.howstuffworks.com . Consultado el 8 de julio de 2013 .
- ^ "5 formas de mejorar la duración de la batería en tu aplicación" .
- ^ "Google Chrome Cr-48, modelo de diseño minimalista" . Revista de PC . 13 de diciembre de 2010.
- ^ Pilcher, Pat (13 de julio de 2009). "La batalla de los navegadores: ¿cuál es el maestro de la web?" . The Independent . Londres.
- ^ Chang, Alexandra (21 de mayo de 2012). "Interfaz de usuario de Microsoft Drops 'Aero Glass' en Windows 8 | Gadget Lab" . Cableado . Wired.com . Consultado el 8 de julio de 2013 .
- ^ McCracken, Harry (22 de mayo de 2012). "Windows Aero: por qué me alegro de que haya muerto | TIME.com" . Tiempo . Techland.time.com . Consultado el 8 de julio de 2013 .
- ^ En 2009, las computadoras de escritorio representaban el 44% del mercado mundial y las computadoras portátiles el 56%. Solo 3 años después, más del 61% de las PC vendidas son portátiles y la tendencia se está acelerando, esto es a nivel mundial, midiendo todas las PC con Windows vendidas. Entre los consumidores de los Estados Unidos que comprarán una PC este año, más del 76% comprará computadoras portátiles; ¡el número absoluto de todas las computadoras de escritorio vendidas en EE. UU. Será menor que la cantidad de tabletas en 2012!
- ^ "Por qué Jony Ive está matando el eskeuomorfismo en iOS 7" . 10 de junio de 2013.
- ^ "Elaboración de un ejecutable de Mach-O minúsculo" .
- ^ "Programación minimalista de Cocoa" .
- ^ "Amigable con el medio ambiente" . Archivado desde el original el 2 de febrero de 2014 . Consultado el 31 de enero de 2014 .
Este sistema operativo está diseñado para ejecutarse en procesadores Pentium2 con 256 MB de RAM, ni siquiera se necesita un disco duro. Libere todo el potencial de las computadoras incluso con una PC de segunda mano.
- ^ "El arte de la programación Unix" .
Un artículo de 1974 en Communications of the ACM dio a Unix su primera exposición pública. En ese artículo, sus autores describieron el diseño simple sin precedentes de Unix, reportaron más de 600 instalaciones de Unix. Todos estaban en máquinas con poca potencia, incluso para los estándares de ese día, pero (como escribieron Ritchie y Thompson) "la restricción ha fomentado no solo la economía, sino también una cierta elegancia de diseño".
- ^ "Construye tu propio Lisp" .
- ^ Stuart, Tom (15 de mayo de 2013). Comprensión de la computación . ISBN 9781449330118.
- ^ "7 líneas de código, 3 minutos: Implementar un lenguaje de programación desde cero" .
- ^ "La evolución de Lisp" (PDF) .
El informe inicial sobre Scheme [Sussman, 1975b] describe un lenguaje muy sobrio, con un mínimo de construcciones primitivas, una por concepto. (¿Por qué tomar dos cuando uno es suficiente?)
- ^ "Scheme-faq-general" .
Scheme es un dialecto de Lisp que enfatiza la elegancia y la simplicidad conceptual.
- ^ Biancuzzi, Federico; Cromático (21 de marzo de 2009). Mentes maestras de la programación: conversaciones con los creadores de los principales lenguajes de programación . ISBN 9780596555504.
Forth es un lenguaje informático con sintaxis mínima.
- ^ "Ir" .
Go es un lenguaje de programación de código abierto que facilita la creación de software simple, confiable y eficiente.
- ^ "Entrevista con Ken Thompson" .
... comenzamos con la idea de que los tres teníamos que ser hablados en todas las características del idioma, por lo que no había basura extraña en el idioma por ningún motivo.
- ^ "Wik Wiki Una Wiki en 1287 caracteres de PHP" .
- ^ John Millar Carroll (1998). Minimalismo más allá del embudo de Nurnberg . Cambridge, Mass .: MIT Press. ISBN 0-262-03249-X. Consultado el 21 de noviembre de 2007 .
- ^ Wren, C .; Reynolds, C. (2004). "Minimalismo en el diseño de interfaz ubicua" (PDF) . Computación personal y ubicua . Saltador. 8 (5): 370–373. doi : 10.1007 / s00779-004-0299-2 . S2CID 14851897 . Consultado el 29 de julio de 2008 .
- ^ "Uzbl - herramientas de interfaz web que se adhieren a la filosofía de Unix" .
La idea general es que Uzbl por defecto es muy básico.