jueves, octubre 04, 2007

La generación de Código Automática.

Pues leyendo Slashdot me encontré un link a uno de esos artículos de Joel Spolsky (cuando realmente escribía cosas interesantes).

Uno de los puntos mas bacanos es cuando habla de la generación de código automático como una leaky abstraction. Y es ahí cuando pienso en las "maravillosas" clases de Sistemas distribuídos en Eafit.

En las clases de sistemas distribuidos la idea es pasar por los diferentes paradigmas como el clásico Cliente-Servidor, como también P2P y sistemas emergentes como agentes móbiles, Grid Computing.

Inicialmente yo estaba super entusiasmado con la clase. Yo sabía algo de sockets, entonces siendo el primer reto hacer un pequeño programa en sockets hasta lo hice en Haskell por gomoso. Después pasamos a lo que el profesor llama "middleware de alto nivel", nos olvidamos de sockets y pasamos a cosas del estilo de RPC y webservices.

¿Como debería ser una clase de Web Services?

La pregunta interesante es ¿Se deberia enseñar Web Services? Yo diría (mirando por encima de los hombros a quien se atreva a contradecirme) Web Services es tecnología, eso es como enseñar estructuras de datos enseñando como usar el paquete util de Java. Uno solito puede aprenderla a usar. Pero bueno Digaaamos que soy un radical-purista-cuasi-snob que "no esta consciente de lo que las grandes empresas de software como intergrupo y alcuadrado están necesitando".

Una clase de WS no debe ser de esta forma:

-Bueno ya que no fuimos capaces de poner NetBeans 5.5.1 con eso de Web-Services, ábranse el .Net 2003, y den Crear Proyecto Web-Service. Metan el código en esta línea. Y luego creen otro proyecto y vean como llamamos de fácil un WS. Ven?"

-Bueno si... pero como funciona bien eso de WSDL? Como hace el para construir los stubs y esas cosas?"

-Esa es la mejor parte. Es mágia! Simplemente .Net por ser una herramienta costosísima y de una gran corporación hace lo que otras herramientas no hacen. MAGIA!

Y si hablara de la explicación de P2P. Siendo un área tan interesante, con taaantos problemas por resolver terminó siendo.

-"La arquitectura de P2PS es esta. Existen otros Middlewares como JXTA pero es muuuy complicado...

...Y como ven uno como programador solo se preocupa de crear estos AdvertisementPipes, RendevouzPipes blablablabla"

"Pero vení no entiendo y la localización?"

"Se hace por medio de los advertisements"

"Si pero a quien le llegan?? pues... esque, en algun lugar se debe especificar el puerto, IP o algo"

"No... Es MAGIA!!"

Mentiras. Después de Preguntar mas de lo debido el me explico que se monta sobre UDP-Multicast y que en caso de no haber esto configurado se debe hacer explicito otros Pipes de Mas para comunicar entre subredes.

Hay Solución?

Pues una de las pocas personas que creo que sabe como debe ser la forma de dictar los cursos parece estar resignado. Esa persona era el ex-director del departamento.

Segun él, al parecer ya no se trata de ingeniería sino de técnica, aprender a utilizar una herramienta bien y listo. Algo que muchos dicen pero es triste escucharselo a él.

Al final uno vuelve al Fahrenheit de Bradbury... No piense, pensar es malo, Pensar lleva a la infelicidad.

1 comentario:

acadavid dijo...

La verdad comparto tu opinión.. ultimamente me siento más frustrado con respecto a la manera en como se están dictando los cursos en la universidad. Falta metodología.. orden.. no veo el avance por ningún lado.. y también falta abstracción, como es claro se supone que nos deben formar como ingenieros, no como técnicos.. si tal fuera el caso pues me voy a estudiar en el SENA o algo así... Muy triste de verdad, y también es triste que le preguntes cosas a ciertos profesores y se salgan con alguna respuesta rápida. Recuerdo que la semana pasada en clase de cálculo un compañero de le preguntó a la profesora de dónde salía cierta relación, a lo que ella le respondió: "Por qué no estudia Ing matemática?".... Yo me quedé atónito, pero bueno. Últimamente he reflexionado en que en realidad la universidad por si misma me aporta poco, el aporte más grande lo puedo recibir de las lecturas y discusiones con otros compañeros, así que mejor me pongo a estudiar por mi lado y pasar la universidad de alguna manera.