INTRODUCCIÓN A LA PROGRAMACIÓN


Viñeta post
En esta primera entrega, vamos a realizar una pequeña y breve introducción a la programación informática, sentando las bases teórico prácticas de lo que voy a ir desarrollando durante los siguientes artículos de esta serie “Escuela de programación”.
Es difícil resumir en un artículo los fundamentos de programación que seguramente podríais estudiar en cualquier asignatura de introducción a la programación de informática, o en algún libro de los muchos y buenos que hay, pero vamos a dar algunas pinceladas de qué es esto de la programación, qué hay que tener en cuenta y otros temas básicos de nivel iniciación (newbie =novato o principiante).
La comunicación y la programación.
Partimos de una máquina: llámese ordenador (PC), llámese dispositivo móvil (PDA, Smartphone o teléfono inteligente, etc.), llámese robot, llámese reloj que pueda almacenar y operar con un sistema operativo que podamos manejar desde fuera, conectándonos a dicha máquina. Bien, pues la programación es la tarea de hacer un programa (comunicarse en un lenguaje) con la maquinita preferida. Así de este modo, si nos comunicamos con nuestro amigo Inglés Mike en Inglés, nos comunicaremos con nuestro amigo Robotito en C# con .NET –por ejemplo- creo que está fácil de entender qué es esto de la programación, por lo menos de una manera sencilla… ya lo iremos complicando.
Por lo tanto ya tenemos que para programar necesitamos (básicamente):
1. Un “alguien” que se quiere comunicar –yo, o el usuario-.
2. Un quién con el que me quiero comunicar para que haga algo –el PC, el robotito, etc.-
3. Un cómo, que es el lenguaje que voy a utilizar para que el “quien” haga lo que quiero que haga –por ejemplo, le puedo pedir a Robotito que ande hacia adelante-. Este cómo será el lenguaje de programación, en nuestro caso C#.
Con estos tres ingredientes, ya estamos listos para empezar a trabajar. Queremos hacer un programa/aplicación que haga algo: un programa que sume, que reste, que diga “hola” por la pantalla de un PC… lo primero que necesitamos es un objetivo, qué queremos que haga nuestro programa aplicación –hablando desde el punto de vista del usuario, dejaremos las aplicaciones de empresa para más adelante-. Siguiendo con nuestro ejemplo, y por tener una práctica en la que ir pensando, vamos a suponer que nuestro programa consiste en una aplicación que se ejecutará en un sistema Windows y que mostrará una ventanita con algunos botones y que nos permitirá pulsar dichos botones y que realicen algunas operaciones básicas al pulsarlos.
Elegir un lenguaje.
Una vez sabemos qué queremos hacer necesitamos elegir el lenguaje. Los lenguajes que vamos a utilizar en nuestro caso se denominan lenguajes de programación de alto nivel, que nos permiten hacer programas utilizando un lenguaje parecido al lenguaje natural que utilizamos los humanos. A la hora de utilizar un lenguaje debemos plantearnos con qué aproximación queremos hacer nuestra programación. Así podemos identificar las siguientes aproximaciones y, entre paréntesis ejemplos de lenguajes especialmente pensados para esos enfoques:
1. Programación estructurada (Basic, C, Pascal)
2. Programación orientada a objetos (C#,Visual Basic.NET, C++, Java).
3. Programación declarativa (Lisp, Prolog).
4. Programación funcional (AML, CAML).
Cada una de ellas propondrá o planteará algunos lenguajes de programación que son mejores para resolver una problemática desde el punto de vista de la programación. A nosotros –por el momento- nos bastará con el enfoque orientado a objetos del que ya hablaremos en otro artículo de esta misma serie.
Compiladores e intérpretes.
Los programas escritos en lenguajes de alto nivel no son entendibles directamente por la máquina, sino que necesitan ser traducidos a instrucciones en lenguaje máquina que entiendan las computadoras. Los programas que realizan esta traducción se llaman Compiladores, y los programas escritos en un lenguaje de alto nivel se llaman Programas Fuente –el famoso código fuente o source code en inglés-. El compilador traduce el Programa Fuente en un programa llamado Programa Objeto. El proceso de traducción de un programa fuente a un programa objeto se denomina Compilación. En este enfoque, al final de la creación del programa se llama al compilador y como resultado se produce el “ejecutable” o en ensamblado –o assembly en terminología .NET- que es un módulo de código listo para entenderse con el PC o con lo que sea para lo que lo hayamos hecho.
Existe otro mecanismo de trasladar las instrucciones de alto nivel a lenguaje máquina, la interpretación; en este caso, no existe proceso de compilación sino que cada vez que hace falta una parte de nuestro programa, un “intérprete” coge el fichero de código fuente, lo interpreta y genera las instrucciones máquina y acciones necesarias cada vez que se pide que haga algo. Este enfoque es más lento, al tener que leer siempre el código fuente y tener que traducirlo a código máquina cada vez que se llama al programa.
La tarea de la programación: desde el diseño hasta la creación.
La creación de un programa que resuelve un problema, debe llevar asociada una metodología, una manera de hacer las cosas que implica sentarse y pensar cómo hacerlo, más que nada por poner orden en lo que se hace y organizar bien el código, para que el programa final esté libre de errores y sea “de calidad” entendida como satisfacción del usuario final de nuestro programa.
Podemos decir sin entrar en mucho detalle ni en metodologías más o menos pesadas, que existe un flujo de tareas típicas que debemos plantearnos a la hora de programar o hacer un programa que intenta resolver un problema para un usuario o grupo de usuarios , o incluso para nosotros mismos, que son:
· Análisis: Qué quiero hacer / Qué me piden. Cómo puedo hacerlo, qué opciones tengo, qué puedo usar/reutilizar, qué problemas puedo encontrar, han encontrado otros, etc.
· Diseño: qué estructura tendrá. Si es orientado a objetos, cuál es la estructura de clases de mi programa/aplicación, qué datos va a manejar, trabajará mi programa con una base de datos o con alguna otra fuente de datos tipo fichero…
· Codificación. Esto es lo que más nos gusta. Escribir el programa rápido, muy rápido para poder darle a la tecla “Play” y detectar con frustración los 27 errores y cinco Warnings que nos da al intentar compilar… jejeje ¿no os ha pasado nunca? ¡No me lo creo!
· Compilación y ejecución. Si no os habéis adelantado, una vez escrito y verificado que lo que hacemos está bien hecho, volvemos a leer el código y le damos al “play” = generar el código objeto ya ejecutable y que nos muestra el resultado de lo que hemos programado.
· Verificación. Fase en la que jugaremos con nuestro programa ya ejecutable y veremos que responde de forma correcta a las diferentes perrerías que se nos ocurran –pensad siempre que a los usuarios finales se les van a ocurrir más perrerías o perrerías más “tontas” que las que se os puedan ocurrir a vosotros, así que ¡verificad malditos!
· Depuración. La verificación debe dar como resultado que os vayáis al entorno de depuración de la herramienta que estéis utilizando –y que sea Visual Studio .NET 2005- para ver qué pasa en el código que causa que al verificar no esté sucediendo lo que debería suceder.
· Documentación. Casi mi recomendación es que vayáis haciéndolo al tiempo que vais codificando, si no al final nos da pereza… y nunca se documenta, de verdad de la buena.
· Distribución. Ya podemos meter nuestro programa en una cajita, ponerle etiquetas y un logo chulo y empezar a distribuirlo, venderlo, enviárselo a nuestra tía de Wisconsin y al Tato que está en el Argamasón. Que flipen con nuestro programa chulo, que al ejecutarlo muestra un flamente “Hola Mundo” en la pantalla del PC del que lo ejecuta, pero nos queda la satisfacción del trabajo bien hecho ¿eh que sí?
El entorno de programación
También denominados IDE (Integrated Development Environment) y básicamente son un súper conjunto de herramientas que nos facilita la existencia de hacer y distribuir programas, proporcionando muchas facilidades para la lista de cosas que acabamos de ver que implica el proceso de programación. Nuestro IDE favorito ¿cómo no? Visual Studio 2005 –igual a ti, que eres inconformista también te mola el Kawa, o el Eclipse, o yo qué sé… eres un apasionado/-a del… bloc de notas, aunque eso sí que no lo podemos aceptar como animal acuático –digo, como IDE-.
Un buen IDE que se precie, incorporará herramientas para la edición de código, la compilación y depuración de errores (gramaticales y sintácticos) y una ayuda en línea que nos facilite la existencia –que levanten la mano los que antes de enviar una duda a la lista de correo del dotnet club se haya mirado el MSDN = la ayuda de VS2005-… mmm… no veo manos alzadas L
Bueno chicas y chicos… esto se alarga así que como creo que para un post ya está bien, me planto y os convoco a una segunda entrega de este tema de introducción a la programación, en la que veamos ya algunas de sus particularidades, en concreto, en la siguiente entrega: “La ‘P’ con la ‘a’, ¡Pa! Características de los lenguajes de programación”:
· Tipos de datos
· Variables y constantes. Visibilidad de variables.
· Operadores y expresiones
· Estructuras de control
· Procedimientos y funciones.
· Bibliotecas de recursos de programación.
· Tipos de datos complejos.
· Estilo de programación y ejemplo práctico.
Para los que habéis pedido alguna exquisitez del tipo lenguaje intermedio (IL) ¡gracias César! y ahondar un poquito más en la estructura –las tripas- de la compilación .NET y lo que se genera por ahí transparente al programador, deciros que incluiré otro artículo dedicado a este tema…
Sigo escuchando vuestras peticiones. Me alegra que estéis ahí y que colaboréis mejorando la escuela de programación, hay que romper moldes y, en esta escuela todos los alumnos también son profes. Seguimos en la red, cada día un poquito mejores…
a ellos todo el credito

No response to “INTRODUCCIÓN A LA PROGRAMACIÓN”