Eliminar el uso de Ada de mi universidad

Se expone todo lo relacionado con el lenguaje, desde lo más básico hasta lo no tanto.

Moderadores: gneuromante, Andres_age, Yzumi

Eliminar el uso de Ada de mi universidad

Notapor Alais » Dom Abr 29, 2007 13:37

El otro día escuché una conversación de un profesor con un alumno.
El profesor le comentaba que la unviersidad tiende a eliminar el uso de Ada.

Al principio se enseñaba Ada en programación1, estructura de datos y ingeniería del software para tratar temas de concurrencia.
Ahora mismo únicamente se usa en ingeniería del software.
Y por lo visto, después de lo escuchado, seguramente deje de usarse del todo.

:(

Yo no creo que sustituirlo por Java sea buena idea.
Alais
Alais
Novato
Novato
 
Mensajes: 5
Registrado: Mar Abr 24, 2007 7:32

Notapor gneuromante » Lun Abr 30, 2007 13:06

Yo tampoco lo creo. Hay una tendencia en muchas universidades a usar este lenguaje para el aprendizaje de la programación y no creo que sea el mejor lenguaje para ello. Java es muy limitado en cuanto a los distintos paradigmas de programación que se pueden usar. Si usan Java, ¿quiere eso decir que ya no darán clases de punteros? Hay un artículo muy interesante sobre este tema del conocido Joel Spolski: Los riesgos de las Java-escuelas.

En mi facultad empezábamos con Pascal, y aunque muchos alumnos lo criticaban yo creo que era mucho más apropiado que si lo hiciésemos en C o C++, que si no tienes un conocimiento ya profundo de como funciona un ordenador y un compilador pierdes el tiempo en fallos tontos en vez de centrarte en los algoritmos y las estructuras de datos. Lo mismo puede pasar en Java al revés, si aún no tienes base para entender la orientación a objetos, todo el equipaje de objetos de Java es una carga más que una ayuda.

Lo bueno del Ada es que te puede valer para cubrir tanto iniciación a la programación, como programación orientada a objetos, pasando por programación de sistemas y concurrente. Aún así lo mejor es que en las carreras de informática se enseñasen al menos tres lenguajes, uno de propósito general como Ada, otro funcional como Lisp o O'Caml y otro de medio nivel como C o directamente ensamblador. Luego si queda tiempo y la base es buena, no cuesta nada aprender un lenguaje más popular como Java, C++ o C#.

El único problema de Ada es que nunca ha llegado a ser un lenguaje de masas, los compiladores eran caros (nunca hubo un Turbo Ada), y durante mucho tiempo estuvo etiquetado como ese lenguaje que usaba el ministerio de defensa de EE. UU. cuando lo cierto es que se usa más en Europa y lo diseñó un equipo francés. No hubo ningún fabricante que se aprovechó del boom del Dos (como Borland) ni del boom de Windows (como Microsoft) o de Internet (como Sun). Tampoco le ha ayudado el ser un lenguaje que exige una disciplina del programador, todavía hoy hay quien prefiere la chapucilla rápida aún a costa de más tiempo de depurado o mayor coste de mantenimiento.

De vez en cuando aparecen posts en el grupo de news comp.lang.ada sobre por qué Ada no ha alcanzado mayor popularidad, como este, que resultan muy interesantes. Lo que la mayoría de la gente tiene claro es que está muy bien asentado en muchos nichos donde se exige una seguridad y un mantenimiento a largo plazo y no existe hoy por hoy otro lenguaje que le pueda desbancar en estos aspectos. Este tipo de sistemas son cada vez más necesarios, por cierto.

Sin embargo, en las universidades excepto allí donde haya profesores muy motivados con estos temas, puede ir cayendo bajo la presión de lenguajes más populares y con grandes corporaciones detrás como Java y C# (C++ tampoco tiene futuro excepto donde ya tiene una larga tradición). Muchas veces los propios alumnos son los que más presionan pensando que si en la universidad no les enseñan el lenguaje de moda, no van a tener oportunidad de el mundo laboral. Sin embargo lo mejor es afianzar los cimientos que luego el aprender un lenguaje nuevo no cuesta nada. No creo que Java sea en este caso la mejor elección. En todo caso y si Ada no fuese posible usarlo yo enseñaría con Python, que también cubre varios paradigmas de programación y es ideal para aprender (una pena que sólo sea interpretado).
gneuromante
Gurú Moderador
Gurú Moderador
 
Mensajes: 194
Registrado: Mié Mar 09, 2005 0:34

Notapor mosteo » Lun Abr 30, 2007 20:21

Otra gran pérdida al pasar de Ada a Java o C++ (ya no digamos C) es que se pierde la clara separación entre especificación e implementación. En java es inexistente y en C++ confusa y no obligatoria.

En Ada, en cambio, uno está obligado a especificar, y no sólo eso. Las especificaciones se pueden compilar por separado y son todo lo que un equipo necesita para compilar un módulo independiente que haga uso de módulos desarrollados por otro equipo.

Este es un concepto que me parece fundamental en ingeniería del software y que desgraciadamente no está tan claro en otros lenguajes.
mosteo
Iniciado
Iniciado
 
Mensajes: 17
Registrado: Jue Jun 15, 2006 12:34

Notapor gneuromante » Mar May 01, 2007 0:44

Tienes toda la razón y eso sí que no se entiende en Java, es un paso atrás muy importante, porque al menos en C++ con un poco de disciplina tienes separación de especificación e implementación, pero en Java estás obligado por el lenguaje a no poder separar. Lo mismo le pasa a Eiffel, un lenguaje que por lo demás no tiene mala pinta.

Esto me recuerda una presentación muy interesante de AdaCore: Programming in the Small: C/C++/Java Pitfalls & Ada Benefits.

También son interesantes A critique of Java y A Critique of C++. Hay algunos más buscando por critique java y critique c++.
gneuromante
Gurú Moderador
Gurú Moderador
 
Mensajes: 194
Registrado: Mié Mar 09, 2005 0:34

Notapor Alais » Jue May 03, 2007 0:30

En Java si se pueden hacen especificaciones: las interfaces
Con una interface te fuerzas a que una clase contenga cirtos métodos, con unos parámetros fijos, devolviendo unos errores concretos... etc

Aunque teneis, toda la razón, para aprender no creo que sea nada bueno.

El problema creo que viene de arriba, si no me equivoco en Europa se está tendiendo a usar Java y con todo el plan este de Boloña... tenemos que "europearnos"... y de ahí el cambio.

No es así Flash_noi? No enviaste tu un mail a la profesora manifestando tu opinión sobre el cambio? Que te dijo exactamente?
Alais
Alais
Novato
Novato
 
Mensajes: 5
Registrado: Mar Abr 24, 2007 7:32

Notapor gneuromante » Jue May 03, 2007 20:58

Alais escribió:En Java si se pueden hacen especificaciones: las interfaces
Con una interface te fuerzas a que una clase contenga cirtos métodos, con unos parámetros fijos, devolviendo unos errores concretos... etc


Una interfaz no es lo mismo que una especificación y un body. Ignoro si los programadores en Java lo usarán como sustituto, pero una clase no tiene por qué implementar una determinada interfaz para tener separada la implementación de la especificación. Cuando añades métodos a una clase que implementa una interface, ¿tienen los nuevos métodos separación de la especificación y la implementación?

Si fuesen lo mismo, ¿para qué iban a haber añadido las interfaces en Ada 2005? :)

