¿La programación es ciencia o arte?

Ninguno. La programación es un oficio; es una actividad constructiva que casi siempre se realiza para producir algún artefacto útil, aunque algo intangible. Utiliza algunas ciencias y matemáticas como fundamentos. La informática y la ingeniería continúan desarrollando estos fundamentos. A diferencia del arte, el objetivo esencial de un programa de computadora no es representar o proyectar el estado emocional u opiniones del creador, ni es (principalmente) evocar una respuesta emocional del usuario. Como oficio, utiliza técnicas y herramientas conocidas para crear artefactos útiles. Las herramientas y técnicas continúan desarrollándose a medida que se comprende más del oficio y las herramientas en sí mismas se vuelven más poderosas.

Los artefactos de programación pueden evocar respuestas emocionales en los usuarios como parte de su diseño de Experiencia de usuario, pero este no es su objetivo principal. Incluso en estos casos, no es la programación la que es artística o emocional, sino el artefacto resultante que tiene estas cualidades.

La programación se puede utilizar para producir arte, pero eso no hace que el programa en sí sea arte. Piense en una ópera en vivo. La ópera es arte, pero las personas que hacen los sets son artesanos.

Los programas en sí mismos definitivamente pueden exhibir ciertas cualidades agradables de claridad, elegancia, visión, etc., pero yo diría raramente al punto de ser llamado arte. Nadie va a confundir a Quicksort con “Guernica”.

Por supuesto, esta es solo mi opinión

Son ambos.

Si por “ciencia” te refieres a un enfoque sistemático para la resolución de problemas, entonces la programación de software con el objetivo de resolver problemas como la administración de datos en mente lo convierte en una ciencia.

Si por “arte” te refieres a una expresión abstracta de pensamiento y emoción experimentada por el artista, el espectador o ambos, es un poco complicado de explicar, pero es sí. Estas son las razones por qué:

  1. Como medio de autoexpresión , si bien la función de comentar cualquier lenguaje de programación siempre ha sido proporcionar contexto a los programadores futuros para que sean guiados adecuadamente durante la resolución de problemas, ya que no hace nada directamente con los programas en sí, puede encontrar algunas cosas bastante interesantes. en ellos [1].
  2. Como medio interactivo, los programadores pueden expresar su creatividad a través de la forma en que el usuario interactúa con sus programas; los juegos son el lugar más obvio para observar las diferencias estilísticas entre cómo un jugador interactúa con el juego (comparemos, digamos, Diablo con los Sims), pero realmente puede volverse extraño con los juegos indie más exóticos como Undertale y Doki Doki Literature Club . Y mientras que la mayoría de los programas enfatizan la racionalización y la eficiencia debido a las necesidades financieras, los programadores también tienen un sentido del humor con sus creaciones [2].
  3. Como una pieza artística en la que reflexionar – Una vez más, los juegos son el lugar más fácil para señalar esto, pero vamos por algo un poco más mundano:

No soy un experto en temas artísticos, pero considere por qué los programadores que desarrollaron el iOS de Apple decidieron usar ese tipo de iconos para su interfaz, mientras que el Android de stock tiene un estilo completamente diferente para sus iconos. Si fueran realmente solo por eficiencia y velocidad, los gráficos requieren una potencia de procesamiento que podría haber optado por esto:

Pero no lo hicieron. En su lugar, utilizaron el poder de procesamiento de sus respectivos chips gráficos y nos proporcionaron una interfaz gráfica … y con eso, la oportunidad de expresarse (y de nosotros mismos) con arte, ya sea de las selfies que tomamos, los fondos de pantalla que descargamos, o las aplicaciones que usamos para jugar con la interfaz en sí.

(EDITAR: se podría argumentar que es un lanzamiento de mercadotecnia para usar una interfaz gráfica, y tendrías razón. Pero eso no significa que no puedas usarlo como una excusa para lograr cosas raras como ap15 ​​Launcher – Aplicaciones de Android en Google Play)

La cuestión es que la ciencia es muy diferente de “no arte”; de hecho, muchas cosas artísticas utilizan la ciencia (desde la geometría hasta la química, la fotometría, la física, la psicología, etc.). Entonces, mientras que usted podría asociar la ciencia como

Y muchas cosas se ven así

Puedes terminar con cosas geniales como esta [3]: STAR WARS AT-AT Walker

Y, por supuesto, sin ciencia no obtendríamos esto:

