Cita:
Iniciado por agleiva Hola @jferrero:
Veo que siempre posteás cosas de Perl. No conozco nada del mismo, y me produce curiosidad. Veo que es un lenguaje que hace mucho énfasis en expresiones regulares?
Sí, así es. Es uno de los lenguajes con mejor soporte de expresiones regulares.
Cita:
Iniciado por agleiva ¿Qué usos prácticos tiene?
Bueno, es un lenguaje de propósito general. Lo mismo te vale para hacer un programa que rearranque el Tomcat cuando detecte que el LifeRay está devorando memoria en modo zombie, como que te manda un correo electrónico avisando que al servidor le queda menos del 5 % de espacio libre en disco duro.
Y miles de aplicaciones más gracias a su gigantesca biblioteca pública, que te permite, desde
jugar al ajedrez 960, llevar el
control del tiempo dedicado a cada proyecto,
leer el Corán, o sacar
la gráfica de inmersión del último buceo que hiciste en la costa.
Cita:
Iniciado por agleiva ¿Qué ventaja tiene con respecto a las plataformas más usadas (java y .Net) para crear aplicaciones orientadas a datos?
Con respecto a Java, se trata de una tecnología más fiable (yo tengo programas Perl funcionando desde hace diez años, sin haber recibido ningún mantenimiento). Otra gran diferencia es la
expresividad. Perl tiene un nivel de expresividad de 6 (igual al de Python), comparado con el de Java, que es de 2.5. Eso permite crear programas más cortos y de forma más rápida, que es lo que se busca, por ejemplo, a la hora de crear prototipos. Y no tener que contratar tantos programadores para hacer lo mismo.
Sobre .Net es muy fácil: Perl funciona en
más de cien plataformas, mientras que .Net... funciona... en... ¿Windows?
Cita:
Iniciado por agleiva ¿Qué ventajas tiene para crear aplicaciones web, o de escritorio, o para móviles?
Para móviles, no hay ventajas, si te refieres a Android o iOS, ya que son cotos muy cerrados. Se puede compilar Perl v5.20 y v5.22 en los últimos Android, pero no van muy finos. Una opción mejor es instalar una App que contiene una Debian, y dentro de ella ya puedes correr Perl sin problemas.
Para aplicaciones de escritorio tienes los problemas de primero encontrar el entorno gráfico en el que se basará tu aplicación. Qt o el servicio gráfico de Windows. Al final, el trabajo de desarrollo será muy parecido al de usar otros lenguajes.
En cambio, con aplicaciones web, tienes docenas de opciones para crear sistemas MVC basados en plantillas, o entornos de trabajo -como
Dancer o
Mojolicious- que te crean una infraestructura muy rápida para el desarrollo web. Desde una simple página web estática hasta usar websockets, pasando por SOAP, RPC, etc.
Y luego está la parte divertida de extraer información de las páginas web, ya sea para hacer la
actualización automática de un medallero en la Wikipedia (en tiempo casi real), o para algo tan sencillo como saber la definición de 'persona' (desde la misma línea de comandos):
Código Perl:
Ver originalperl -Mojo -CS -E '$_ = g("http://es.thefreedictionary.com/persona")->dom->at("div[class=runseg]")->text; s/^\s+|\W+$//g; say'
Individuo de la especie humana
Cita:
Iniciado por agleiva Además de la plataforma y del ecosistema, ¿Qué ventajas tiene a nivel de lenguaje con respecto, por ejemplo, a F#?
No sé decirte, porque no conozco F#. Sí puedo hablarte de la comunidad, con un centenar de eventos anuales, algunas de ellas de carácter internacional (
la última en Granada).
Tienes un buen resumen de lo que es Perl,
en la Wikipedia. Quizás, demasiado largo (puedes saltarte algunos párrafos, es lo que tiene el contenido enciclopédico).
(Realmente es muy complicado resumir 27 años de desarrollo. Además, Perl 6 sale en unas semanas).