Introducción a la Programación y ALC (1)
Jueves , 24 de Julio de 2003. Enrique Barbeito García
Son muchas las veces que uno puede encontrarse con discusiones sobre cómo introducirse en la disciplina de la programación. Ya puede ser hasta típico toparse con hilos e hilos de discusión en sitios web como Barrapunto, en algunas listas de correo o grupos de noticias, en ciertos canales de IRC, etc. Y una de las primeras preguntas que se formulan es: qué lenguaje es el más indicado para una persona que o bien es completamente nueva en este área o que en algún momento sí ha visto algo y tiene ciertas nociones básicas.
Casi siempre suelo ver que se recomiendan ciertos lenguajes de programación como Pascal o C y C++; algunas veces, cuando alguno se atreve, observo también que se recomienda Visual Basic (y digo cuando alguien se atreve porque parece que este lenguaje es como repudiado por muchos. No sé la razón y tampoco estoy seguro de esto, pero es la sensación que me da). Java es otro de esos ya típicos lenguajes recomendados que uno suele leer en varios comentarios u opiniones de gente :)
Pues bien, en la Universidad de Alicante a los alumnos que comenzamos con las carreras de Informática, nos introducen en este mundo por medio de un lenguaje algorítmico creado por los propios profesores de los departamentos de Informática de la universidad. Se trata de un pseudocódigo denominado ALC, basado en la sintaxis de Pascal y que tiene una particularidad frente al resto, o con muchos, de los pseudocódigos que se pueden encontrar: ALC tiene su propio intérprete, versiones para GNU/Linux y los sistemas Windows, diseñado por Paco Moreno, uno de los profesores del DLSI. Pienso que es una particularidad en un pseudocódigo porque, aunque hay varios, no todos disponen de un intérprete con el que poder comprobar en tus inicios que lo que estás aprendiendo, metodología de la programación, sirve y funciona. Le da un toque extremadamente práctico ;)
Este pseudocódigo apareció en 1997 y fue creado con un claro carácter docente, específicamente para impartir la asignatura que antiguamente se daba como Fundamentos de Programación y que hoy día nos la encontramos dividida en dos asignaturas cuatrimestrales. La sintaxis y, sobre todo, las posibilidades que ALC ofrece están bastante limitadas. Entre otras cosas que yo haya visto, no puedes trabajar con ficheros o con estructuras dinámicas por ejemplo. Pero a mi modo de verlo, creo que esta clase de lenguajes, pseudocódigos, son una de las mejores formas de empezar. Aunque han sido muchas las veces que el dichoso ALC me ha sacado de mis casillas, la verdad que creo que cumple bien sus objetivos: introducir el concepto de algoritmo y sus elementos, la programación estructurada, estructuras de datos, de control y cosas así elementales. Además su aprendizaje se hace un poco más sencillo debido a que su sintaxis está en castellano, con lo que a parte de favorecer lo anteriormente dicho, el aprendizaje, ayuda al entendimiento y seguimiento de los ejercicios en ALC que hagas tú o tus compañeros.
En fin, yo no sé si estoy haciendo bien en escribir y presentar ALC a los lectores (menos mal que no somos muchos ;) que siguen esta página. No creo que sea el primero en hacer algo así ni mucho menos, pero quizás el incitar a la gente externa a la UA a que se fijen en ALC para sus inicios en la programación, no esté bien hecho. Bueno, si recibo alguna queja o amenaza de bomba no tendré problema alguno en eliminar esta entrada de la página. No creo que tenga que llegar a eso pero si así es, así será :|
El caso es ese, que ALC está muy muy bien como herramientas de trabajo a la hora de empezar con la programación. Vale, que tal vez seguro que conocer ALC no te servirá de nada en un futuro a medio plazo pero, ¿A caso importa eso tanto cuando uno está empezando?. La idea de estarse unos meses aprendiendo metodología y mediante algo que no sea un ‘lenguaje de programación de verdad’ es algo bueno y a tomar en cuenta bajo mi novato punto de vista. Es lo que ahora mismo recomendaría en cualquier discusión que viese sobre por cuál lenguaje empezar… no sé, ahora mismo hasta me suena un poco mal la pregunta; como si tuvieras que aprendértelos todos (fotre, si tuviera que ser así… cuando te pongas con BrainFuck…. reza para no quedarte majareta perdido jajaja). Yo también soy/era uno que se hacía esa pregunta. Siempre he querido –y quiero– aprender a programar (bueno, empezar por lo menos), pero la programación era y es algo que no se me daba del todo bien. Por lo que cuando me picaba el gusanito pues me ponía con un libro de C, lo dejaba; cuando me volvía a picar probaba con Perl, lo dejaba; luego otra vez me entraban las ganas y ponía mis esperanzas en …. y así. Lógicamente, aunque uno termina con algo –poca– de idea, no he podido introducirme en este mundillo hasta hace bien poco, y ALC pienso que tiene gran parte de culpa en que yo sepa algo –bastante– más que hace no demasiado tiempo ;)
Por ello es que os lo recomiendo encarecidamente a todo aquel que no tenga idea de programación o nociones básicas, porque pienso que os puede gustar la experiencia. (…) Que grandioso rollo os estoy contando hoy ¿Eh? No os preocupéis [joder, todavía no sé por qué carajo hablo en segunda persona del plural, como si estuvieras tú y tus amigos/familiares/novia leyéndome simultáneamente o tuviera más de una visita a la vez. Supongo que es ¿para hacerlo más impersonal? ¿Porque soy muy egocéntrico? … en fin, cuando lo sepa os lo digo :D]
En la página del intérprete ALC, podréis encontrar mucha más información (y mejor) de la que aquí os he redactado. Tenéis disponible una pequeña historia y el por qué de su creación, su sintaxis así como características, reglas del pseudocódigo o cómo utilizar el intérprete (cosa no muy difícil).
Excelente. Me has picado para inciar el aprendizaje en algo nuevo y asi encaminarme a otros lenguajes de programación que me gustaria aprender. Por cierto lei el post del BrainFuck y todavia sigo aturdido. =)
Para empezar, me atrevo a recomendar otro lenguaje: Python. http://www.python.org/
Sencillo, potente y con grandes aplicaciones prácticas, se está labrando muy buena fama, tanto para empezar a aprender programación con él como para seguir desarrollando aplicaciones.
Existen buenas guías de aprendizaje en la propia página del programa www.python.org. También existe la documentación en castellano.
Gracias por la recomendación, ‘cobarde anónimo’ ;) Si, Python es otro de los que veo que se recomiendan. Además creo que es un lenguaje orientado a objetos (concepto que yo aun desconozco :) pero que me agrada la idea de que esté ahí). Quizás a principios de año… a ver si puede ser que intente aprender algo.
Por cierto, http://marmota.act.uji.es/MTP/pdf/python.pdf , es un completo curso de Introducción a la pogramación y haciendo uso del lenguaje Python. Se llama “Introducción a la programación con Python y C. Volumen I: Python” , salido de la Universidad Jaume I — 371 páginas :) — Quizás no sea mala idea empezar con este documento (aunque no lo sé, no lo he leído)
Un Saludo ;)
He curioseado la página… y no me ha gustado… para gustos colores ;-)
Yo empecé a programar con un lenguaje interpretado denominado LOGO, en castellano! de eso hace unos 20 años (ahi es nada ;-)
Luego fue el GW Basic, QBasic, VBasic, VBScript, ensamblador de 6502 del 8085 y del 8051, C y C++, pascal y ahora estoy con PHP, por ahora mi favorito (ojo, asm siempre será mi ojito derecho ;-)…
La sintaxis de PHP es muy fácil de aprender, su documentación una de las mejores (visita www.php.net y compruebalo), está orientado a ser un lenguaje de script de servidor web, pero se puede utilizar (y yo lo utilizo mucho) como script-cgi (como un ejecutable normal…) y si echas mano de el php-gtk puedes crear aplicaciones con GUI…
El lenguaje en si está orientado a procedimientos, pero permite POO sin muchos problemas (y la nueva versión, PHP5, superará las limitaciones actuales).
La única pega que se le puede poner para los principiantes es que no requiere declaración de variables (de hecho no tiene instrucciones para tal fin) y estas pueden cambiar de tipo “mágicamente”… si uno no tiene muy claro qué es lo que está haciendo el lio que se puede organizar es mounstruoso ;-)
No obstante, creo que con unas “normas de estilo” adecuadas se puede convertir en un lenguaje muy adecuado para comenzar… pero cada cual es cada cual, asi que cada uno tendrá que decidir por si mismo.
Saludos.
Hola Fernando ;)
Siento que no te haya gustado la web; no fue mi intención, que conste :)
Gracis por compartir esos comentarios sobre PHP. Me gustaría algún día empezar con él (aunque ya veremos cuándo lo hago :\), eso sí, solo de cara a aplicaciones que corran tras el servidor web. En fin, ya veremos jeje.
Un saludo!
Hola de nuevo, creo que no me he explicado bien…
Primero: lo que no me ha gustado ha sido el lenguaje… aunque me ha influido mucho otra cosa: la presentación de la sintáxis en forma de “gramática”, en la lista de php en castellano (http://www.phpes.com/) ya se discutió las diferencias entre gramática y sintáxis… y se llegó a la conclusión (o al menos yo ;-) de que la sintáxis es para los programadores y la gramática para los creadores de compiladores/intérpretes…
Segundo: no sólo son aplicaciones “del lado servidor” o “aplicaciones web”, al escribir script-cgi quise decir shell-script, lo que es bien diferente: aqui el php entra en el terreno en el que perl y python pegan fuerte ;-)
Lo cierto es que yo no utilizo php sólo para páginas web, tengo un buen grupo de shell-scripts que corren en línea de comandos en linux o windows que realizan funciones de control de recepción de ficheros a traves de ftp, introducción de textos en una BBDD MySQL recibidos via satélite, conversión de ficheros postscript en pdf… en fin, un montón de aplicaciones (o mini-aplicaciones, según el caso).
En definitiva, si PHP es ahora mi pasión es en parte por su versatilidad ;-)
Saludos, me gusta tu site! ánimo!
Hola de nuevo, creo que no me he explicado bien…
Primero: lo que no me ha gustado ha sido el lenguaje… aunque me ha influido mucho otra cosa: la presentación de la sintáxis en forma de “gramática”, en la lista de php en castellano (http://www.phpes.com/) ya se discutió las diferencias entre gramática y sintáxis… y se llegó a la conclusión (o al menos yo ;-) de que la sintáxis es para los programadores y la gramática para los creadores de compiladores/intérpretes…
Segundo: no sólo son aplicaciones “del lado servidor” o “aplicaciones web”, al escribir script-cgi quise decir shell-script, lo que es bien diferente: aqui el php entra en el terreno en el que perl y python pegan fuerte ;-)
Lo cierto es que yo no utilizo php sólo para páginas web, tengo un buen grupo de shell-scripts que corren en línea de comandos en linux o windows que realizan funciones de control de recepción de ficheros a traves de ftp, introducción de textos en una BBDD MySQL recibidos via satélite, conversión de ficheros postscript en pdf… en fin, un montón de aplicaciones (o mini-aplicaciones, según el caso).
En definitiva, si PHP es ahora mi pasión es en parte por su versatilidad ;-)
Saludos, me gusta tu site! ánimo!
Hola de nuevo, creo que no me he explicado bien…
Primero: lo que no me ha gustado ha sido el lenguaje… aunque me ha influido mucho otra cosa: la presentación de la sintáxis en forma de “gramática”, en la lista de php en castellano (http://www.phpes.com/) ya se discutió las diferencias entre gramática y sintáxis… y se llegó a la conclusión (o al menos yo ;-) de que la sintáxis es para los programadores y la gramática para los creadores de compiladores/intérpretes…
Segundo: no sólo son aplicaciones “del lado servidor” o “aplicaciones web”, al escribir script-cgi quise decir shell-script, lo que es bien diferente: aqui el php entra en el terreno en el que perl y python pegan fuerte ;-)
Lo cierto es que yo no utilizo php sólo para páginas web, tengo un buen grupo de shell-scripts que corren en línea de comandos en linux o windows que realizan funciones de control de recepción de ficheros a traves de ftp, introducción de textos en una BBDD MySQL recibidos via satélite, conversión de ficheros postscript en pdf… en fin, un montón de aplicaciones (o mini-aplicaciones, según el caso).
En definitiva, si PHP es ahora mi pasión es en parte por su versatilidad ;-)
Saludos, me gusta tu site! ánimo!