¿Es la programación un arte?

Ciao a tutti!

Hoy hago una pregunta en alto ... ¿Es la programación un arte?

Hace no mucho, de un profesor al que admiro por su conocimiento en la materia, recibí una respuesta negativa tajante, esto es: NO.

Ultimamente he estado pensando en el tema y, ya que todo proceso creativo, lease proceso vinculado a la creación no a la creatividad, es también, en cierto modo, un proceso que requiere imagición, puede que a raiz de esto, se convierta a su vez en arte.

Está claro que cualquier proceso algorítmico, como "poner ladrillo, poner cemento, goto poner ladrillo" sólo está ligado a la matemática y al orden de los sucesos, pero, ¿acaso no implica la invención de un algoritmo algo de arte?

Obviamente, un ingeniero cualificado ha de ser capaz de programar siguiendo una serie de patrones y de protocolos perfectamente establecidos, al igual que un arquitecto construye un edificio. Ahora yo pienso, ¿es que no hay sitio para la creatividad artística en la arquitectura? Creo que sí, y no sólo ligada a una fachada (interfaz gráfica, que en algunos caso es también puro código), sino a la construcción novedosa, al uso de nuevos materiales, etc...

Supongo que si hay algún comentario iréis a pillarme al detalle, pues sin controversia no hay conversación Eye-wink

Mi postura no está clara aun en este tema. Ayudadme a decidirme por favor!!!

Saludos!

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

el arte consiste en plasmar

el arte consiste en plasmar emociones a traves de obras que se crean para ser contempladas por un espectador. Asi pues, el artista crea obras que al ser contempladas por el espectador transmiten emociones.

Algunas disciplinas artísticas estan realmente consagradas como arte, como puede ser la pintura o la escultura, esto es asi, ya que, un cuadro no tiene otra misión que esa: la de ser contemplado.

La arquitectura tambien es arte, pues las casas también se hacen para ser contempladas como obra que transmite emociones. Pero a la vez la arquitectura es tambien una ingeniería al tratar de hacer las casas funcionales. Aun asi no hay que confundir, esta dualidad "ingeniería-arte", que hace que la gente diga frases como "la arquitectura es el arte de hacer mas cuartos de baño en menos metros cuadrados" no es en realidad arte sino ingeniería.

Los programas no se suelen hacer para ser contemplados por un espectador, el cometido del programa es que sea funcional, que haga lo que tenga que hacer: por tanto la programación es pura ingeniería.

Asi pues, al igual que pasa en la arquitectura, hay obras de arte, que son mas arte que ingeniería, y hay obras que son mas ingeniería que arte, según el fin que trata de perseguir el arquitecto cuando hace la obra.

En cuanto a los programas, como con cualquier obra en la que interviene el ser humano, siempre tiene impregnado algo de arte, en tanto que tratamos que la interfaz de usuario sea bonita o agradable: tratamos de usar colores vistosos para mantener al espectador usuario contento con la aplicación.

Sin embargo hay otros programas que no tienen un fin funcional. Me refiero como no, a los juegos. Estos programas tienen como fin el transmitir emociones al usuario, son un vehículo de transmisión de emociones mas versatil incluso que el cine.
Yo considero que este tipo de programas es arte: Al igual que se considera arte el cine de terror, cuyo fin es el de transmitir miedo al espectador, yo considero arte el doom3...

En resumen:
1) "el arte de programar" no es en realidad arte.
2) Los juegos son programas cuyo fin es el de transmitir emociones al usuario: los juegos son obras de arte.

Imagen de int-0

Y la demoscene?

Las demos son programas que valen sólo para ser vistos y/o escuchados... suelen ser códigos que no siguen un patrón concreto.
------------------------------------
init=/bin/bash to conquer the world!

------------------------------------------------------------
$ python -c "print 'VG9udG8gZWwgcXVlIGxvIGxlYSA6KQ==\n'.decode('base64')"
------------------------------------------------------------

