[eside-ghost] Language of choice. Era Re: c# y VB .net

Alfredo Beaumont alfredo.beaumont en gmail.com
Sab Mar 14 17:36:04 CET 2009


Saturday 14 March 2009(e)an, Jon Valdés(e)k idatzi zuen:
> Alfredo Beaumont wrote:
> > Asistí hace unos años a una charla de Juanval muy interesante sobre
> > haskell. Era una charla introductoria pero no sé si él lo utiliza para
> > cosas más serias.
>
> Juas, no, estuve leyendo info de Haskell puramente como técnica de
> brain-training (los Monads de Haskell me tuvieron loco durante casi un
> mes, y no llegué a entenderlos del todo), y de todo eso salió una charla
> un poco extraña (no me gustó demasiado el resultado :-S

Hehe, pues a mí ya me gustó :-)

> El asunto es que para los que únicamente hemos estudiado Pascal, C++,
> Java y tal, los lenguajes funcionales hacen que tengas que exprimirte
> bastante el cerebro para poder entenderlos, pero cuando empiezas a
> entender, todo "encaja". Todo parece natural y perfecto, y "tal y como
> debería ser" :)
>
> > Yo utilizo dos lenguages en 'producción' (esto es muy subjetivo - un
> > script de emacs lisp es producción?), aunque en realidad son
> > multiparadigma, lisp (sobre todo common lisp) que es parcialmente
> > funcional y factor que es concatenativo (se podría decir que eso es
> > antifuncional, pero a nivel práctico el funcionamiento es similar). Me
> > gustan porque son muy potentes y se integran muy bien con emacs, creando
> > en entorno muy interactivo.
>
> Dioooos Factor nooo. Después de la prueba del hackit que hiciste el año
> pasado, no pienso usarlo nunca xDDD

Hombre, si ya has hecho lo más difícil, una vez conoces el entorno va todo 
fluido :-D. Igual hay que hacer otro level para forzarte a ver la luz :P

> > Lógicamente no los puedo utilizar más que en un número reducido de
> > proyectos, utilizo factor sobre todo para scripting, pero creo que serían
> > mis languages of choice.
> >
> > De los lenguajes que se comentan, creo que smalltalk está obsoleto (más
> > que el lenguaje, las implementaciones), haskell no me gusta porque su
> > purismo lo hace 'impractico'. Creo que lenguages funcionales más
> > interesantes a nivel práctico son erlang y ocaml.
>
> A mi lo que me intriga es que los lenguajes funcionales son
> hiperpotentes para trabajar con datos y tal... pero luego... cómo creas
> una ventana con un par de botones y dos tablas en haskell, common lisp,
> ocaml, scheme, o lo que sea?

Hmmm, pues en principio como en cualquier otro lenguaje... No conozco como lo 
hacen en haskell, al ser un lenguaje funcional puro puede ser un tanto 
complicado encajarlo, al igual que la entrada/salida. 

Sin embargo en el resto de lenguajes funcionales mortales no veo por qué 
habría de ser un problema. En Common Lisp por ejemplo hay incluso una 
especificación de interfaces[1], que en su día era muy innovadora, aunque se 
le van notando los años. Ésta se integra perfectamente en el lenguaje. En 
factor hay un sistema gráfico basado en cierta medida en clim.

De todas formas sí que es cierto que en general el desarrollo de aplicaciones 
gráficas no está muy extendida entre estos lenguajes. Yo creo que es por dos 
razones. Las interfaces gráficas están desarrolladas en lenguajes mainstream, 
y es más sencillo desarrollar en estos lenguajes o en bindings de lenguajes 
similares. Quizás es más fácil tirar de QtRuby, y utilizar las características 
funcionales de ruby que hacer o usar bindings incompletos en otro lenguaje. 
Piensa que ni siquiera lenguajes tan extendidos como Java o C# tienen/han 
tenido bindings decentes para Qt hasta hace poco. Tampoco costaría hacer mucho 
bindings para Qt en Common Lisp, pero las comunidades son bastante 
tangenciales. Por eso hay por ejemplo una integración brutal con emacs pero 
unos pobres bindings para Qt.

Por otro lado creo que en una aplicación gráfica no es donde se nota mayor 
diferencia entre un lenguaje y otro (al menos en la parte gráfica). Por eso 
tiene mucho más sentido por ejemplo que el sistema de chatting de facebook 
esté desarrollado en erlang que desarrollar una aplicación para KDE en erlang.

> Vamos, que para crearte un parser o un transformador de xslt me creo que
> tienen que ser la leche. O para temas de IA (Scheme tiene directamente
> un operador de backtracking como parte del lenguaje...). Pero para
> aplicaciones del día a día los veo un tanto extraños.
>
> Vamos, que me consta que hay bindings de GTK para haskell y cosas así
> (hay hasta bindings de OpenGL...), pero no veo cómo sería la estructura
> de un programa con GUI en un lenguaje funcional.

Hmmm, yo no veo que haya ninguna dificultad intrínseca en los lenguajes 
funcionales no puros para desarrlooar aplicaciones gráficas.

> Taluegooo

Aiooo

[1] http://www.mikemac.com/mikemac/clim/cover.html
-- 
Alfredo Beaumont Sainz
http://www.alfredobeaumont.org/blog.cgi


Más información sobre la lista de distribución eside-ghost