RSS

Python como primer lenguaje de programación

Wed, Oct 19, 2011

Programación


Python es un lenguaje de programación moderno creado por Guido van Rossum a inicios de los años noventa. La implementación canónica, conocida como CPython, está bajo una licencia de software libre y se puede descargar del sitio oficial. El que sea una tecnología abierta y libre tiene ventajas importantes sobre tecnologías propietarias. La principal es que se puede usar sin tener que cubrir costos de licencias. Esto quiere decir que un alumno puede seguir usando Python gratuitamente fuera de su centro de estudios.

A continuación se listan algunas de las características más sobresalientes del lenguaje Python
:
• Es orientado a objetos, pero soporta también los estilos de programación procedural y funcional.
• Corre en múltiples plataformas, incluyendo Windows, Mac OS y Linux.
• Su sintaxis y semántica es sencilla y consistente.
• Utiliza tipos dinámicos.
• Es adecuado tanto para programar scripts como aplicaciones de gran tamaño.
• Es muy modular.
• Cuenta con administración automática de memoria a través de recolección de basura.
• Incluye una poderosa y extensa biblioteca de clases.
• Cuenta con una gran comunidad que se dedica a promover su desarrollo y adopción.
• Por su naturaleza interactiva, resulta ideal para llevar a cabo programación experimental y desarrollo
rápido.

En estos últimos tiempos, el primer curso de programación, tal como se enseña en muchas instituciones de educación superior en el mundo, ha tomado un fuerte énfasis hacia la enseñanza de lenguajes de programación como C, C++, Java o C#. Dichos lenguajes son muy relevantes para la construcción de software de producción, pero no fueron diseñados para enseñar a programar.

Partiendo del objetivo de la enseñanza del primer curso de programación: Al finalizar este curso el alumno será capaz de aplicar la lógica para generar algoritmos que permitan resolver problemas.

Frederick Brooks argumentó que todo proyecto de software afronta dos tipos de complejidades:

Complejidad accidental. Es aquella que tiene que ver con las situaciones que surgen en el proceso de desarrollo de software pero que no tienen que ver con el problema siendo resuelto. Normalmente ocurre por la manera en que se decide abordar el problema.

Complejidad esencial. Es aquella que es inherente al problema en cuestión y no hay forma de evitarla.

Veamos un ejemplo universal: “Hola mundo”:

Un lenguaje como C obliga a incorporar la cabecera de una biblioteca estándar, definir una función principal que devuelve un valor nulo (obligatorio en C99) y a codificar el salto de línea de una forma críptica (al menos para una persona que no ha visto un programa en su vida):

#include
int main(void)
{
printf(“Hola mundo\n”);
return 0;
}

¡Quince componentes léxicos (sin contar la directiva del preprocesador)! La cosa no mejora mucho en C++ (¡y eso sin entrar en la polémica de que cada año, o casi, hay que escribir este programa “canónico” de una forma diferente!)

#include
int main(void)
{
std::cout << “Hola mundo” << std::endl;
}

Y en C#, resulta complicado hasta lo inverosímil:

using System;
public class HolaMundo
{
public static void Main(string [] args)
{
System.WriteLine(“Hola mundo”);
}
}

¿Cómo, le podemos explicar a un novato que no ha visto un programa en su vida el significado de cada uno de los términos sin solicitar un acto de fe tras otro?

Python va directo al grano:

print “Hola mundo”

Lo único que se le tiene que explicar al alumno en este momento es que existe una función predefinida llamada print y que recibe una cadena de caracteres como argumento. El ejemplo es claro y conciso, y tiene un mínimo de complejidad accidental.

De hecho, el programa “Hola mundo” no es determinante a la hora de escoger un lenguaje de programación, pero sí debería suscitar una seria reflexión acera de la excesiva e innecesaria complejidad a la que se somete a los principiantes a la programación.

This post was written by:

- who has written 94 posts on Ruben Mauricio.


Contact the author

Leave a Reply