pues como he dicho antes, si

pues como he dicho antes, si el fin para el que esta concebido es el de transmitir emociones al espectador a traves de ese programa, entonces si, es una obra de arte.

Imagen de david.villa

Entonces...

...si un programa se realiza únicamnete pensando en resolver un problema de ingeniería, pero su uso o la observación de su código fuente causa admiración, envidia, sorpresa o decepción (todas ellas emociones) ¿se considera una obra de arte? ¿o como ocurre en el derecho penal, se necesita intencionalidad para ser considerado arte?

No soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.

como la musica del burro

Sería arte como la musica que toca el burro: como dice el dicho "le suena la flauta por casualidad". Yo para mi que eso no sería arte, aunque cada cual que opine lo que quiera.

Lo que no cabria duda de que es arte es por ejemplo la programación obfuscada, cuyo objetivo intencionado es causar admiración, envidia, sorpresa...
La programación obfuscada sería un arte "muy selecto", al igual que la gente corriente no sabe apreciar el arte contemporaneo ya que requiere por parte del espectador de ciertas "dotes" extras. El arte de la programación obfuscada sólo puede ser apreciado por un programador.

Cuando una persona corriente que no sepa programar ve un programa obfuscado cuyo codigo fuente haga a la vez un dibujo, no sabría apreciarlo: vería solo un dibujo hecho con caracteres ascii.

Imagen de david.villa

Sean Pepe y Juan dos programadores...

...con conocimientos técnicos similares. Se les pide realizar un programa. Pepe, que tiene alma de poeta, no repara en estilo y buen hacer a fin de causar admiración y asombro en todo aquel que vea su obra. Juan sin embargo, es un hombre pragmático y su preocupación es hacer un programa mantenible y bien modularizado. Ambos cosiguen sus respectivos objetivos.

Habiendo acabado el trabajo y por una sigularidad estadística resulta que ambos programas son idénticos. Sin embargo, tu criterio dice que sólo el programa de Pepe es arte y el de Juan es simplemente una pieza de ingeniería, a pesar de que son completamente indestinguibles.

Cuando menos, resulta ser una curiosa paradoja.

No soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.

ya ves,

paradojas de la vida, las bellas esculturas artisticas de la ciudad encantada de cuenca creadas por casualidad por acción de la naturaleza, y un burro tocando la quinta sinfonia de beethoven!!!

Bueno, a lo que voy: que la programación puede ser un medio de expresión artistica como cualquier cosa que maneje el hombre.

Ayer vi en el telediario de la primera, una noticia sobre una exposicion de arte conterporaneo en la que usaban ordenadores.

Una de las obras consistia en un monitor tft que tenia un sensor que detectaba cuando giraba el monitor, al girar el monitor cambiaba la imagen, dando la sensación de que lo que se representaba en la imagen (un busto dandote la espalda), te seguía dando la espalda sea como fuera el angulo con que tuvieras inclinado el monitor.

Otra obra artística consistía en algo parecido a los juegos del eye toy, que te captaba una camara, y caian letras del cielo que tenias que atrapar.

Son obras de arte destinadas a sorprender, que usan medios no convencionales.

Como veis los artistas no escatiman en nada para conseguir transmitir emociones al espectador. Me contaron una vez que uno de estos "artistas" había inventado lo que el denominaba "una obra de arte en la que para sentir la obra, el espectador tenia que participar activamente". Lo que pretendía el artista es que el espectador sintiera la experiencia de volver a nacer. Al loro: la obra consistía en un tubo de medio metro de diametro y 10 metros de largo, y para sentir la obra, el espectador tenía que meterse por un extremo del tubo y salir por el otro. Una vez una señora gorda que "experimento" esta obra entró por el tubo y tardo mas de media hora en atravesarlo. Casi tienen que romper la obra para sacarla. Cuando al final consiguió salir, sofocada, sin poder hablar decia "....REALMENTE ES COMO VOLVER A NACER!!!" Laughing out loud