No creo que lo de Europa tenga nada que ver, si cada universidad de un país ha tenido siempre autonomía para definir con qué lenguajes y otros temas concretos enseñan, ¿por qué iba a imponer o favorecer Europa ahora un determinado lenguaje?
gneuromante
Gurú Moderador
Gurú Moderador
 
Mensajes: 194
Registrado: Mié Mar 09, 2005 0:34

Notapor gneuromante » Sab May 05, 2007 21:25

Curioso este mensaje de comp.lang.ada muy relacionado con el tema que nos ocupa: An Ada Advice Inquiry
> One of the state schools in the area just dropped C++ as the primary
> teach language (still offered)...

My state school, the University of Northern Iowa, has just decided to
drop Java and return to Ada in the first year courses. The faculty
nearly unanamously agreed that our students learned more about
computer science with Ada than Java. It is not unusual for a school
to drop a language, it is unusual to return to something that worked
rather than move on to the latest fad.


Sin comentarios ;)
gneuromante
Gurú Moderador
Gurú Moderador
 
Mensajes: 194
Registrado: Mié Mar 09, 2005 0:34

Notapor Alais » Sab May 12, 2007 10:50

Puede que mi universidad también decida hacer esto dentro de unos años! xD
Alais
Alais
Novato
Novato
 
Mensajes: 5
Registrado: Mar Abr 24, 2007 7:32

Notapor slimshdy » Lun Feb 11, 2008 1:44

Si conoceis ada, creo que os habreis dado cuenta que es susceptible a errores humanos, que es fuertemente tipado, que hace ocntrol de rango y mil cosas más. Para un novato ada es lo más idóneo por eso mismo, cualquier error que cometas el compilador se va a quejar y sobre todo cuando empiezas esto ayuda muchisimo. Ada por es uno de los lenguajes más seguros que puedes encontrar, no como c y c++ que si quieres te pasas del rango de un vector como si nada y escribes en esa posicioón de memoria lo que te salga.

Ada también tiene una sintaxis muy simple y fácil de aprender y es más adecuado para novatos que otros que usan en otras universidades quizás con un nivel más bajo. Este es el caso de Pascal, que aunque algunos crean que se parece mucho a Ada no tiene nada que ver, además es un lenguaje que casi ni se usa ya yb no tiene el potencial que tiene ada para aeronáutica por ejemplo.
slimshdy
Novato
Novato
 
Mensajes: 4
Registrado: Lun Feb 11, 2008 1:25

Notapor gneuromante » Lun Feb 11, 2008 21:27

Bienvenido al foro, slimshdy.

Totalmente de acuerdo contigo. Sólo matizar que Pascal estándar se usa poco, pero considerando que Delphi es una extensión de Object Pascal, la cosa cambia bastante. Hoy por hoy se sigue usando Delphi bastante, no se si va en declive o no, pero dentro de que no es un Java, C++ o PHP, en cuanto a uso, aún se mantiene decentemente.

Aún así Ada le da varias vueltas a Pascal/Delphi.
gneuromante
Gurú Moderador
Gurú Moderador
 
Mensajes: 194
Registrado: Mié Mar 09, 2005 0:34


Volver a General

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron