UTNianos

Versión completa: Desarrollo de software usando el paradigma funcional.
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Páginas: 1 2
Me surgieron dos dudas, la primera relacionada con

Esto ---> http://en.wikipedia.org/wiki/Erlang_(pro..._language)

Parece que lo usan en bocha de productos (GitHub, el chat de facebook....). Parece estar bueno (al menos visto desde afuera).
¿Alguien tiene idea de que onda/si vale la pena que me gaste en aprender ese lenguaje? Funcional ya se, asi que , no deberia complicarseme mucho, a menos que tenga las 5000 features adicionales que tiene C++, por ej.

La segunda, y mas general... que onda el paradigma funcional para desarrollar software? Vale la pena? Realmente se pueden aprovechar todas las ventajas de funcional?
la industria de juegos



(28-10-2012 02:00)rulo escribió: [ -> ]Me surgieron dos dudas, la primera relacionada con

Esto ---> http://en.wikipedia.org/wiki/Erlang_(pro..._language)

Parece que lo usan en bocha de productos (GitHub, el chat de facebook....). Parece estar bueno (al menos visto desde afuera).
¿Alguien tiene idea de que onda/si vale la pena que me gaste en aprender ese lenguaje? Funcional ya se, asi que , no deberia complicarseme mucho, a menos que tenga las 5000 features adicionales que tiene C++, por ej.

Tengo entendido que lo usan solamente para algunas cosas específicas (cosas heavy en concurrencia).

(28-10-2012 02:00)rulo escribió: [ -> ]La segunda, y mas general... que onda el paradigma funcional para desarrollar software? Vale la pena? Realmente se pueden aprovechar todas las ventajas de funcional?

Desde un punto de vista totalmente pragmático, como "estilo" hay situaciones donde "queda bien" una "función" (declarativa, sin side-effects, entra algo/return el resultado, nada queda adentro, higher-order functions). En especial para procesar sets/arrays/listas/registros: funciones como Filter, Map, Reduce, Max, Min, Find, All, Any, GroupBy, SortBy...

Modelar el software como funciones que procesan sets de datos (A -> f(a)=b -> B) es bastante generalizable y matemáticamente "elegante". Es simple (pero no fácil) de comunicar (lenguaje común con un modelo claro), de testear (las funciones no tienen estado interno, son declaraciones) y especificar (tengo un set input A y necesito un set output B, escribirme la función).

Obviamente hay problemas donde pensar así se ajusta mejor que en otros, una GUI, por ejemplo, no la programaría pensando así. Quizás haya formas funcionales mejores, pero para mí es un problema clásico para resolver con OO.
PD: http://underscorejs.org
lo funcional es excelente para problemas matemáticos, se vuelve un chiste, pero claro como dijo demo...andá a hacer una interfaz en funcional...no sé ni por dónde encararla jajajaj
no es una ui, pero aca tenes un window manager hecho en haskell:
http://xmonad.org/
un ser humano común y corriente no debería utilizar el paradigma funcional para nada en su perra vida.

pero bueno, algún enfermito siempre hay...

un ex compañero de laburo hizo su tesis (egresado UBA) sobre paradigma funcional. un bocho el flaco, sabe mucho de mucho.
ahora utiliza sus conocimientos de funcional en la industria de la seguridad informática.

como dijeron por ahí arriba, hoy en día se utiliza para cosas muy específicas.

pero no hay nada que hagas en funcional que no puedas hacer con otro paradigma.

(y ni hablar de los locos que se tiran a hacer cosas usando el paradigma lógico, puaj...)
No me refería a "cosas muy específicas", sino a casos particulares que están en todos lados.

Cualquier procesamiento de datos me parece mil veces más coherente hacerlo pensando principalmente en funcional. Hasta el manejo de registros del ABM más simple me parece mil veces más coherente programarlo pensando en funcional.
Me parece mas facil de modelar la mayoria de los sistemas (y los mas comunes) en procedural u objetos. Funcional se lo dejaria a sistemas contables
(29-10-2012 19:07)LeaTex escribió: [ -> ]pero no hay nada que hagas en funcional que no puedas hacer con otro paradigma.

(y ni hablar de los locos que se tiran a hacer cosas usando el paradigma lógico, puaj...)
no hay nada que no se pueda pasar de un paradigma a otro si nos ponemos en exquisitos.
http://en.wikipedia.org/wiki/Turing_completeness