Imagen de david.villa

depende

Creo que hay argumentos a favor y en contra. Desde el punto de vista de la ingeniería muchos se pueden molestar cuando se hace referencia a la programación como “un arte”. ¿Cómo argumentó tu profesor su respuesta?

Un argumento frecuente es que un proceso ingenieril no debería dejar lugar para la improvisación o la ambigüedad. Todo debe estar “fríamente” calculado y ejecutarse a tenor de un plan riguroso. Pero si un ingeniero “ingenia”, tiene ideas (nuevas ideas), éstas no siempre se pueden medir y pueden no tener cabida en un plan preconcebido. Si los métodos de medida y planificación actuales en la informática no dejan lugar a la creatividad, quizá es que no son los adecuados.

Quizá el programador ejecuta el plan y no crea algoritmos ni nuevas ideas, sólo las codifica (de modo que la programación en sí no tiene un componente creativo ni artístico). Pero el ingeniero (el que crea “ingenios”, tenga o no título) está inmerso en un proceso creativo.

El ejemplo que das de los arquitectos es curioso pues mucha gente no considera que los arquitectos tengan una capacidad técnica equiparable a los ingenieross. Aunque mucha más gente piensa que los informáticos tampoco somos ingenieros (seguro que conoces más de uno).

Una de las herramientas de diseño más potentes que hoy día tienen los diseñadores de software son los patrones de diseño, que por cierto poca gente usa todavía. Y eso que los patrones son algo que los arquitectos ya tienen superado desde la primera mitad del siglo XX. También ser verdad que la “Ciencia de la computación” es mucho más reciente. ¿Es la programación un arte? Yo digo que depende.

Pero planteo otras preguntas:

  • ¿Realmente hacemos ingeniería los informáticos?
  • ¿Es la computación realmente una ciencia?
  • ¿Se puede considerar como ciencia lo que hace un grupo de personas que oculta y protege a sangre y fuego sus creaciones e ideas, en lugar de difundirlas y compartirlas?
  • ¿Ha matado la propiedad intelectual a las “comunidades científicas”?

No soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.

téchnē (τέχνη, arte, técnica u oficio)

Esta es mi opinión personal:

Al ser Tecnología, la programación queda en un abismo suseptible de la interpretación del que más le convenga.

Lo cierto es que se basa en la ciencia para existir, pero también es cierto que en el momento en el que lo elemental de esa ciencia, es tocada por la creatividad del hombre, pasa a llevar dentro de su escencia la forma de pensar unica e individual de ese ser que transformó ordenes sin sentido en un algoritmo o lo que sea, ya que existen en la programación variedad de estilos, que dependen de la personalidad de cada uno de los que programamos. Recordemos que dos programas totalmente distintos, pueden resolver los mismos problemas, lo que significa que, como bien se ha dicho, mi escencia, mi caracter, o mi forma de "ver" una solución es única, y por lo tanto al ser así queda impreso mi escencia en lo que programo, y esa escencia es lo que llamamos arte.

Y si se puede transmitir un sentimiento, si una persona que vive con frustración escribe un programa, lo mas logico es pensar que el que quiera entender su forma de programar, será frustrado.

Mucha gente confunde Tecnología con Ciencia, aunque realmente lleva de las dos: ARTE Y CIENCIA Laughing out loud

Wikipedia:

Tecnología es el conjunto de conocimientos técnicos, ordenados científicamente, que permiten diseñar y crear bienes y servicios que facilitan la adaptación al medio ambiente y satisfacer tanto las necesidades esenciales como los deseos de las personas. Es una palabra de origen griego, τεχνολογία, formada por téchnē (τέχνη, arte, técnica u oficio, que puede ser traducido como destreza) y logía (λογία, el estudio de algo). Aunque hay muchas tecnologías muy diferentes entre sí, es frecuente usar el término en singular para referirse a una de ellas o al conjunto de todas. Cuando se lo escribe con mayúscula, Tecnología, puede referirse tanto a la disciplina teórica que estudia los saberes comunes a todas las tecnologías como a educación tecnológica, la disciplina escolar abocada a la familiarización con las tecnologías más importantes.

