"Si ayudo a una sola persona a tener esperanza, no habré vivido en vano." Martin Luther King (1929-1968)

Wednesday, April 23, 2008

C++: An Interview with Bjarne Stroustrup (1/4)

La siguiente entrevista la hace un reportero del sitio http://www.ddj.com/ al creador de C++ Bjarne Stroutrup (BS), aunque al comienzo es un poco lenta y llena de detalles más adelente aborda temas que incumben a la educación en ingeniería (específicamente en el tópico de programación -que es el que me interesa;-)... espero que les resulte interesante


Marzo 27, 2008
http://www.ddj.com/cpp/207000124
by James Buchanan




Historia de C++
El creador de C++, Bjarne Stroustrup discute la evolución del estándar de C++0x, la educación de los programadores y el futuro de la programación

JB: Cuando te interesaste inicialmente por la computación, ¿cuál fue tu primer computador y el primer programa que escribiste?

BS: Aprendí a programar en mi segundo año de universidad. Desde el comienzo estaba comprometido a hacer "matemáticas con ciencia de computadores", pero realmente no recuerdo por qué. Sospecho que (erróneamente) pensé que la computación era algún tipo de matemática aplicada.
Mi primer computador fue el computador GIER del departamento. Se programaba casi exclusivamente en Algol-60. Mi semi-real primer programa dibujaba líneas (¡en papel!) entre puntos sobre el borde de una superelipse, para crear agradables diseños gráficos. Eso fue en 1970.


JB: ¿Cuando creaste C++, lo hiciste porque el paradigma (o estilo de programación) de programación orientada a objetos (POO) obviamente ganaría mucha popuplaridad en el futuro, o fué un proyecto de investigación para averiguar si la POO convencería?.

BS: Por ninguna de esas razones! Mi firme impresión (en aquel tiempo) era que todas las personas sensibles "sabían" que la POO no funcionaba en el mundo real: Era muy lenta (por más de un orden de magnitud), mucho más difícil de usar por los programadores, no era aplicable a los problemas del mundo real, y no podía interactuar con todo el resto del código que necesitaba un sistema. De hecho, probablemente estoy siendo demasiado optimista aquí: la "gente sensible" nunca había oído hablar de la POO y no querían hacerlo. Diseñé e implementé C++ porque tenía algunos problemas para los cuales era la solución correcta: necesitaba acceso al hardware al estilo de C y una organización del programa como la de Simula. Resultó que varios de mis colegas tenían las mismas necesidades. De hecho, entonces ni siquiera era obvio que C triunfaría. En ese tiempo, C estaba ganando adeptos, pero mucha gente aún consideraba a la programación de sistemas seria, en cualquier lenguaje que no fuera assembler, como una aventura y habían varios lenguajes -como C- que proveían de una manera de escribir programación de sistema portable. Uno de aquellos otros pudo haberse vuelto dominante en vez de C.

JB: Antes de C++, ¿fué debido a lo inadecuado de otros lenguajes que, por ejemplo, dijiste "tengo que crear C++"? ¿En esencia, por qué creaste C++?

BS: Sí, creé C++ en respuesta a una necesidad real: Los lenguajes de programación de esa época no soportaban abstracción para tareas difíciles de programación de sistemas de la forma en que yo lo necesitaba. Fué tratando de separa las funciones del kernel de Unix, de tal forma en que pudieran ejecutarse en distintos procesadores de un computador multi-procesador o en un cluster.

JB: Personalmente, ¿piensas que la POO es el mejor paradigma de programación para sistemas de software a gran escala, en oposición a la programación literal, la programación funcional, la programación procedural, etc.?¿Por qué?

BS: Ningún paradigma de programación es el mejor para todo. Lo que tu tienes es un problema y una solución para él; luego, tratas de amoldar la solución en el código ejecutable. Haces eso con restricciones de recursos y preocupación por la mantenibilidad. A veces, este amoldamiento se puede lograr de mejor manera con POO, a veces con Programación Gerérica o con Programación Funcional, etc.

La POO es apropiada donde puedes organizar algunos conceptos clave dentro de una jerarquía y manipular las clases resultantes a través de una base común de clases. Por favor nota para mí es lo mismo OO que le uso tradicional de la encapsulación, herencia, y polimorfismo (en tiempo de ejecución). Tu puedes elegir definiciones alternativas, pero esta es una historia bien definida.

No creo que la Programación Literal es un paradigma como los otros que mencionaste. Es más un método de desarrollo como el Desarrollo manejado por pruebas.

Monday, April 21, 2008

Do you speak english?

Hace algún tiempo estaba explorando el sitio web de una empresa llamada CONTACT CHILE.
Esta empresa tiene como lema "Tendemos puentes hacia Chile", y efectivamente, eso es lo que hacen. Su sitio en Español, Inglés y Alemán, pretende orientar a extranjeros de diversos países (principalmente de Europa y EEUU) a buscar prácticas de trabajo, tomar cursos en universidades, emigrar con intenciones de trabajo a nuestro país, o simplemente para aquellos que vienen de vacaciones.
Bueno, así sigue el sitio dando información práctica realmente útil para manjarse en Chile. Lo que sí resulta vergonzoso, pero muy cierto es lo que se dice acerca la incapacidad de los chilenos para hablar inglés:

"Those travelling in Chile should be able to communicate in Spanish. Most Chileans don't know too much English, even after twelve years of English in school (which says more about the schools than about the Chileans). Especially in rural areas, English won't get you very far. You can make your trip more enjoyable by taking an intensive course beforehand or in-country, and by bringing a compact phrase book. This will help you make contact with the locals and allow you to ask for information in difficult situations." (http://www.contactchile.cl/en/chile-chilenianisms.php)
Traduciendo:
"Aquellos que viajen por Chile debieran ser capaces de comunicarse en Español. La mayoría de los chilenos, incluso después de tener doce años de inglés en la escuela, no conoce el idioma Inglés (lo cual dice más acerca de las escuelas que de los Chilenos). Hablando en Inglés no vas a llegar muy lejos, especialmente en áreas rurales. Puedes hacer tu viaje mucho más divertido tomando un curso intensivo antes-de o en el mismo país, y llevando contigo un libro compacto de frases. Esto te ayudará a hacer contacto con los locales y te permitirá pedir información en situaciones difíciles."

Sin comentarios ... solo basta con mirar como marcha la situación en el Ministerio de Educación. Si la cabeza está en el vergonzoso estado en que hemos visto a la ex-ministra Provoste durante las últimas semanas, qué podemos exigir del resto.

"This is the window, this is the blackboard ... hasta 4to medio."

Información util para visitar Chile sacada desde Contact Chile
En Inglés: http://www.contactchile.cl/en/chile-information.php
En Alemán: http://www.contactchile.cl/de/chile-tipps-tricks.php
En Español: http://www.contactchile.cl/es/chile-consejos.php



ContactChile
Gestiones Interculturales
http://www.contactchile.cl
Huelén 219 piso 2
Providencia
Santiago de Chile
Fono/Fax:
(56-2) 264 17 19
E-Mail: info@contactchile.cl