Login Barrapunto
Universidad puntera de Canadá cambia Java por Scheme
editada por Yonderboy
el Miércoles, 19 Marzo de 2008, 21:22h
desde el dept. lenguajes-de-programación
desde el dept. lenguajes-de-programación
Lisper nos cuenta: «[Via Reddit] La Universidad de Waterloo ha decidido utilizar Scheme en vez de Java para enseñar a programar a los alumnos de los primeros cursos en la carrera de Ciencias Informáticas (CS). CS en la Universidad de Waterloo es parte de la Facultad de Matemáticas. Este lenguaje de programación no será utilizado solo por los estudiantes de CS, sino por todas las carreras matemáticas.»
« Adobe anuncia que habrá Flash para iPhone | China bloquea Google y YouTube para ocultar la revuelta tibetana »
Universidad puntera de Canadá cambia Java por Scheme
|
Log in/Crear cuenta
| Top
| 83 comentarios
| Buscar hilo
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.

Lo importante es
(Puntos:1)Java no es el lenguaje adecuado para aprender
(Puntos:4, Informativo)( http://lasttrainhome.blogsome.com/ | Última bitácora: Viernes, 21 Diciembre de 2007, 13:49h )
Lo único que falla es aprender algún lenguaje estilo html y profundizar mucho más en los funcionales (y dinámicos no estaría mal) como Lisp, y otros como Perl ó Ruby.
No veo a Java un buen lenguaje para aprender, te da demasiadas cosas ya hechas.
Re:Java no es el lenguaje adecuado para aprender
(Puntos:4, Divertido)( http://psychosynthes.wordpress.com/ )
¿Programar en C es como pelear contra un veterano de karate? Yo creo que no. Depende de lo que vayas a programar, digo yo. Mandar a un novato a pelear contra un veterano sería más bien algo así como enviar a un novato que no sabe lo que es un printf a programar un kernel...
Visto de otra forma, poner a un novato a programar directamente en Java es como si a tu chico cuando le apuntas a karate le compras un superkimono bionico que aumenta la fuerza y la flexibilidad y yoquese pollas más, y que luego cuando tenga que pelear con chandal no sea capaz ni de levantar el pie del suelo.
Para programar bien tienes que acostumbrarte a tener una estructura global de lo que está pasando en tu cabeza y para eso nada mejor que pelearse con unos buenos segmentation faults en tu juventud, que no hace daño. Porque luego si no se ponen a programar en Java sin saber ni lo que es recolector de basura ni que si no ponen las variables a Null no se libera la memoria y tienes holamundos que chupan 8 veces más que el Vista...
Property is a nuisance -- Paul Erdös
el M.I.T. hizo lo mismo
(Puntos:5, Interesante)es más, son los mantenedores de Scheme y los que más papers tienen sobre cálculo lambda. ¿Las razones? Se dice que Scheme fue demasiado para su época. Los científicos debían elegir entre dos paradigmas, el que estaba iniciando Fortran y el de Lisp. Fortran se acerca a la máquina (no tanto como assembler) y Lisp quiere alejarse de ella muchísimo.
Por aquella época la ausencia de punteros, la recolección de basura, el tipado dinámico y muchas cosas más, eran demasiado costosas. En cambio Fortran no te acercaba a los conceptos, pero sí a la máquina, te permitía (al igual que C) manejarla con más precisión ahorrando recursos. Y esa fué la elección de la época.
Paulatinamente desde C en adelante cada lenguaje popular se dice que le agrega a C alguna funcionalidad que ya poseía Lisp (hablamos de Java, Python, Perl, Ruby, JavaScript, etc.)
Lisp quiere acercarse a la construcción de conceptos por parte del programador, para luego atacar los problemas con estos nuevos conceptos. Lisp te permite construir programas que contruyen programas. Por la equivalencia de máquinas de turing es obvio que esto puede realizarse de una manera u otra con todos los lenguajes, pero lisp está listo especialmente para esto.
En The Roots of Lisp [paulgraham.com] (Las Raices de Lisp [blogspot.com] en español) Paul Graham habla de que McCarthy no pudo haber creado Lisp, sino que el simplemente lo descubrió. En este mismo artículo se reconstruye mediante algunos mínimos conceptos un evaluador de código lisp dentro de lisp. Una lectura muy interesante para cualquiera que está interesado en el lenguaje y quiera ver su potencia.
La verdad es que personalmente me encanta Lisp. En mi trabajo me prohibieron escribir en él aplicaciones Web porque perdía comunicación con otros ingenieros que no tenían interes en aprenderlo, pero aún tengo elisp en mi editor de texto (GNU/Emacs) para hacer mi vida un poco más complicada o sencilla, pero seguro mucho más divertida y apasionante.
Una buena elección
(Puntos:2, Interesante)La ventaja principal es que puedes aprender distintos paradigmas utilizando las mismas herramientas y lenguaje, por lo que es muy sencillo sacar conclusiones de las ventajas e inconvenientes de una aproximación u otra.
Me parece muy bien
(Puntos:1)( http://www.galizalivre.org/ | Última bitácora: Lunes, 18 Febrero de 2008, 21:04h )
En mi carrera (Electrónica), también es el lenguaje para los de 1, y por ese motivo ya te dicen que es una asignatura para 2 años, o de "largo plazo".
A mi modo de ver, C++ es un lenguaje muy apropiado tanto para aprender como para avanzar, porque si bien, puede ser uno de los más complicados, si lo valoramos en función del nivel que deseemos, puede llegar a ser muy fácil de aprender. Además de que es mucho más versátil.
De todas maneras, sea cual sea, Java no me parece apropiado para aprender. Yo me rompí la cabeza con las clases, los vectores, y tantas cosas que en C, por ejemplo eran muchisimo más simples y versátiles.
nem guerra entre povos, nem paz entre classes!
¿EL lenguaje de programación?
(Puntos:2)( http://www.thealphasite.org/ )
En general es un error enseñar en un solo lenguaje de programación (al menos si vas a dar una formación medianamente decente), no porque saber muchos lenguajes de programación sea "cool" sino porque lo importante son las bases, la sintaxis es poco importante.
En mi opinión lo fundamental es que conozcas al menos los paradigmas funcional, imperativo y orientado a objetos. Es ideal empezar con lenguajes fuertemente tipados y "fáciles", Ada95 como ya han mencionado es un buen ejemplo aunque yo empezaría por algo con un IDE de diseño de ventanas (GTK, Windows o Cocoa, me da igual) que proporcione la sensación de "soy capaz de hacer algo" porque mucha gente que llega a la carrera no ha programado en su vida, lo cual es perfectamente respetable, a fin de cuentas ahí se va a aprender.
Otras de las áreas imprescindibles es Sistemas operativos y al menos, siempre, siempre, siempre debería haber algún curso que implique punteros. Es increible la cantidad de gente que programa y no tiene ni idea de punteros ni sabe que es eso de la "gestión de memoria", ha eso nos han llevado los recolectores de basura (java) en el ámbito académico. No me malinterpreteis, yo con un recolector de basura y sin punteros soy tan feliz como el que más (un 90% del tiempo) pero la cosa es preparar para lo peor, que para recibir mejoras todos estamos preparados. Sería como no enseñar a sumar y confiar en que siempre tendrás una calculadora a mano
Hasta el infinito y más allá
(Puntos:2)( Última bitácora: Domingo, 26 Noviembre de 2006, 13:06h )
Una cosa es saber conducir y otra saber dónde tiene la palanquita de la juntalatrócola determinado coche.
En mis tiempoes estaba la programación estructurada, la funcional, la declarativa o lógica, y la orientación a objetos que casi no se oía. En cuanto se aprende cómo funcionar en cada una, ya se sabe programar, aunque no sepas todas las peculiaridades de cada uno de los LPs.
Una vez que se tiene claro esto, hay que elegir el lenguaje que permita enseñar/aprender más fácilmente cada paradigma. Con la cosa de que en las universidades se debe fabricar currelas, se tiende a elegir un lenguaje habitual en la empresa.
En ese difícil equilibrio suele aparecer Java, con el que nadie tiene problemas. No hay que resucitar el Pascal, ni el Logo.
Resumiendo mi resumen: hay diferentes necesidades que satisfacer y en todo caso habría que discutir no sobre los lenguajes, sino sobre los objetivos de la enseñanza de LPs en la universidad.
Vamos, digo yo.
?Y eso es nuevo?
(Puntos:2)( http://barrapunto.com/ )
Claro, era un retraso, un ejemplo de la incompetencia de la Universidad publica espannola, etc.
Y esta gente son unos visionarios, claro. Ahora lo entiendo.
PD: perdon por la ortografia, pero estoy escribiendo en un teclado que no esta en cristiano
"Si alabaras al César no tendrías que comer alubias" ->"si tú comieras alubias no tendrías que alabar al César"
ya era hora, coño
(Puntos:1, Inspirado)Así salían luego de tercer curso, los de la técnica de sistemas. Tengo unos cuantos amigos salidos de allí y daba vergüenza verlos en 3 e incluso acudiendo a entrevistas de trabajo: "No, yo es que C no lo controlo" "No, yo es que punteros no me aclaro" "No, yo es que Linux no tengo ni guarra, jajaja
Penoso. Y encima eran de esos que se quejaban todos los días del "intrusismo" y de que los telecos y sobre todo los de Telemática "les quitamos el trabajo" XDDD Hay que joderse, cuánto inútil suelto.
Re:Aclárate, conoces a alguien que trabaje en
(Puntos:1, Inspirado)Apegarse demasiado a una tecnología destroza tu capacidad de adaptarte. Un programador tiene que ser capaz de aprenderse y dominar una API totalmente nueva en un fin de semana y cambiar de lenguaje como quien cambia de camisa. Por ponerte un ejemplo, si conoces a alguien que programe en PHP pregúntale, es MUY raro que no le hayan pedido un par de veces al menos que haga unos módulos en perl. Pasa todo el tiempo, a menudo porque los responsables de los proyectos suelen desconocer cómo se compila tal o cual módulo de soporte para apache y prefieren que cambiemos de lenguaje antes que aprender ellos (y si les dices que tú tuneas el apache como ellos te digan, te corren a gorrazos).
Pues nada, era eso sólo.
Re:Y vuelta la burra al trigo
(Puntos:1)( http://barrapunto.com/ | Última bitácora: Viernes, 17 Noviembre de 2006, 23:39h )
Esa frase siempre me ha parecido una estupidez. Fuimos muchos los que aprendimos a programar en Basic (en la época era lo que había), y luego hemos sido capaces de programar correctamente.
Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn!