Sobre la llamada Ingeniería Informática (E.W. Dijkstra)

06 10 2009
Extracto de On the cruelty of really teaching computer science, de E.W. Dijkstra:

(...) A number of these phenomena have been bundled under the name "Software Engineering". As economics is known as "The Miserable Science", software engineering should be known as "The Doomed Discipline", doomed because it cannot even approach its goal since its goal is self-contradictory. Software engineering, of course, presents itself as another worthy cause, but that is eyewash: if you carefully read its literature and analyse what its devotees actually do, you will discover that software engineering has accepted as its charter "How to program if you cannot.".

Traducción libre:

(...) Una cantidad de estos fenómenos han sido agrupados bajo el nombre de Ingeniería del Software. Tal y como económicas es conocida como "La Ciencia Miserable", la ingeniería del software debería ser conocida como "La Disciplina Maldita", maldita porque ni siquiera puede aproximarse a su objetivo ya que éste se contradice a si mismo. La ingeniería del software, por supuesto, se presenta a sí misma como otra causa útil más, pero es un espejismo: si lees cuidadosamente su literatura y analizas los que sus partidarios hacen realmente, descubrirás que la ingeniería del software ha aceptado como su máxima "Cómo programar si no sabes hacerlo".

¿Cuándo llegará el día en España en que la Ingeniería Informática sea reemplazada por las Ciencias de la Computación?


Trackbacks


26 10 2009
El principio de los tiempos
Fulianito tenía un plan. Le daba vueltas una y otra vez a la frase que cambiaría su vida: "(...) un número infinito de monos tecleando sobre un número infinito de máquinas de escribir por tiempo infinito, producirían la mejor novela de la Historia (...)".
Weblog: Pon un sol en tu vida
Tracked: Oct 26, 03:26

Comments

Display comments as (Linear | Threaded)
06 10 2009
#1 lfabiani (Reply)

Muy buena la entrada, pero no comprendo la reflexión final. Quizá sea porque "Ingeniería Informática" (Computer Engineering) e "Ingeniería del Software" (Software Engineering) tienen la misma relación que la Medicina y la Cirugía. Y nunca criticaría a la medicina por lo que se hace en "Corporación Dermoestética". La ingeniería del hardware está bastante más madura que la del software (probablemente sin alcanzar aún su madurez total).

Desde mi punto de vista (dejando a un lado el software), la diferencia entre "Computer Engineering" y "Computer Science" salta a la vista en el propio nombre. Y no veo el motivo para que ambas no puedan coexistir. Como ciencias químicas y la ingeniería química.

Sí estoy totalmente de acuerdo en que todas las ciencias, ingenierías y estudios en torno a la informática son jóvenes, inexpertas, llenas de intuiciones e implusos cuan adolescentes desbocadas. Como la psicología en el siglo XIX. Aún tienen un halo incluso religioso. Hay que esperar a que maduren, y quién sabe, quizá de aquí a un tiempo algún Newton de la informática ponga orden en el caos intuitivo que ahora es todo, o un Einstein de la programación descubra la unificación de los modos de programar. O quizá, al ritmo que van las cosas, en 100 años no exista la informática y los ingenios sean tan avanzados que los programadores como la conocemos sean una anécdota del pasado como los copistas medievales. Quizá esos ingenios utilicen a la humanidad como baterías alcalinas.
25 10 2009
#1.1 slopez (Reply)

El problema de la Ingeniería de la Computación, es que así como otras disciplinas están limitadas y reguladas por unas leyes físicas concisas, no ocurre lo mismo con ésta. El universo del desarollo de software es tan amplio como lo son las propias matemáticas (es decir, virtualmente infito) pero, ¿a alguien se le ocurriría crear la Ingeniería de las Matemáticas?

Existen unas leyes físicas que le permiten a un arquitecto determinar con seguridad si la estructura que está diseñando se sostendrá en pie. En cambio, el uso de cualquiera de las metodologías de desarrollo que contempla la Ingeniería del Software, no garantiza en absoluto que el código desarrollado no pueda fallar en unas determinadas circunstancias. De hecho, ni siquiera garantiza que vaya a realizar correctamente la función para la que fue diseñado, y mucho menos que la realice de una forma razonablmente eficiente.

Es por ello que, en la práctica, lo que denominamos Ingeniería del Software, realmente no es más que un conjunto de buenas prácticas; consejos y recomendaciones basados en la experiencia de otros programadores. Por esta razón Dijkstra dice que la máxima de ésta es "Cómo programar si no sabes hacerlo".

Add Comment


Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA