He estado programando en entornos Unix y Windows. Sobre todo he trabajado en Unix, donde aprendí filosofía de Unix , que se puede resumir como
- Escriba programas que hagan una cosa y que lo hagan bien.
- Escribir programas para trabajar juntos.
- Escriba programas para manejar secuencias de texto, porque esa es una interfaz universal.
Parece haber una clara diferencia en las culturas de programación entre los mundos de Unix y Windows, por ejemplo:
- GUI vs CLI
- Registro vs archivos de configuración
- Muchas herramientas especializadas para cualquier necesidad frente a un grupo de herramientas ortogonales genéricas que pueden combinarse
¿Hay equivalente de "filosofía Unix" en el mundo de Windows? ¿Qué programador de Unix puede aprender de Windows o debe tener en cuenta al pasar a la programación en Windows?
Me gustaría que las respuestas se centren en las mejores prácticas de programación de Windows (y no en una pelea entre Windows y Unix).
windows
philosophy
unix
Maglob
fuente
fuente
Respuestas:
En realidad hay algo así como "filosofía de Windows". Principalmente se trata del concepto de composición y la parte de la interfaz de usuario: programas de diseño para usuarios que no sean para otros programadores.
Eso significa:
Aquí hay una buena lectura:
Biculturalismo
Con la proliferación de Windows, el enfoque hacker de la codificación comenzó a desfavorecerse. Primero estaba escribiendo programas C / C ++ de la manera más compleja y ofuscada, de modo que solo los cerebros más duros pudieran entenderlos, como una especie de rito de iniciación. En Windows, las cosas comenzaron a cambiar y ese "estilo de código" ahora está muy desfavorecido. No estoy seguro si su influencia directa de Windows o más bien el nuevo nivel de comprensión de la calidad del código, pero al menos a tiempo coinciden.
fuente
Creo que las diferencias a las que alude en su pregunta son más sobre los usuarios de estos sistemas que sobre los estilos de programación de sus desarrolladores. Durante mucho tiempo, * nix ha sido el campo del programador o del entusiasta de la informática. Había muy poco en el camino del uso "casual". Donde como Windows tiene [inicio] números de usuario de órdenes de magnitud mayor.
Los usuarios ocasionales no quieren recordar una docena de banderas de línea de comando diferentes para ejecutar un programa. Quieren hacer clic en un botón.
Los usuarios ocasionales no quieren preocuparse por los archivos de configuración de sus sistemas, o por cómo Fluffy Kitties recuerda a su raza felina favorita.
Los usuarios ocasionales generalmente usarán algo siempre que haga lo que quieran, incluso si hay productos "mejores" disponibles.
Creo que mi punto principal aquí es ... Windows se trata mucho de crear para el usuario , en lugar del creador . No vaya en contra de los paradigmas de larga data que existen en el desarrollo de Windows. No contamine a los usuarios Mis documentos con basura, ni se inserte en su inicio sin ninguna razón.
Quizás de una importancia similar: escribir documentación del usuario.
fuente
El blog de Raymond Chen, The Old New Thing , y su libro con el mismo nombre es una gran idea de la filosofía, la historia y las mejores prácticas de la programación nativa de Windows.
fuente
Comprometerse y personalizar
No es lo mejor en nada, pero si está dispuesto a dedicar tiempo y tomar decisiones desagradables en algunos lugares, hay poco que no pueda hacer. Si no le gusta lo que está haciendo actualmente, probablemente pueda cambiarlo. Hay pocos lugares donde solo hay una forma o incluso una forma que siempre es la mejor.
Lo suficientemente bueno para que el usuario comience
Muy pocas cosas son fenomenales fuera de la caja, pero la mayoría de las cosas son utilizables. Unix tiende a ir en la dirección donde nada funciona hasta que lo configuras y Apple hace que todo esté muy pulido, pero a costa de cierta configurabilidad / flexibilidad.
Espere una cola de soporte de registro
Los usuarios de Windows no actualizan solo porque hay una versión más nueva. Ni siquiera siempre se actualizan debido a una vulnerabilidad o corrección de errores. Los usuarios de Windows a menudo deben verse obligados a actualizar, pero si los obliga a actualizar rápidamente, buscarán productos alternativos
Los usuarios tienen una amplia gama de niveles de habilidad.
Unix tiene una alta barrera de entrada percibida desde un nivel técnico desde el punto de vista de un usuario doméstico informal. Apple tenía un nivel de habilidad requerido muy bajo percibido, pero no alienta al usuario casual a hacer mucho en la forma de personalizar su sistema operativo. Windows está en el medio. Es solo un poco más difícil comenzar a usar que los productos de Apple, sin embargo, hay mucha información simple disponible, a veces directamente en la instalación misma, sobre cómo cambiar una configuración bastante profunda del sistema. Esto lleva a un nivel de habilidad bastante aleatorio en el nivel medio de los usuarios porque si tienen la confianza suficiente para probar algo, hay una buena posibilidad de que puedan descubrir cómo hacerlo. También deja a los usuarios más tímidos sin experiencia en algunos casos porque desconfían de las advertencias de que las cosas pueden salir mal.
fuente
Windows se creó con soporte explícito para el estándar de acceso de usuario común (CUA) de IBM para guiar el desarrollo de aplicaciones.
Lo cual, por supuesto, fue un intento de crear una experiencia similar a la de Mac para el usuario.
fuente
UNIX hace mucho tiempo era para programadores y personas así, y Windows siempre fue para usuarios que no saben cómo escribir scripts de bash. Por lo tanto, en Windows debe preocuparse por los usuarios, eso significa hacer una herramienta para todas las tareas que el usuario no necesita preocuparse por quién configurar pocos programas para trabajar juntos.
fuente
No estoy seguro de si es una filosofía, pero en mi humilde opinión, hay una especie de densidad de pensamiento que va con la programación de Windows. También hay una sensación de sorpresa por cómo funcionan las cosas a veces.
Recomiendo tener paciencia si adoptas el desarrollo de Windows y te preocupas un poco más por tus suposiciones.
fuente