mi opinión

¿Es la programación un arte?

No, creo que no. Que puedan existir procesos creativos durante la programación no significa que sea un arte.

Que el arte se defina por la intención de su autor de producir emociones también es discutible.

Al respecto se puede consultar:
http://es.wikipedia.org/wiki/Arte

¿Realmente hacemos ingeniería los informáticos?

Dependen de cada uno. Pero es discutible, como alguien mencionó antes mucha gente opina que la informática no es una ingeniería. Yo creo que sí lo es, aunque nunca podrá compararse con otras ingenierías que tienen muchas más similitudes entre sí, porque la informática tiene muchas particularidades.

Al respecto, puede consultarse:
http://es.wikipedia.org/wiki/Ingeniería

¿Es la computación realmente una ciencia?

En general diría que no es ciencia, sino tecnología. Es más discutible si hablamos de la creación de nuevos algoritmos pero generalmente son matemáticos quienes los crean.

Para no generar confusión vale aclarar que hablo de algorimos específicos que resuelven un tipo de problema generalmente de ocurrencia común (que se puede dar en diferentes circunstacias), tipificados. Vale la aclaración, ya que por definición todo programa es un algoritmo computacional.

A veces no diferenciamos claramente ciertas cosas creyendo que es informática o computación cosas que no lo son. Así como no son informáticos quienes crean nuevos algoritmos computacionales sino matemáticos, son electrónicos quienes diseñan microprocesadores, etc. Pero al hablar de estas cosas creemos que su creación tiene que ver con la computación más de lo que deberíamos.

Diferenciar ciertas cosas es bastante complicado y a veces hasta resulta articial hacerlo. Por ejemplo, la ciencia y la tecnología tienen imbricaciones mútuas muy fuertes y a veces no están claros los límites.

También es difícil hablar de creación. Por ejemplo, un programador que utiliza patrones y otros elementos para solucionar un problema o un conjunto de problemas particular, ¿está creando o sólo está usando herramientas existentes para solucionar un problema?

¿Creó quien fue autor de tales herramientas?

Si consideramos que el ser humano crea a partir de lo que existe (sólo Dios puede crear de la nada) los límites se hacen difusos.

Como quiera que sea, la posibilidad de estar creando algo nuevo no determina si lo que se hace es ciencia (aunque puede ser un factor), sino también los métodos, procedimientos, finalidad, etc.

Referencias (ojo, Wikipedia no es la verdad absoluta de las cosas):
http://es.wikipedia.org/wiki/Ciencia
http://es.wikipedia.org/wiki/Tecnología
http://es.wikipedia.org/wiki/Método_científico

¿Se puede considerar como ciencia lo que hace un grupo de personas que oculta y protege a sangre y fuego sus creaciones e ideas, en lugar de difundirlas y compartirlas?

Se le pueden asignar diversos calificativos que denoten una valoración propia de sus actividades o actitudes, pero la discusión sobre si la informática es o no ciencia no pasa esencialmente por aquí. De todos modos tu planteo es muy importante y mi repuesta sería: si la informática en verdad es una ciencia, esas actitudes no califican, ya el primer propósito de la ciencia (aunque no el único) es la búsqueda de la verdad, de respuestas (para toda la humanidad si hace falta aclararlo) acerca de la realidad física, con el objeto de explicarlas, realizar predicciones, etc.

¿Ha matado la propiedad intelectual a las "comunidades científicas"?

No, no las ha matado. No obstante las lesiona, ya que está tan desvirtuada que termina siendo contraria a su propósito original que era promover la investigación (científica o tecnológica), generando fondos para que exista inversión. Que alguien reciba ingresos durante 60 años de un invento o de una obra que realizó, más que permitir que tal persona aplique su talento y conocimientos a la creación, permite que esa persona (física o ideal) se convierta en un parásito.

