Una de las cosas que más me llama la atención es que entré a Ingeneiría hace 20 años y aún el currículum es el mismo, siendo que todos los días se descbren (o debería decir se "construyen") cosas nuevas.
En la Universidad Católica se enseñaba Scheme en primer año y el sesgo de los profesionales que salían era claro: Aunque escribieran SQL el código siempre parecía estar escrito en Lisp. Recursividad a fondo. Los alumnos se quejaron de que no había trabajo en Scheme y por lo tanto decidieron cambiar de lenguaje. Un profesor nos preguntó en clases qué lenguaje pensábamos que sería apropiado y obviamente le dije que Smalltalk a lo que me respondió con una mirada de esas que matan y un silencio sepulcral. ¿Alguna otra sugerencia? Supongo que el grave problema que tienen los lenguajes que no son populares es que no se puede encontrar trabajo usándolos directamente, cosa que me queda claro que ya están resolviendo en Argentina. Pienso que usar Smalltalk en primer año debiera ser fácil dado que el lenguaje es realmente simple y debería servir para introducir los conceptos que los alumnos requieren: Estructuras de control (ifTrue: timesRepeat: whileTrue:), Enteros, Strings, Arreglos, archivos, etc. Incluso sospecho que se aprendería tan rápido que quedaría tiempo para explicar un par de ideas avanzadas. Luego en los años siguientes de carrera podrían aprender otros lenguajes simplemente haciendo la comparación con Smalltalk, no debería ser dificil. ¿Porqué digo esto? Bueno aparte de que esta es la lista de Smalltalk y supongo que no habrá nadie que se oponga, me encontré con el blog lambda de ultimate que hacía tiempo que no leía, gracias a la sugerencia de Angel Lopez y acá http://lambda-the-ultimate.org/node/2741 dice: Does it Compose? In large lock-based systems we have a lot of difficulty avoiding race-conditions and deadlocks and priority inversions and starvation and convoying. In a large system with locking, you need to grok the whole system to prevent problems; independently valid components that use locking code might deadlock when composed. That makes locks very difficult to reconcile with large systems - especially those involving open (third-party pluggable) modularity. By dmbarbour at Fri, 2010-10-22 19:10 . Lo que dice en resumen es que existen muchas solcuiones que funcionan mejor que las herramientas de bajo nivel como los mutex y los threads, pero que los programadores tienden a elegir las herramientas de bajo nivel porque según dicen el resultado es más claro. Lo que pasa acá puede ser que simplemente el currículum no se adecúa a los nuevos conocimientos y supongo que buena parte de la carga se debe a que los lenguajes que usamos para enseñar son de tan bajo nivel. Muchas de las ideas que hoy en día están implementadas en Java salieron originalmente de Smalltalk y de otros lenguajes usados en la academia (no usados exclusivamente en ella, pero sí principalmente). Smalltalk probablemente es uno de los más extraños en ese respecto porque fue usado durante mucho tiempo en la industria financiera y Java copió casi todo de Smalltalk, excepto la sintaxis. Imagino que es hora que se de vuelta la tortilla y muchas de las ideas que se implementaron en Java ahora sean parte de Smalltalk. Uno de los múltiples ejemplos que menciona en dmbarbour en lambda the ultimate es oooJava: http://www.usenix.org/event/hotpar10/tech/slides/jenista.pdf sugún explica puede lograr un "speedup" de 7.8x en un RayTracer, lo que a todas luces es alucinante. Se podría pensar en usar un enfoque así en Smalltalk para hacerlo más rápido. ¿Qué opinan?
To post to this group, send email to [hidden email] To unsubscribe from this group, send email to [hidden email] http://www.clubSmalltalk.org |
Free forum by Nabble | Edit this page |