Por eso encuentro que la separación de la ciencia y el arte es algo extraña, tbh. Pero el punto sigue siendo:

La programación es una ciencia y un arte.

Notas al pie

[1] ¿Cuál es el mejor comentario en el código fuente que has encontrado?

[2] Cuando los programadores se vuelven raros: los proyectos de código más divertidos en GitHub

[3] ¿Cuáles son algunos proyectos geniales de HTML, CSS y programación?

Son sándwiches de pan o queso?

Primero, tu pregunta incorpora una falsa dicotomía. Su pregunta asume que todas las actividades son artes o ciencias: que “arte o ciencia” circunscribe todo el esfuerzo humano.

La idea de “arte contra ciencia” surgió, creo yo, durante el Renacimiento y la Revolución Científica, y tuvo sentido para las personas condicionadas por la idea medieval de que el “arte” era el principio del esfuerzo humano. “También hay ciencia”, es lo que trató de expresar. En ese momento era una distinción útil, ya que obligaba a los pensadores a considerar el impacto no solo de la creación, sino también del descubrimiento.

El problema con esto es que obviamente no es cierto. Hay muchas cosas que no son ni arte ni ciencia.

  • Construyendo (a diferencia de diseñar) puentes.
  • libros de lectura
  • componentes de soldadura en una placa de circuito
  • conduciendo un auto
  • resolviendo ecuaciones

En segundo lugar, su pregunta incorpora malentendidos populares de lo que es una “ciencia”. La ciencia no es “todo lo que no es arte”, o “todo esfuerzo no creativo”. La ciencia es el proceso iterativo de comparar observaciones con expectativas, y modificar expectativas basadas en esas observaciones, para descubrir hechos sobre el comportamiento o la constitución de los sistemas preexistentes.

Si bien la informática es una ciencia, existe una buena dosis de experimentos y descubrimientos, incluso eso está al límite. La informática se trata de (números sacados del aire aquí) una tercera ciencia y dos terceras matemáticas. Las matemáticas son un proceso de deducción inteligente a partir de los primeros principios: todo en matemática ha estado allí todo el tiempo, disponible para cualquiera que pensara seguir una cierta lógica. Pero la programación no es informática , aunque definitivamente la incluye.

El arte es creación. La programación involucra arte, en eso involucra la expresión creativa de ideas. La misma parte de mi cerebro que escribe poesía escribe código. Sin embargo, el código nunca es simplemente hermoso. Si tuviera que escribir “código abstracto” (líneas de C que no fueran ejecutables, pero que estuvieran dispuestas en bellos patrones en la pantalla), estaría creando arte, pero no programando.

La ciencia es descubrimiento. La programación involucra a la ciencia, en el sentido de que implica descubrimientos del comportamiento de los sistemas ganados con esfuerzo (en particular, descubrimientos de la mejor solución u óptima para ciertos problemas bajo ciertas condiciones). Sin embargo, la programación no es simplemente hechos acumulados sobre las computadoras. Si publicara un artículo sobre un conjunto de heurísticas que había descubierto experimentalmente para determinar cuándo ciertos algoritmos eran útiles, estaría haciendo ciencia, pero no programando.

La matemática es derivación. La programación involucra a las matemáticas, en el sentido de que involucra lógica pura y determinista, establecida desde el principio del universo, y que no requiere experimentación sino una deducción inteligente para descubrir. Sin embargo, la programación no es meramente lógica. Si tuviera que escribir una prueba de la lógica que esperaba que un programa implementara, estaría haciendo matemáticas, pero solo preparándome para programar.

La ingeniería es aplicación. La programación implica ingeniería, ya que implica la aplicación de principios científicamente descubiertos, la lógica derivada matemáticamente y la creación artística para construir estructuras, objetos o artefactos útiles. La programación es ingeniería. El hecho de que los artefactos producidos por la programación estén representados intangiblemente es lo que dificulta que las personas se den cuenta de esto, pero todas las características de la ingeniería como disciplina se aplican a la programación.

Su pregunta debe ser: “¿Es la programación de arte, ciencia, matemáticas o ingeniería?”

La respuesta es que incluye los tres primeros, pero no es ninguno de ellos. La programación requiere arte, ciencia y matemáticas; pero sería absurdo poner en cualquiera de esas categorías.

La programación es ingeniería.