Ni hablemos de las patentes que más allá de tratarse de un concepto diferente produce efectos similares.

No digo que no deban existir o que no puedan resultar beneficiosas para el conjunto de la sociedad; digo sí, que al estar tan desvirtuadas, hoy por hoy son perjudiciales en la mayoría de los casos.

Por otro lado, hay otros factores importantes que atentan en contra de la ciencia, los científicos y sus comunidades, desde el criterio economicista (de negocio) que rige a las revistas científicas, hasta los intereses espúreos o mezquinos que mueven a muchas empresas que invierten en investigación y desarrollo científico.

Bueno, hasta aquí mis opiniones.

Saludos.

HERRAMIENTAS?

Cita :"También es difícil hablar de creación. Por ejemplo, un programador que utiliza patrones y otros elementos para solucionar un problema o un conjunto de problemas particular, ¿está creando o sólo está usando herramientas existentes para solucionar un problema?"

Esta aseveración carece de valor, ya que un pintor no necesariamente tiene que hacer el lienzo ni la brocha o pincel con el que pinta, para que su arte sea considerado Creación de arte...

Imagen de magmax

Arte en programación... depende.

Estoy de acuerdo con David.

Considerar un arte a la informática es algo que depende. Yo, en más de una ocasión, he dicho de un programa: "Qué chulo me ha quedado". Eso implica que hay formas menos "chulas" de hacerlo, por lo que el arte es fundamental a la hora de programar.

Sin embargo, existen formas de hacer las cosas, como en cualquier ingeniería. Los patrones, las clases, los métodos, ...

Un main/método de 400 líneas no es ingeniería. Tampoco arte. Ni siquiera chapuza: es una mierda. Un programa en un único fichero de 10.000 líneas a menudo también suele serlo. Cualquiera es capaz de hacer eso: hasta un millón de monos (hay un dicho: "Un millón de monos delante de sus teclados programarían código eficiente... salvo si programan con Emacs").

Sin embargo, hacer un programa que cualquiera que vea sea capaz de entender, que sea reutilizable, rápido, que se ajuste a las necesidades y resuelva los problemas deseados, ... no es nada fácil de conseguir. Hace falta un proceso, una línea de acción, un análisis, una evaluación. Se supone que eso es lo que hace un ingeniero, ¿no? Pero la decisión de usar un patrón "template", por ejemplo, para evitar instrucciones "switch" requiere un poco de arte (nadie te dice: "en estos casos SIEMPRE se debe utilizar tal patrón").

Desde el punto de vista comercial, la verdad es que vende más que te diga: "te vendo un proyecto de ingeneriería que va a llevar tu contabilidad con exactitud matemática" a "te vendo un proyecto precioso, una obra de arte, que te va a dejar maravillado cuando realice sus cálculos". ¿No lo creéis así?

Bueno, ya no me enrollo más: yo creo que no puedes separar ingeniería de arte. En la justa medida está la virtud.

Miguel Ángel García
http://magmax.org

Imagen de brue

Buenas reflexiones

Me parecen preguntas muy interesantes, sobre todo las dos últimas y creo que son de reflexión obligada y más en este foro de discusión. La penúltima es una afirmación realmente, pero ... Smiling

En fin, se podría hablar durante horas de esto...

Lo más importante es haberse hecho esas preguntas alguna vez Smiling

--
La especialización excesiva es una muerte rápida

brue

que es el arte

para mi elarte es morirte de frío así que no se que tiene que ver con la programación

Imagen de int-0

pues para mi...

que te falta una "H" antes de nada ¬_¬

------------------------------------
init=/bin/bash to conquer the world!

------------------------------------------------------------
$ python -c "print 'VG9udG8gZWwgcXVlIGxvIGxlYSA6KQ==\n'.decode('base64')"
------------------------------------------------------------