Historias
Slashboxes
Comentarios

Universidad puntera de Canadá cambia Java por Scheme

editada por Yonderboy el Miércoles, 19 Marzo de 2008, 21:22h   Printer-friendly   Email story
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.»

Mostrar opciones Umbral:
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)
    por mastermemorex (34927) el Miércoles, 19 Marzo de 2008, 21:36h (#1026968)
    Y que mas da en que lenguaje de programación aprendan. Lo importante son los conceptos básicos de programación. En general entre un lenguaje y otro solo cambia la sintaxis y algún otro aspecto relevante como la habilidad de trabajar con punteros.
    [ Responder ]
  • por slim (27013) el Miércoles, 19 Marzo de 2008, 21:38h (#1026969)
    ( http://lasttrainhome.blogsome.com/ | Última bitácora: Viernes, 21 Diciembre de 2007, 13:49h )
    De hecho, personalmente creo que el método que seguimos en Informática en la UIB es más o menos correcto. Se empieza por Ada95, muy similar a Pascal y muy buen lenguaje para aprender. Luego en segundo se pasa a C y a Java. En tercero vemos Lisp, Prolog, Java, C++ con OpenGL y creo que nada más.

    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.
    [ Responder ]
  • el M.I.T. hizo lo mismo

    (Puntos:5, Interesante)
    por pobrecito hablador el Miércoles, 19 Marzo de 2008, 22:05h (#1026978)

    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.

    [ Responder ]
  • Una buena elección

    (Puntos:2, Interesante)
    por eusonig2 (25147) el Miércoles, 19 Marzo de 2008, 22:23h (#1026982)
    Scheme es un lenguaje que soporta varios paradigmas de programación y, por ello, se hace indicado para aprender a programar.

    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.

    [ Responder ]
  • Me parece muy bien

    (Puntos:1)
    por obreiro (37284) el Miércoles, 19 Marzo de 2008, 23:24h (#1027002)
    ( http://www.galizalivre.org/ | Última bitácora: Lunes, 18 Febrero de 2008, 21:04h )
    Me parece muy bien. Como tengo oido a más de un profesor de informática, Java no es un lenguaje que te puedan meter, si no sabes nada de programación.

    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!
    [ Responder ]
  • por Cracky (15624) el Miércoles, 19 Marzo de 2008, 23:26h (#1027003)
    ( http://www.thealphasite.org/ )
    No se exactamente que quiere decir "han cambiado Java por Scheme", nunca he programado en Scheme pero teniendo en cuenta que según leo en la Wikipedia es un lenguaje funcional, no parece que tenga mucho sentido el cambio.

    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 ...
    [ Responder ]
  • por papiBD (26562) el Jueves, 20 Marzo de 2008, 11:43h (#1027068)
    ( Última bitácora: Domingo, 26 Noviembre de 2006, 13:06h )
    Esto se parece a las discusiones sobre si el Madrid o el Barça tiene mejor equipo, todo depende de dónde vengas.

    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.
    [ Responder ]
  • ?Y eso es nuevo?

    (Puntos:2)
    por El Pantera (19616) el Viernes, 21 Marzo de 2008, 19:05h (#1027329)
    ( http://barrapunto.com/ )
    En la Universidad de Cadiz se ensennaba "Metodologia de la Programacion" de primer curso de Ingenieria Tecnica en Informatica de Gestion en el curso 96/97.
    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"
    [ Responder ]
  • ya era hora, coño

    (Puntos:1, Inspirado)
    por pobrecito hablador el Jueves, 20 Marzo de 2008, 00:32h (#1027019)
    Es difícil de asimilar que se les diera en esa universidad Java como lenguaje a los alumnos de primer curso, recién saliditos del instituto y sin puta idea siquiera de qué significado tienen las palabras "algoritmo" o "paradigma".

    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 :S" "No, yo es que sistemas UNIX no he visto mucho" "No, yo es que programar no controlo demasiado" "No, yo es que administrar sistemas..."

    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.
  • por pobrecito hablador el Jueves, 20 Marzo de 2008, 02:07h (#1027033)
    Tú aprendes bien scheme y aprendes a PROGRAMAR. Luego te imprimes un manual de JAVA y a la semana ya programas en JAVA. De aquí sale gente competitiva y adaptable. Formamos innovadores. No queremos fósiles que necesiten exactamente el destornillador de 2.543 milímetros para desatornillar el tornillo de 2.543 milímetros y se frustren al tener que desatornillarlo con la chapa de una lata de cocacola.

    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.
  • "Es prácticamente imposible enseñar programación correctamente a estudiantes que han estado expuestos al lenguaje BASIC con anterioridad. Como potenciales programadores, tienen la mente mutilada sin esperanza alguna de regeneración." Dijkstra


    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!

  • 5 respuestas por debajo de tu umbral de lectura actual.