Pues el Erlang, en la UDC, lo usamos en la asignatura de "Programación Funcional" (además de Haskell), una optativa de segundo ciclo y, llanamente... sí, es tan bueno como lo pintan.
Es un lenguaje funcional bestial, sencillísimo de programar, ameno, y con una capacidad no sólo de concurrencia sino también de districión terrible. Es muy bueno.
Claro que, efectivamente, está limitado en el sentido de que la plataforma, ni está muy extendida, ni te ofrece una gran cantidad de apis para hacer cosas grandes.
Pero, si quieres divertirte un rato, sin duda, pruébalo.
Igual te sorprenderá saber que este lenguaje lo creó Ericsson con el fin de programar sus centralitas telefónicas y que posteriormente lo adoptaron otras compañías... o sea que posiblemente hoy en día cuando hablemos por teléfono lo hagamos pasando por alguna centralita programada en Erlang.
Para que te hagas una idea de la potencia de este lenguaje, en el examen nos pidieron que implementásemos un servidor de IRC, limitado en su funcionalidad, claro está, pero concurrente y distribuido y, bueno, muchos lo hicimos... y en un par de horas...
Nada más me he leído el "whitepaper" de Erlang, pero conozco Python y mi impresión es que no se parecen en nada. ¿Quizás lo dices por la indentación? Los ejemplos están indentados, pero no me parece que, a diferencia de Python, la indentación sea significativa en Erlang.
Al que realmente se parece mucho es a PROLOG:
-Funciona a base de "pattern matching" y las variables se asignan una sola vez (binding).
-Manejo de datos basado en listas (cabeza-cola como en LISP y PROLOG) y tuplas
-Uso extensivo de la recursividad
-Lenguaje de tipo funcional en lugar de imperativo
En definitiva, a mí me parece un PROLOG pero con un montón de librerías y adaptado a usos "prácticos" (tiempo real, sistemas distribuidos, gestión de errores) en lugar de la orientación a la IA del susodicho PROLOG. Conclusión: para mí tiene muy buena pinta. La pena es que no está muy extendido y es difícil que uno tenga la oportunidad de profundizar en él y aplicarlo en algún trabajito.
por
pobrecito hablador
el Viernes, 14 Febrero de 2003, 01:27h
(#165574)
Hace tiempo vi un programa de diseño 3d hecho en Erlang y estaba muy currado... he buscado en google y su página es ésta: http://www.wings3d.com/
Echadle un vistazo, parece bueno ;-)
En todo caso un caml, no un prolog. Prolog es un lenguaje de programación lógica (que vale, también es funcional) muy limitadito. Es normal que maneje las listas en forma "cabeza-cola" como tu lo llamas, al fin y al cabo es un lenguaje funcional, no existe otra forma funcional de manejar listas... No solo gestiona datos con listas, tambien tiene variables simples y registros, aunque al final en realidad son todo lo mismo, solo que tienes diferentes formas de acceso.
Te falta comentar que no tiene tipado, mientras que los lenguajes funcionales clásicos son muy fuertemente tipados.
La propia ericsson lo utiliza para montar sus servidores de comunicaciones, y en mi facultad están haciendo un servidor de vídeo bajo demanda para una empresa de cable utilizando este lenguaje, y al parecer están muy contentos con él.
Ah, al igual que caml, tiene interfaz con un montón de bibliotecas externas, entre las que está GTK por supuesto.
Además una de sus características más interesantes es la gestión que hace de threads. Permite cosas como correr threads en diferentes máquinas de forma transparente, robustez mediante el enlace de threads entre si (si uno muere, los que están enlazados mueren, o bien lo vuelven a lanzar, etc).
--
Los libros son las abejas que llevan el polen de una inteligencia a otra. James Lowell
Del Erlang FAQ (http://www.erlang.org/faq/x855.html):
10.3. Where does Erlang syntax come from?
Mostly from prolog. Erlang started life as a modified prolog. ! as the send-message operator comes from CSP. Eripascal was probably responsible for , and ; being separators and not terminators.
Parece que no iba tan desencaminado con lo del PROLOG :-)
El Erlang (ERicsson LANguage) es ya un veterano en el mundo de la programación, y seguramente el lenguaje de programación funcional de más éxito de los años 90.
Además de para programar diferentes centralitas y switches, Ericsson ha usado el Erlang para programar (si no todo, una buena parte) de su entorno de desarrollo WAP, el WAP IDE, que ya salió hace unos 4 años. Por alguna razón, y a pesar de estar implementado en Erlang y Tk (de fama Tcl/Tk, uno de los mejores, ubícuos y más sencillos toolkits para programación de interfaces gráficas que hay, incluso hoy en día), tenía algunas dependencias en DLLs de Windows, pero seguro que no sería muy difícil portarlo a GNU/Linux.
Como otros comentan en esta noticia, es un lenguaje de programación funcional de aspecto similar al Caml, pero de tipado dinámico (como muchos otros lenguajes funcionales famosos, en particular los de la familia del LISP [Common Lisp, Scheme, Logo, etc...]) orientado a los servicios multihilo o distribuídos...
En su última encarnación (9R0), es un lenguaje, entorno y librerías (incluída una base de datos orientada a persistencia y concurrencia de datos) de software libre (licencia mozilla adaptada) y multiplataforma, con varias implementaciones. Además del OpenSource Erlang de Ericsson (www.erlang.org), existe el llamado Stand-Alone Erlang (SAE, http://www.geocities.com/erlang_journal/sae.html) que reúne todo el paquete en un único tar.gz de binarios y librerías listos para ser usados (por ejemplo, he tenido problemas para compilar el OPT Erlang en Red Hat 8.0, aunque va de maravilla en el 7.3; el SAE funciona a la primera) o el ETOS (Erlang to Scheme, http://www.iro.umontreal.ca/~etos/ , que traduce el erlang a Gambit Scheme, y de este a C, para poder compilarse en nativo), y más...
Nuevos en la versión 9R0 está el HIPE, que permite compilar (aunque yo no lo he conseguido aún) tus módulos a nativo, en vez de a bytecode, y bastantes mejoras en rendimiento o en las funciones de red, y poder empotrar Erlang en HTML para servicios web, etc...
En conjunto, hay un montón de cosas que hoy en día se hacen en Perl, PHP o Java que se harían con facilidad y robustez en Erlang. Además el lenguaje, basado en pattern matching, es fácilmente legible y promueve de forma natural un diseño modular y con pocas dependencias mútuas, que siempre es más fácil de mantener.
Yo lo conocía un poco, pero llevo unas dos semanas pasándomelo bomba con él, la verdad es que muchas cosas que me piden mis clientes se las haría ya mismo en Erlang si pudiese...
A mi sigue pareciéndoseme más a caml, no por la sintaxis, sino por la forma de programar...
De todas formas tampoco utilicé prolog más de lo imprescindible, me parece un lenguaje bastante grotesco y poco útil en general, erlang es mucho más interesante, con una diferencia abismal... Lo siento por los prolog-lovers que haya en barrapunto, pero cada cual tiene sus gustos 0:-)
--
Los libros son las abejas que llevan el polen de una inteligencia a otra. James Lowell
por
pobrecito hablador
el Miércoles, 19 Febrero de 2003, 11:16h
(#166408)
Recuerdo en una práctica de programación que entre unos cuantos hicimos un defragmentador de disco, y lo llamamos ODRIE (Optimizador de Disco Recomendable Incluso Ebrio).
Odrie también era una chica que salía en la serie Twin Peaks por aquel entonces, y que era capaz de hacer un nudo con la lengua ;)
humm...
(Puntos:1)( Última bitácora: Viernes, 03 Febrero de 2012, 15:18h )
Re:humm...
(Puntos:1)( http://barrapunto.com/~fernand0/bitacora | Última bitácora: Miércoles, 11 Febrero de 2009, 15:45h )
--
Fernand0
Si elegimos a los políticos es para no tener que pensar todo el tiempo.
Homer Simpson
En la Universidade da Coruña lo usamos
(Puntos:2, Interesante)Es un lenguaje funcional bestial, sencillísimo de programar, ameno, y con una capacidad no sólo de concurrencia sino también de districión terrible. Es muy bueno.
Claro que, efectivamente, está limitado en el sentido de que la plataforma, ni está muy extendida, ni te ofrece una gran cantidad de apis para hacer cosas grandes.
Pero, si quieres divertirte un rato, sin duda, pruébalo.
Igual te sorprenderá saber que este lenguaje lo creó Ericsson con el fin de programar sus centralitas telefónicas y que posteriormente lo adoptaron otras compañías... o sea que posiblemente hoy en día cuando hablemos por teléfono lo hagamos pasando por alguna centralita programada en Erlang.
Para que te hagas una idea de la potencia de este lenguaje, en el examen nos pidieron que implementásemos un servidor de IRC, limitado en su funcionalidad, claro está, pero concurrente y distribuido y, bueno, muchos lo hicimos... y en un par de horas...
Un saludo.
---
Cruinne - http://www.elrincondelprogramador.com
¿¿Python??
(Puntos:1)Al que realmente se parece mucho es a PROLOG:
-Funciona a base de "pattern matching" y las variables se asignan una sola vez (binding).
-Manejo de datos basado en listas (cabeza-cola como en LISP y PROLOG) y tuplas
-Uso extensivo de la recursividad
-Lenguaje de tipo funcional en lugar de imperativo
En definitiva, a mí me parece un PROLOG pero con un montón de librerías y adaptado a usos "prácticos" (tiempo real, sistemas distribuidos, gestión de errores) en lugar de la orientación a la IA del susodicho PROLOG. Conclusión: para mí tiene muy buena pinta. La pena es que no está muy extendido y es difícil que uno tenga la oportunidad de profundizar en él y aplicarlo en algún trabajito.
Programa en Erlang
(Puntos:0)Había un proyecto financiado por R...
(Puntos:0)más bien caml, pero sin tipos
(Puntos:1)( http://pinguino.dyndns.org/ )
Te falta comentar que no tiene tipado, mientras que los lenguajes funcionales clásicos son muy fuertemente tipados.
La propia ericsson lo utiliza para montar sus servidores de comunicaciones, y en mi facultad están haciendo un servidor de vídeo bajo demanda para una empresa de cable utilizando este lenguaje, y al parecer están muy contentos con él.
Ah, al igual que caml, tiene interfaz con un montón de bibliotecas externas, entre las que está GTK por supuesto.
Además una de sus características más interesantes es la gestión que hace de threads. Permite cosas como correr threads en diferentes máquinas de forma transparente, robustez mediante el enlace de threads entre si (si uno muere, los que están enlazados mueren, o bien lo vuelven a lanzar, etc).
Los libros son las abejas que llevan el polen de una inteligencia a otra. James Lowell
PROLOG
(Puntos:1)10.3. Where does Erlang syntax come from?
Mostly from prolog. Erlang started life as a modified prolog. ! as the send-message operator comes from CSP. Eripascal was probably responsible for , and ; being separators and not terminators.
Parece que no iba tan desencaminado con lo del PROLOG :-)
Re:Programa en Erlang
(Puntos:1)( http://barrapunto.com )
Además de para programar diferentes centralitas y switches, Ericsson ha usado el Erlang para programar (si no todo, una buena parte) de su entorno de desarrollo WAP, el WAP IDE, que ya salió hace unos 4 años. Por alguna razón, y a pesar de estar implementado en Erlang y Tk (de fama Tcl/Tk, uno de los mejores, ubícuos y más sencillos toolkits para programación de interfaces gráficas que hay, incluso hoy en día), tenía algunas dependencias en DLLs de Windows, pero seguro que no sería muy difícil portarlo a GNU/Linux.
Como otros comentan en esta noticia, es un lenguaje de programación funcional de aspecto similar al Caml, pero de tipado dinámico (como muchos otros lenguajes funcionales famosos, en particular los de la familia del LISP [Common Lisp, Scheme, Logo, etc...]) orientado a los servicios multihilo o distribuídos...
En su última encarnación (9R0), es un lenguaje, entorno y librerías (incluída una base de datos orientada a persistencia y concurrencia de datos) de software libre (licencia mozilla adaptada) y multiplataforma, con varias implementaciones. Además del OpenSource Erlang de Ericsson (www.erlang.org), existe el llamado Stand-Alone Erlang (SAE, http://www.geocities.com/erlang_journal/sae.html) que reúne todo el paquete en un único tar.gz de binarios y librerías listos para ser usados (por ejemplo, he tenido problemas para compilar el OPT Erlang en Red Hat 8.0, aunque va de maravilla en el 7.3; el SAE funciona a la primera) o el ETOS (Erlang to Scheme, http://www.iro.umontreal.ca/~etos/ , que traduce el erlang a Gambit Scheme, y de este a C, para poder compilarse en nativo), y más...
Nuevos en la versión 9R0 está el HIPE, que permite compilar (aunque yo no lo he conseguido aún) tus módulos a nativo, en vez de a bytecode, y bastantes mejoras en rendimiento o en las funciones de red, y poder empotrar Erlang en HTML para servicios web, etc...
En conjunto, hay un montón de cosas que hoy en día se hacen en Perl, PHP o Java que se harían con facilidad y robustez en Erlang. Además el lenguaje, basado en pattern matching, es fácilmente legible y promueve de forma natural un diseño modular y con pocas dependencias mútuas, que siempre es más fácil de mantener.
Yo lo conocía un poco, pero llevo unas dos semanas pasándomelo bomba con él, la verdad es que muchas cosas que me piden mis clientes se las haría ya mismo en Erlang si pudiese...
En fin, viva la diversidad :-)
el que se indica
(Puntos:0)Re:Programa en Erlang
(Puntos:0)Re:PROLOG
(Puntos:1)( http://pinguino.dyndns.org/ )
De todas formas tampoco utilicé prolog más de lo imprescindible, me parece un lenguaje bastante grotesco y poco útil en general, erlang es mucho más interesante, con una diferencia abismal... Lo siento por los prolog-lovers que haya en barrapunto, pero cada cual tiene sus gustos 0:-)
Los libros son las abejas que llevan el polen de una inteligencia a otra. James Lowell
Re:Había un proyecto financiado por R...
(Puntos:2)( http://labitacora.net/ | Última bitácora: Jueves, 20 Mayo de 2004, 19:01h )
VoDKA (Video on Demand Kernel Architecture)
ERISTOFF (Early Release Initially Starting To Offer Functional Fun), previously known as ERICSStoff,
SMIRNOFF (Second Monitoring/Marvelous and Improved Release Now Offering Further Features)
-- Uno de mis lemas: "1º. NO A LOS RECURSOS MAL APROVECHADOS"
Re:Había un proyecto financiado por R...
(Puntos:0)Odrie también era una chica que salía en la serie Twin Peaks por aquel entonces, y que era capaz de hacer un nudo con la lengua ;)