cada herramienta para el trabajo que sirve che, quisiera verte procesando lenguaje natural dentro del paradigma de objetos
(29-10-2012 15:31)Jarry escribió: [ -> ]no es una ui, pero aca tenes un window manager hecho en haskell:
http://xmonad.org/

Lo conocia de hace un tiempo (tocando de oido) al Xmonad.
Tendria que instalarlo para boludear cuando tenga tiempo.

(29-10-2012 19:07)LeaTex escribió: [ -> ]un ser humano común y corriente no debería utilizar el paradigma funcional para nada en su perra vida.

pero bueno, algún enfermito siempre hay...

Funcional se usa mas alla de la academia. Para algo existe. No es solo un lenguaje teorico. Que la industria en gral no le de bola, no significa que sea malo o que no haya que usarlo. En muchos casos la industria no le da bola a las buenas practicas de programación tampoco.
(Sin ir mas lejos, la idea de LINQ esta MUY influenciada por funcional).

Cita:(y ni hablar de los locos que se tiran a hacer cosas usando el paradigma lógico, puaj...)

No se con quien (es) cursaste paradigmas, pero al menos a mi, a fin de cursada me explicaron perfectamente para que usar el paradigma logico.

Cuando queres una relacion biunivoca entre dos entidades, hacerla en objetos es costosos, mantener esas referencias tiene un costo (por ej, en programacion de redes neuronales y cosas asi) y es algo que en logico lo tenes "gratis".

Cita:Modelar el software como funciones que procesan sets de datos (A -> f(a)=b -> B) es bastante generalizable y matemáticamente "elegante". Es simple (pero no fácil) de comunicar (lenguaje común con un modelo claro), de testear (las funciones no tienen estado interno, son declaraciones) y especificar (tengo un set input A y necesito un set output B, escribirme la función).

Si,justamente para procesar datos se me ocurre que debe ser genial. Incluso el que no tengan estado interno hace que se pueda demostrar que los programas en funcional terminan, cosa que con un lenguaje procedural, o incluso de objetos es imposible (al menos para el caso general).

El tema es que se que debe servir para algo mas concreto que lo que ves en paradigmas,pero no vi casi nada que lo haga (mas allla de cosas que hacen los hippies con tiempo).Quizas es la oportunidad de hacer algo revolucionario (?).


gonnza escribió:la industria de juegos

Jajaj, lo habia visto, es buenisimo. Me pregunto como carajo habran hecho para hacerse un mario en HS.
Debe tener 50 millones de lineas de codigo.
(30-10-2012 01:52)Jarry escribió: [ -> ]
(29-10-2012 19:07)LeaTex escribió: [ -> ]pero no hay nada que hagas en funcional que no puedas hacer con otro paradigma.

(y ni hablar de los locos que se tiran a hacer cosas usando el paradigma lógico, puaj...)
no hay nada que no se pueda pasar de un paradigma a otro si nos ponemos en exquisitos.
http://en.wikipedia.org/wiki/Turing_completeness

cada herramienta para el trabajo que sirve che, quisiera verte procesando lenguaje natural dentro del paradigma de objetos

Yo laburo haciendo eso.
¿NLP? ¿donde laburás bruno? así tiro un CV (?)
Mandamelo
Cabe destacar que ya estoy hasta las peltoas de papers matematicos
Cita:Si,justamente para procesar datos se me ocurre que debe ser genial. Incluso el que no tengan estado interno hace que se pueda demostrar que los programas en funcional terminan, cosa que con un lenguaje procedural, o incluso de objetos es imposible (al menos para el caso general).

El tema es que se que debe servir para algo mas concreto que lo que ves en paradigmas,pero no vi casi nada que lo haga (mas allla de cosas que hacen los hippies con tiempo).Quizas es la oportunidad de hacer algo revolucionario (?).

Hay apuestas serias en funcional. Scala es una "extensión" de Java, Clojure es un dialecto de Lisp para la JVM (también compila en js) y F# es el de Microsoft.

Y después tenes un montón de lenguajes que soportan varias características "funcionales", como Python, y toolkits como underscore.js
(30-10-2012 14:36)brunodiaz escribió: [ -> ]Cabe destacar que ya estoy hasta las peltoas de papers matematicos

Más allá de que necesitas adaptarlo al español...

¿ https://class.coursera.org/nlp/lecture/preview/index ?
Te agradezco. No esta el clasificador que estoy usando pero bueno. Puede servir.
Páginas: 1 2
URLs de referencia