Ir al contenido principal

¿Programar es arte?

He escuchado varias veces que programar es un arte. Es cierto que el código tiene algo de la personalidad del programador; pero de eso a llamarlo arte…

programadores-artistas

Hay muchas definiciones de lo que es arte, algunas lo definen simplemente como algo bien hecho; pero muchas otras hablan del aspecto estético y de la expresión del artista a través de su trabajo. Creo que por eso es que se le ha llamado arte a la programación, de alguna forma nos expresamos usando un lenguaje de programación. Además puede haber varios estilos para resolver el mismo problema. Algunos son más elegantes que otros y muchas veces la elegancia se basa solo en aspectos subjetivos, al igual que la belleza del arte.

El objetivo de la programación es distinto al del arte. El arte busca la expresión del artista, transmitir sentimientos, lograr un placer estético en el observador. La programación, por otro lado, busca la solución a un problema y al mismo tiempo hacerlo de una manera simple, ocultando la complejidad para el fácil mantenimiento del programa. Esa es la razón por la que considero que programar no es arte, ya que no busca la expresión del programador, sino la solución a un problema determinado.

Hay quienes opinan que la programación es una artesanía, lo cual me parece un termino interesante. Hace tiempo platicamos sobre la artesanía de software en el Dev3Cast.

¿Tienes algún comentario? Mándame un correo a blog@developeando.com.

Comentarios

  1. Supongo que programar tiene tanto de arte como quien programa, Gaudi era Arquitecto y albañil y si miras su obra tiene tanto de eso como de arte.
    Miguel Angel pudo haber pintado la cúpula de la capilla sixtina de un solo color pero prefirió angeles, creo que tiene que ver con eso, con una solución "elegante" que sea tanto funcional como expresiva.
    Un cocinero, cocina ya que el fin es solo alimentar pero el arte culinario no solo satisface una necesidad básica humana, sino que le lleva mas allá y crea una experiencia tanto sensorial como social.

    Programar tiene un fin, pero en ocasiones el fin es solo el principio y la experiencia de utilizar ese ingenio y "ver" desde los ojos de quien te "tienta" a una experiencia nueva en si.

    Yo siempre que programo o creo interfaces tiendo a agregar a la mera funcionalidad pequeñas dosis de mi visión de como me gustaría que algo fuera, mi percepción de aquello que espero de algo y trato de hacer de una tarea rutinaria una experiencia con una profundidad deferente.
    ese "algo mas" yo solo lo puedo definir como la expresión artística de aquello que estoy creando.

    Volviendo al arte "obvio" la diferencia entre El David y cualquier otro trozo de mármol de la cantera es la imagen mental de quien lo cincelo.

    ResponderBorrar
    Respuestas
    1. Hola, es interesante lo que comentas sobre que "programar tiene tanto de arte como quien programa", es cierto que tiene que ver con el concepto de la "elegancia" del código. Quizás por eso el termino artesanía a veces lo siento más acertado.

      Gracias por compartir tu opinión.

      Borrar
  2. Es un arte por que se necesita ingenio y creatividad. Además de un analisis hay construir y al final tener un obra terminada maravillosa que ayudara a muchos.

    ResponderBorrar

Publicar un comentario

Entradas más populares de este blog

Bloqueos

Una de las preguntas típicas de las juntas matutinas en los equipos de desarrollo de software es ¿Hay algún bloqueo? Si lo hay, se trata de ver qué es lo que está esperando esa persona y encontrar la forma de que se desbloquee; pero ¿Qué son los bloqueos? Los bloqueos son obstáculos que te impiden realizar o avanzar en tu trabajo. Evitan que puedas seguir progresando en el proyecto.

He notado que es común en las personas con menos experiencia decir que tienen un bloqueo cuando están batallando, debido a su poca experiencia, en la forma de resolver un problema. Han intentado varias formas y se empiezan a quedar sin ideas de como puede ser resuelto el problema o como pueden cumplir con el requerimiento especificado. Al quedarse sin opciones de qué intentar dicen que tienen un bloqueo con la tarea y que a menos que alguien les diga como resolverlo, no se puede avanzar en la tarea.

En personas con más experiencia, ese tipo de bloqueos no ocurren, una persona con experiencia ha visto pro…

Firebird 2.1 UPDATE OR INSERT

Another great feature that I like in Firebird 2.1 is the UPDATE OR INSERT statement. It's a really time saver and it makes the SQL cleaner.

For example suppose I have a products table like the one I use in my last post and an inventory table to store the product stock. Before Firebird 2.1 if I want to set the stock for a product I needed to check if a record for that product_id already exists; if the product_id already exists then I write an update. If not then I write an insert statement. So I ended up with something like this:


IF EXISTS(SELECT * FROM inventory WHERE product_id = :product_id ) THEN
UPDATE
inventory
SET
stock = :stock
WHERE
product_id = :product_id;
ELSE
INSERT INTO inventory
(product_id, stock)
VALUES
(:product_id, :stock);

In this example I only update one field but when I have to update a big table I ended up with a big chunk of code and thinking: "there should be another (better) way to do this".

Fortunately now with Firebird 2.1 there…

Database Mail en MS SQL Server 2005

Configuración de Database Mail en MS SQL Server 2005

Primero se debe de habilitar, ya que por omisión el componente esta deshabilitado, Utilizando el SSMS (SQL Server Management Studio)


Si no esta habilitado aparecerá un mensaje preguntado si lo habilita, después aparece esta ventana donde se pregunta al usuario que es lo desea hacer.


Seleccionamos la primera opción para crear un perfil.


Configuramos el perfil y le agregamos por lo menos una cuenta.


Seleccionamos el perfil como public y default.


Para mandar correo se utiliza el procedimiento msdb.sp_send_dbmail por lo tanto el usuario que intente mandar correo debe de tener permiso para la base de datos msdb.

Referencias:
http://www.sqlservercentral.com/columnists/cBunch/introtodatabasemailinsql2005.asp