Busqué los significados de arte y ciencia en Google. Esto es lo que conseguí.

El arte es la expresión o aplicación de la habilidad creativa humana y la imaginación. La ciencia es la actividad intelectual y práctica que abarca el estudio sistemático de la estructura y el comportamiento del mundo físico y natural a través de la observación y el experimento.

Teniendo en cuenta estas definiciones, la programación es una de esas cosas raras que existen en el mundo que son ambas cosas.

¿Arte? Hay un oficio, puedes acercarte a cualquier arte como un oficio, y si lo haces, nunca serás un artista.

Tomo una definición mucho más simple. El arte es composición intencional, la programación es exactamente eso.

La ciencia es cualquier cosa que utiliza la técnica científica para descubrir información.

Al escribir, tanto en prosa, poesía y código, nunca he usado la técnica científica. La codificación, al igual que las matemáticas, es una estructura lingüística compositiva, y no se crea mediante el uso del método científico, sino a través del trabajo generalmente duro en el proceso artístico de conocer y dominar los componentes y funciones de la base y adivinar y definir nuevas estructuras a partir de los componentes de la base.

La codificación es una de las formas de arte más altas que tenemos.


Sin embargo, al igual que cualquier medio de arte como la pintura, por ejemplo, puede comercializarse y cuando lo es, no llamamos arte a los comerciales, a pesar de que están utilizando medios de arte para una gran habilidad. En ese caso, la codificación no se utiliza como un arte (y la artesanía se aplica aquí), pero la codificación es una herramienta para seguir la intención de alguien. Su intención puede no ser artística y puede estar guiada por algún otro razonamiento, como la ganancia o la capacidad de visión.

¡Esta es mi opinión!
Se basa en donde se aplica.
Por ejemplo, si está utilizando la programación para compilar software como Paint, Photoshop, diseñar sitios web elegantes o crear juegos, etc. Puede ser considerado como un arte.
Si lo usa para aplicaciones como máquinas integradas, pronóstico del tiempo, investigación espacial, etc. Puede considerarse como ciencia.

¿Es la programación un arte o una ciencia?

La programación ciertamente no es una ciencia porque produce aplicaciones informáticas en lugar de nuevos conocimientos. Obviamente, algunas de esas aplicaciones pueden ayudar a los científicos a producir nuevos conocimientos, pero también lo hacen los zapatos que usan esos científicos: en la mayoría de los casos, sería casi imposible llegar al laboratorio con los pies descalzos.

La programación es un oficio, como la carpintería o la cocina. A manos de algunos practicantes, puede elevarse al nivel del arte, también como la carpintería o la cocina.

Programar es como modelar con arcilla.

Algunos dirían que el código es cerámica.

Usted puede dar forma a una taza para tomar té, si es un principiante.

También puedes moldear un cuerpo que luego se convertiría en el modelo para la Piedad de Miguel Ángel.

Ambas formas requieren conocimiento en ciencia y en arte, pero con niveles de habilidad muy diferentes.

Ninguno. Es un oficio. Aprendes un conjunto de técnicas prácticas y luego las usas para resolver problemas. Usted está pensando de manera pragmática: qué funcionará, qué se ejecutará rápidamente y usará menos recursos informáticos, y cómo puede colaborar y comunicarse mejor con otra programación. Y tú inventas nuevas técnicas.

Es un oficio, como construir casas, hacer muebles, coser ropa.

Definitivamente no es ciencia. La ciencia trata de comprender el universo, no de hacer cosas útiles.

La programación es tanto una ciencia como un arte.

Véalo de esta manera, como una ciencia, porque un programador debe saber cómo codificar en primer lugar … Eso es conocimiento aplicado.

Es un arte porque un programador tiene que usar su creatividad para resolver el problema en cuestión. Se necesita una gran cantidad de creatividad (arte) para que un programador pueda escribir una buena pieza de código.

Es un arte Escribir un buen código (es decir, en un buen estilo) es algo que toma mucho tiempo dominar. Escribir código es similar a escribir prosa: puede seguir reformulándolo y perfeccionándolo sin cambiar su significado, y revisar el código de otra persona es muy parecido a redactar un documento o un libro.

Es ciencia Si tuvieras un título, sería uno como ciencias de la computación, si eso es una gran pista. Si bien la programación puede usarse en el arte, en sí misma no es un arte.

Ya que no hay intención estética en la programación, obviamente no es un arte.