¿Perl sigue siendo un lenguaje útil y viable? [cerrado]

77

Sé que puede haber sido preguntado antes, pero aquí no pasa nada ...

¿Perl sigue siendo algo que se consideraría útil? Si alguien fuera un nuevo programador (ya sea completamente nuevo en programación o solo unos pocos meses / años de experiencia), ¿Perl sería algo que valga la pena aprender?

¿Perl todavía se usa con frecuencia? ¿Sigue siendo popular?

¿O está desapareciendo Perl en comparación con lenguajes como Python, Ruby, PHP, ASP.NET, etc.?

Básicamente se reduce a esto:

  • ¿Todavía se usa / todavía se usa con frecuencia? Si es así, ¿se está muriendo? Si no, ¿volverá?
  • ¿Es algo que valdría la pena aprender?
  • ¿Cómo se compara en demanda con lenguajes como Python tanto en popularidad como en usabilidad / viabilidad? ¿Podrían los lenguajes como Python o Ruby ser considerados reemplazos de Perl?

Además, ¿las versiones más recientes de Perl realmente traerán una gran mejora a la comunidad de Perl, y tal vez traerán a Perl de nuevo al centro en comparación con otros idiomas?

EDITAR:

Bien, supongo que aquí hay una pregunta mejor y redactada de nuevo:

¿Perl sigue creciendo o está "muriendo"? ¿Sigue siendo un idioma que vale la pena aprender y usar? ¿En qué proyectos realmente "brilla" en comparación con otros idiomas? ¿Qué hace que Perl sea un idioma para elegir? Esencialmente: ¿Perl se está volviendo obsoleto en comparación con otros idiomas, y si es así, espera que eso cambie o continúe?

Y gracias a todos los que han respondido hasta ahora, ¡la discusión ha sido realmente interesante!

Bob
fuente
12
No perdamos la perspectiva, según TIOBE todavía está entre los diez primeros, por delante de Ruby e incluso JavaScript.
Daniel

Respuestas:

60

En primer lugar, siempre es mejor desambiguar .

Las empresas hablan de Perl 5 cuando hablan de Perl, pero en una tierra muy lejana, más allá de la isla de pensamiento profundo , la tribu de diseño por comité todavía está cocinando una gran losa de Perl 6 (y está casi lista, con un motor escrito en Haskell y accionado por las lágrimas de los dioses )

Ok, dicho eso, ¿para qué se usa Perl 5 hoy?

  • sistemas web heredados / intrawebs : algunos simplemente no morirán

  • minería de datos / análisis estadístico : el motor perl regex, incluso si está un poco desactualizado , ( PCREuna biblioteca girada, lo completa de cualquier manera posible y es el PHPmotor predeterminado ) sigue siendo bueno para un análisis simple

  • Administración del sistema UNIX : Perl siempre se instalará en UNIX.
    Puede contar con que esté disponible incluso en Mac OS X.

  • creación de prototipos de red : muchos expertos en redes principales aprendieron Perl cuando estaba de moda; y todavía hacen sus pruebas de concepto con eso.

  • seguridad : muchos expertos en seguridad también necesitan prototipos rápidos . (y soluciones automáticas rápidas) Perl puede, y lo hace, cubrir eso.

La extensa colección de CPAN es muy útil cuando se trata de prototipos.
(Las baterías pueden no estar incluidas, pero aún están allí, en el estante )

Sin embargo, recuerde inconvenientes :

  • El soporte de objetos en Perl apesta , bendices referencias y haces cosas impías en nombre de los objetos, luego te preguntas por qué te tomaste todas las molestias en primer lugar.
  • Leer el Perl de otras personas es más que un oficio, es ciencia , y también doloroso .
  • Perl es ingenioso, te hace pensar ingenioso, te hace sentir ingenioso, te conviertes en una estrella del rock de programación . Ahora, piense en levantarse e ir a trabajar a una oficina llena de estrellas de rock : es un "bote que se mece" con fuerza. Esperar fluctuaciones salvajes.
revs ZJR
fuente
19
@WorldEngineer estuvo de acuerdo, pero lo peor es que, viniendo de Perl, Ruby no se siente ingeniosa en absoluto: simplemente se siente como una versión de Perl tonta y de bajo rendimiento.
ZJR
12
Solo veo un inconveniente allí. Personalmente, disfruto bendiciendo mis referencias, pero, para aquellos que no, hay Moose (en CPAN), que es un sistema de objetos lo suficientemente bueno como para que otros idiomas lo copien. Y, aunque amo la ingenuidad, no he conocido tantas estrellas de rock obsesionadas en el mundo de Perl. Hay desarrolladores mucho más serios y disciplinados (a quienes les gusta rockear en su tiempo libre) en la comunidad Perl que los rockstars. (Niego explícitamente ser un programador de rockstar hasta que las mujeres empiecen a tirarme las bragas mientras escribo el código)
Dave Sherohman,
3
@johannes todavía tiene que lidiar con la Ley Van Rossum: "Whenever you find a python executable preinstalled, it's the wrong version"Corolario:"sometimes the right version is available, but it has the wrong name"
ZJR
2
Perl también es bastante grande en el espacio bioinformático.
dietbuddha
3
+1 para la administración del sistema. Nunca he visto un sistema operativo basado en Unix que no incluya perl. Incluso lo he visto en algunos sistemas operativos Linux integrados que usaban Busybox para sus
tierras de
23

En mi opinión, después de trabajar con Perl nuevamente después de algunos años de casi no usarlo, es mejor que nunca. Perl 5 tiene mucha genialidad en CPAN, incluso OO se puede hacer en este momento. (Echa un vistazo a Modern Perl )

Perl 5 está lejos de estar muerto. Solo eche un vistazo a algunos sitios web de Perl y CPAN y en el horizonte hay un lenguaje completamente nuevo: Perl 6.

Hay muchos recursos en la web, blogs y presentaciones sobre por qué no es malo y por qué tiene una mala reputación que no merece, solo eche un vistazo a esos para obtener una comprensión.

Nornagest
fuente
77
En mi opinión, CPAN es excelente si necesita una rueda de cualquier forma, pero menos si necesita una fábrica de automóviles.
@ ThorbjørnRavnAndersen CPAN es excelente si necesita una rueda de cualquier forma. El problema es que shape($wheel) == 'round' ? available_in_cpan($wheel) : false;no es un filtro válido.
Jason Lewis
El hecho de que OO exista en Perl no significa que sea realmente bueno.
kirbyfan64sos
22

Lo más importante que Perl todavía tiene es CPAN : hay tantos módulos preescritos que es muy fácil encontrar lo que necesita.

Dicho eso, no aprendería Perl. Perl es un gran lenguaje para las personas que ya lo saben (como yo), pero Python parece ser (desde la perspectiva de mi extraño) un mejor lenguaje para hacer el tipo de análisis rápido y sucio de archivos y texto que Perl solía ser el " ir a "lenguaje para.

Peter Mortensen
fuente
¿Y crees que eso le da ventaja sobre otros idiomas? ¿O eso solo lo lleva a otros idiomas? Por ejemplo, el .NET Framework también parece estar lleno de varios métodos y clases útiles.
Bob
66
@Paul Tomblin: esa es una forma bastante cruda de decirlo. "Lo principal que Perl todavía tiene por qué ..." <- Lo principal que C / C ++ tiene para ellos es que todavía hay mucho software escrito en ellos. Además de eso, son basura.
Torre
Acordado con Idigas, ya que se podría decir lo mismo de Java que tiene una gran cantidad de paquetes ...
Izkata
1
La pregunta no era "¿Es C ++ o Java un buen lenguaje"? La pregunta era si Perl sigue siendo viable. Y hay dos razones por las que todavía estoy escribiendo mis aplicaciones web en Perl: CPAN y tengo un montón de código que ya he escrito.
Paul Tomblin
77
Si estuviera comenzando ahora, probablemente usaría Python. Pero uso Perl porque soy bueno en Perl.
Paul Tomblin
19

Cuando decidí aprender Perl como mi primer idioma hace unos años, hubo una serie de factores que guiaron mi decisión:

  • ¿hay mucho material de referencia bueno sobre el idioma?
  • ¿Puedo encontrar fácilmente ayuda con mis preguntas?
  • ¿Está el lenguaje en uso activo por una gran población diversa?
  • ¿Hay proyectos activos que me ayuden con mis objetivos?

Para mí la respuesta fue sí. Yo soy un diseñador grafico. Aprendí HTML y CSS hace años, pero necesitaba actualizar mis habilidades después de que los clientes querían más de sus sitios web. Había usado varios frameworks php que me dieron el error para realmente aprender a programar. Investigué mucho y encontré proyectos bien apoyados como Template Toolkit, así como nuevos como Perl Dancer y Mojolicious. La documentación que viene con Perl ha sido muy útil, así como la biblioteca de publicaciones.

He encontrado las listas de correo de Perl bastante amigables para principiantes y activas. En PerlMonks, personas de todo el mundo vienen con preguntas y respuestas para una amplia gama de aplicaciones. Hay varios sitios de noticias, blogs y transmisiones de Perl activos. Estos recursos me han enseñado mucho sobre Perl y la programación.

De acuerdo, esa es MI experiencia. No sé exactamente cuántas personas inician sesión en estos sitios, se suscriben a las listas de correo o crean sus aplicaciones web, por ejemplo, usando Perl. Tampoco puedo comentar cuánto mejor o peor habría sido mi experiencia si hubiera elegido otro idioma para comenzar. No dudo que podría encontrar muchos de los mismos aspectos positivos en las comunidades de otros idiomas. Puedo decir que todavía estoy contento con la elección que hice.

revs luis.roca
fuente
Aprendí Perl como mi primer idioma en 1996 porque acababa de cambiarme a Linux desde Windows para mi sistema operativo principal. Perl nunca fue un gran lenguaje web (aunque PHP es la pura destilación de todo el mal que Perl tiene para ofrecer), pero es fantástico como reemplazo de los scripts de bash. El problema surge cuando las personas intentan fingir que existe una bala de plata.
Jason Lewis
16

La popularidad de un idioma tiene muy poco que ver con su viabilidad o usabilidad. Perl sigue siendo un lenguaje muy útil. Su reputación, merecida o no, como no ser amigable con los novatos eventualmente significaba que nadie nuevo lo aprendería si pudieran ayudarlo. La única razón por la que ya no lo uso es porque nadie más que conozco lo usa más.

Karl Bielefeldt
fuente
55
Entonces, ¿la afirmación "La única razón por la que ya no la uso es porque nadie más que yo conozco la usa más", lo que indica que la popularidad tal vez tenga algo que ver con su viabilidad o usabilidad? De todos modos, ese no es el punto de mi pregunta, lo que realmente quiero saber, ¿Perl sigue siendo útil? ¿Cuándo lo eliges sobre otros idiomas (como en, cuándo brilla realmente)?
Bob
1
Los idiomas existen como un medio de expresión para otras personas, diciendo que lo popular que es un idioma por el valor que presenta no tiene fundamento en mi opinión.
errores
44
Esto está muy basado en el medio ambiente ... Si eres un administrador de sistemas * nix, tus opciones para realizar tareas comunes se reducen a Perl vs. sed + awk + grep + bash ... y Perl es generalmente más fácil que recordar 4 sintaxis para un guión único.
Jason Lewis
12

Para el registro, he estado programando en Perl 5 durante aproximadamente 15 años, así que estoy un poco sesgado. Habiendo dicho eso, realmente me gusta Perl. No escuches a los detractores, y no pienses que su edad es de alguna manera un indicador de su vida útil. La mejor manera de ver Perl es verlo en comparación con otros idiomas:

  • PHP : PHP es un lenguaje de programación web bastante bueno; no me malinterpretes Pero, es solo un lenguaje de programación web. Incluso las aplicaciones web necesitan sus cronjobs para realizar procesos de limpieza, y usted tiene que hacer algunas cosas extrañas para que eso suceda. No importa tener que escribir un script rápido para el administrador de UNIX o analizar un archivo de texto. Además, PHP no tiene CPAN.

  • Ruby : el lenguaje es demasiado nuevo y "script kiddie" para mis gustos. Lo único que escucho sobre Ruby es Ruby on Rails. Perl tiene Catalyst and Dancer (como marcos MVC), que son MVC muy buenos, pero no es la piedra angular del lenguaje. No va a encontrar "Ruby" como un requisito en las ofertas de trabajo en el corto plazo (si es que lo hace). Además, Ruby no tiene CPAN.

  • Python : en palabras de Larry Wall, Python es solo aceite de serpiente. Python se preocupa por los espacios en blanco y el último idioma que utilicé que se preocupaba por los espacios en blanco fue BASIC. Además, al igual que BASIC, fue diseñado esencialmente para ser un lenguaje para principiantes fácil de usar. Finalmente, no hay CPAN aquí.

  • Java : Java es un lenguaje secundario problemático. El concepto era tener esta máquina virtual que se ejecute en cualquier plataforma, pero debido a la gran popularidad del idioma en los cursos universitarios, se ven aplicaciones Java en todas partes donde no deberían estar. Por ejemplo, las aplicaciones web internas basadas en servidor no deberían existir. Es un servidor único con especificaciones que definen y se envuelve en una VM separada con una huella de memoria limitada. Java está hinchado y no tienen CPAN.

  • C # - De hecho, he estado usando este lenguaje bastante ahora, y parecía haber formado una relación de amor / odio con él. Ser capaz de sobrecargar métodos con diferentes parámetros es genial y divertido. Pero, si desea un lenguaje que se queje en cada línea de código sobre la conversión de tipos , entonces C # es para usted. ¡Dios mío, quiere que pongas un casting explícito POR TODAS PARTES! Hacer clases es divertido, pero de repente te das cuenta de que pasas más tiempo haciendo clases para que el maldito idioma simplemente FUNCIONE que escribir código real.

    Además, C # no tiene ... bueno, tiene .NET, que es realmente bueno y extenso. Sin embargo, todavía me gusta más CPAN porque todavía puedes escribir tus propios módulos y quejarte ante el autor por un error o defecto de diseño. Y todos son gratis. Además, Perl está trabajando para Perl.NET en el futuro, por lo que podemos estar diseñando aplicaciones de Windows en poco tiempo.

Perl es un gran lenguaje que tiene:

  • Expresiones regulares : si es algo que Perl puede hacer bien, es la manipulación de texto. Sí, muchos lenguajes tienen expresiones regulares, pero Perl casi los ha inventado, y hay una razón por la cual grep tiene un modo de "Expresión regular de Perl", o por qué Oracle tiene una sección sobre "Extensiones influenciadas por Perl en expresiones regulares de Oracle". Está integrado y no requiere ningún módulo.

  • Flexibilidad : tiene tres tipos de variables básicas: escalares, matrices y hashes. Eso es. Eso es todo lo que necesitas. No tienes un int, byte, string ni nada de esa basura. Perl se da cuenta muy bien. Y puede usar referencias todo lo que quiera sin temor a pérdidas de memoria o causar que toda la PC se bloquee. El lenguaje simplemente funciona.

  • Portabilidad : Perl funciona muy bien en la web. Funciona muy bien en UNIX. Incluso funciona bastante bien en Windows. No está encasillado para una sola función. Es un juego de todo tipo, pero también un maestro de (principalmente) todo.

  • Es fácil hacer mucho con un pequeño código : dame un archivo en blanco de 1K y puedo escribir todo tipo de cosas con ese espacio. Incluso un one-liner de Perl es excelente para agregar a una tubería de línea de comando.

  • CPAN - No puedo enfatizar lo bueno que es encontrar casi cualquier cosa que necesite para cualquier cosa. ¿Qué es "cualquier cosa"? Bueno, ¿qué hay de los módulos de base de datos para cada base de datos o cualquier cosa que puedas imaginar, desde Oracle a iPod a CSV a Adabas a Yaswi? ¿Qué tal varios servidores web con todas las funciones? ¿Qué tal un lector de archivos Excel, o un módulo SNMP, o un módulo que lee comentarios para líneas de depuración, o módulos que lo ayudan a programar más rápido? Un proyecto que estoy haciendo en este momento es escribir un generador de mapas dinámico de Terraria, que aumenta desde un módulo existente llamado Games :: RolePlay :: MapGen. .NET nunca tendría algo así.

    Además, es muy fácil instalar cualquier módulo a través de CPAN. Obtenlo de Debian. Instalarlo desde CPAN directamente. Hace un trabajo tan bueno como apt-get para resolver dependencias. No tengo ningún problema en decirle a mi administrador del sistema que instale el módulo X desde CPAN, ya que es solo un comando simple.

Sí, tiene sus defectos, y sí, soy parcial hacia eso, pero probablemente ya hayas escuchado los negativos muchas veces. No superan los aspectos positivos, ni mucho menos.

Brendan Byrd
fuente
14
-1 principalmente por no reconocer que otros idiomas tienen herramientas tan buenas, si no mejores, que CPAN. Maven Central para Java, por ejemplo? Tiene más artefactos que CPAN y es un trazador de líneas 0 para instalar artefactos Maven, ya que se identifican automáticamente a través del análisis de dependencia del Modelo de objetos del proyecto. Además, tengo menos experiencia con Ruby Gems, pero creo que son más o menos equivalentes a CPAN.
mikera 03 de
8
PHP tiene PERA. Y no es solo un lenguaje de programación web.
MattBianco el
25
No diría que eres un poco parcial. Estás claramente sesgado. No puedo creer que puedas usar Python principalmente porque tiene un espacio en blanco significativo y porque Larry (ciertamente no es una fuente objetiva aquí) usó la expresión aceite de serpiente. ¿Y no hay ofertas de trabajo para Ruby? ¿Cuándo viste por última vez el mercado laboral? Al menos ponte un esfuerzo al tratar de establecer las credenciales de Perl.
Muhammad Alkarouri
66
-1 para una perspectiva claramente sesgada y no investigada sobre otros idiomas. Estoy de acuerdo en que Python es aceite de serpiente, pero Ruby == "script kiddie" es absurdo. Nunca he visto un intento de intrusión basado en Ruby en ninguno de los servidores que mantengo. Es sobre todo Python. ¿PHP es un lenguaje de programación aceptable en algún sentido? Engaños. Sus comentarios sobre C # demuestran una sorprendente ingenuidad con respecto a la escritura y / o la orientación a objetos. Quédate con Perl, amigo. En serio, siempre amaré a Perl porque fue mi primer lenguaje de programación 'real' y es brillante para las tareas de administrador de sistemas, pero esta respuesta es peor que mala.
Jason Lewis
8
+1 Por despreciar todos los idiomas que he amado (u odiado), excepto Perl, por supuesto. :-)
jpaugh
12

El rendimiento es una de las principales razones para optar por Perl. En comparación con Python, Ruby o cualquiera de los lenguajes de secuencias de comandos basados ​​en JVM, es increíblemente rápido.

Es por eso que nunca se ha reemplazado en el espacio de minería de datos, todos los demás lenguajes (gratuitos) son más lentos cuando se trata de manejar grandes volúmenes de datos.

James Anderson
fuente
66
¿Puede proporcionar soporte / puntos de referencia para esta afirmación? Me parece que los últimos puntos de referencia que he visto para Perl vs.Ruby / Python favorecieron a este último, especialmente. cuando se incluyen implementaciones alternativas de este último.
Jason Lewis
2
Cualquier comentario sobre el rendimiento debe ser una generalización a menos que se mencionen versiones y entornos específicos. Muchos puntos de referencia por ahí: hentenaar.com/serendipity/index.php?/archives/… onlyjob.blogspot.com/2011/03/… son bastante típicos. Tienes razón, las últimas versiones de Ruby son bastante rápidas, pero, Perl tiene lanzamientos regulares de "mejora del rendimiento", por lo que no debería tener problemas para seguir el ritmo. LUA supera todo.
James Anderson
Lua es muy ardiente.
Jason Lewis
12

Perl tiene su lugar. Su "mala reputación" generalmente se debe a que le permite una gran flexibilidad para hacer cosas que realmente deberían hacerse con una herramienta diferente.

Si se hace la pregunta "¿Qué estoy tratando de lograr? ¿Y existen herramientas apropiadas para lograr esto?" entonces eres parte del camino hacia allí.

Si está escribiendo una secuencia de comandos rápida, entonces tiene sentido usar un lenguaje de secuencias de comandos. Si desea crear una aplicación compleja, entonces "podría" escribirla en Perl, pero probablemente no debería.

Sin embargo, como su pregunta se relaciona con un programador nuevo, ¿puedo sugerir que deje a Perl solo por ahora? Simplemente porque aprenderá menos malos hábitos de un lenguaje menos flexible.

Ptolomeo
fuente
3
Muy bien, pero Python es una opción perfectamente viable para crear un script rápido también, pero también puedes estirarlo para crear programas más grandes. ¿No es lo mismo para Perl? ¿Eso hace que Python sea mejor que Perl?
Bob
@Bob: Creo que es sobre todo lo que estás acostumbrado a escribir y tu gusto. A veces, también hay alguna útil biblioteca de Perl que no tienes en Python y viceversa.
Dagnelies
1
@Bob: Sugeriría que pruebe Python primero, es más amigable para los novatos. Entonces, le diría que elija un idioma completamente diferente como segundo idioma, como Scheme.
Dagnelies
1
@Bob: todo el .NET Framework solo está disponible en Windows. En el espacio Unix / Linux, Perl es un gran lenguaje para reemplazar scripts de shell, administrar el sistema y cualquier cosa que implique mucho procesamiento de texto y no mucho más. Hace cosas directamente que (por última vez que miré) Python necesitaba un poco de estructura. Esto generalmente hace que Perl sea un lenguaje de programación general peor, pero mejor para sus aplicaciones más especializadas.
David Thornley
1
@Bob En realidad, ese es un punto interesante. Perl es realmente útil si tienes un script de shell que está forzando los límites de bash. Perl lo acomoda con bastante facilidad, ya que solo puede poner backticks en la mayoría de los comandos y aún funcionará.
Stephen Gross
12

Su diseño me atrajo a Python: la estructura de bloques es "lo que ves es lo que obtienes", y no entiendo por qué hay personas que se desaniman por esto. Creo que fue, y es, una buena idea.

Sin embargo, volví a Perl. Simplemente parece mejor pensado como una herramienta práctica. En teoría de la informática, Python y Ruby son "mejores". Pero yo trabajo en el mundo real.

Ruby y Python están más de moda entre los niños recién salidos de la universidad. La mayoría de los programadores que están en Facebook seguirán la moda actual e irán con Ruby o Python. La publicación original ilustra esto: combina "¿Vale la pena" con "¿Sigue siendo popular?"

No sé ni me importa si Perl es "popular" en un mundo de Facebook. Es probablemente el lenguaje de script más utilizado entre las personas que logran mucho, lo cual es algo muy diferente. Algunos de los comentaristas que piensan que su idioma favorito tiene un recurso comparable a CPAN no tienen idea de cuán amplio y profundo es CPAN.

user83421
fuente
55
Un espacio en blanco significativo es una idea terrible. Siempre fue, siempre será. Dicho esto, aunque uso Ruby en cualquier lugar que tenga sentido, todavía tengo algunos scripts de Perl para tareas de administrador de sistemas que no he tenido motivos para reescribir en Ruby. ¿Por qué? Funcionan bien y están en el punto ideal de Perl. ¿Por qué crear más trabajo?
Jason Lewis
1
Obligar a las personas a sangrar correctamente es una buena idea independientemente del idioma. Mejores lenguajes (como Python) simplemente aplican más fuerza.
Brendan
10

Perl es EL lenguaje para escribir herramientas desechables. Hay varias otras aplicaciones en las que Perl es más o menos persistente y útil, pero si no tiene un comando de shell para hacer algo extraño, si necesita un código auxiliar para obtener algunos datos de un socket extraño, si tiene un archivo de registro o un base de datos y necesita extraer algo de contenido de una manera que esté fuera del alcance de SQL, si necesita extraer un par de imágenes del servidor, o si las plantillas de su página web contienen el mismo tipo de error y desea corregirlas todas Un guión de Perl de 10 minutos es el camino a seguir.

Probablemente sea posible escribir lo mismo en Shell, pero debido a las extrañas advertencias de la sintaxis de Shell, tomará más tiempo y puede ser mucho más difícil. Escribir esto en cualquier lenguaje "profesional" como C ++, C #, Java, etc. tomará aproximadamente una hora en comparación. Escribir esto en un lenguaje de secuencias de comandos competitivo como Python, Ruby o PHP es una alternativa viable y probablemente tomará hasta un 20% más de tiempo para escribir.

Sí, los programas en otros idiomas serán más fáciles de mantener y más fáciles de leer. Pero si necesita una solución AHORA, Perl es el camino a seguir.

SF.
fuente
8

Echa un vistazo a los "archivos recientes a CPAN" - la página . Cada día se cargan> 20 módulos nuevos o módulos actualizados. Creo que el número promedio de cargas diarias ha aumentado lenta pero constantemente. ¿Es esta actividad una señal de un lenguaje que se está muriendo? ¡No!

Siempre me impresiona cómo se han mantenido y perfeccionado algunos módulos importantes (por ejemplo, para programación web o interfaces para controladores RDBMS) durante muchos años. A menudo por el autor original, o por nuevos encargados. A menudo esto ha creado un código muy maduro.

Para introducir un módulo en CPAN, se recomienda a los autores que hagan un largo camino para mantener la compatibilidad con versiones anteriores (con versiones anteriores de perl 5), así como la independencia de la plataforma. Ver por ejemplo http://matrix.cpantesters.org/?dist=DBI (DBI = interfaz de base de datos, capa de abstracción)

También el lenguaje en sí: estoy un poco desconcertado por todas las nuevas características que se han incluido en el lenguaje desde 5.10, 5,12., 5.14. No he aprendido a aprovechar las nuevas funciones. ¡Perl ha evolucionado demasiado rápido para mí!

knb
fuente
7

Aprendí Perl 4 y 5 mientras administraba el sistema en los años 90. Hoy hago programación Java (donde invocar a Perl generalmente no es deseable), y todavía uso Perl de vez en cuando en mi computadora de desarrollo. Por lo general, esto es solo para hacer minería de datos en archivos de registro donde las expresiones regulares en Perl y el andamiaje para líneas de análisis de texto en Perl hacen que sea muy fácil hacerlo en una línea de comando.

Esencialmente lo uso hoy como awk con esteroides. Por esto es brillante.

Una de las características de Perl es que hay más de una forma de hacer casi todo. Esto le permite elegir el que mejor se adapte a su forma de pensar, lo cual es excelente cuando simplemente piratea uno o dos, pero no es tan bueno cuando tiene que entender el código Perl de otras personas, ya que generalmente eligen otra forma de hacerlo. encaja con su forma de pensar.

Consideraría que Perl es una herramienta muy útil que quizás quieras aprender si te enfocas en lo que las expresiones regulares pueden hacer para ayudarte a examinar tus archivos de texto. Manténgase alejado de cualquier cosa que tenga que ver con objetos.

usuario1249
fuente
Entonces, ¿diría que es principalmente útil para scripts rápidos para manejar texto?
Bob
En mi opinión, sí, entonces es muy, muy bueno. PUEDE hacer otras cosas también, pero no están tan bien horneadas.
1
Si bien Perl es muy bueno manejando el texto a través de sus expresiones regulares, no es necesario que lo revise si conoce Python o Ruby (o tal vez PHP), diría, ya que también son muy buenos con las expresiones regulares. Sin embargo, Python es un poco más detallado, pero también es más limpio.
Eric O Lebigot
@EOL, pero ni Python ni Ruby ni PHP pueden superar el andamiaje para los analizadores de texto en línea. Consulte, por ejemplo, la opción "-i".
@ ThorbjørnRavnAndersen: De acuerdo, por un lado: los oneliners de Python (opción -c) son de hecho más largos. :)
Eric O Lebigot
7

Durante un tiempo, el desarrollo de Perl5 se estancó debido al enfoque en Perl6 que causó un largo retraso entre el lanzamiento de 5.8 y 5.10. Desde entonces, la comunidad realmente ha comenzado a darse cuenta de que Perl5 y Perl6 son idiomas diferentes y recientemente ha habido nuevos lanzamientos muy regulares.

Perl recientemente ganó un concurso de aplicaciones web usando Catalyst (aunque prefiero Mojolicious ) y algunas de las nuevas prácticas de Modern Perl traen muchas ideas más limpias de OO a Perl con cosas como Moose.

En mi opinión, como desarrollador de Perl, Perl tiene un gran legado y un futuro brillante, no solo por ser la cinta adhesiva que mantiene unidas las redes corporativas, sino también un lugar en la nueva actualidad de las aplicaciones web.

AFresh1
fuente
3

No soy un programador experto. Pero encontré a Perl bastante fácil de aprender (usé el libro de camellos), siempre es un placer, y PerlMonks es la comunidad de ayuda más amigable en el mundo de la programación. Perl parece haber perdido su atractivo sexual en términos de contratación para Ruby y Python, pero solo en ciertas industrias (especialmente en la web).

isomorfismos
fuente
3

Si conoces a Perl, es más fácil aprender Powershell de Microsoft. Con respecto a la sintaxis de powershell, no tiene raíces perl , pero Powershell ha tomado muchas características y conceptos del lenguaje Perl, por ejemplo, fuera de mi cabeza: la variable $ _, prefijando matrices con @ y cadenas / valores escalares con $, convenios de archivo para nombrar y almacenar módulos y, de alguna manera, cargar automáticamente, por nombrar algunos.

Entonces, si conoces a Perl, será útil, y es un poco más fácil aprender Powershell, o comprender la mentalidad de Powershell, o mantener el idioma de Powershell en tu memoria a largo plazo. Encontrar Powershell sin algunos antecedentes de perl es probablemente un poco más extraño. Solo digo.

Por supuesto, el lenguaje Powershell agregó cosas nuevas, en particular su compatibilidad con .NET, y no continuó ninguna de las funciones / operadores de perl que proporcionan "compatibilidad con versiones anteriores" con las herramientas de línea de comandos de Unix.

knb
fuente
2

Grant McLean acaba de subir una película corta basada en la evolución de mapofcpan.org , que muestra la forma en que el CPAN evoluciona a lo largo del tiempo con una forma visual de estilo de mapa. Se explica por sí mismo sobre la vida de la comunidad. No muriendo

Perl seguramente está sufriendo por su mala reputación, debido a muchas leyendas y porque su comunidad no quiere y no intenta que sea el lenguaje de programación más moderno del mundo. Es muy difícil entender por qué tanta gente está absolutamente convencida de que es un lenguaje horrible. Puede escribir código espeluznante con cualquier idioma. Perl obtuvo las mejores prácticas como cualquier otro idioma, solo necesita implementarlo en más de una forma de hacer filosofía básica.

Puedo ver una razón muy triste para esta mala reputación: durante mucho tiempo, los sitios web de las comunidades de Perl obtuvieron diseños de interfaz de usuario muy feos (al igual que perlmonks.org, por ejemplo). Personalmente, realmente no me importa esto , tal vez incluso vengo a Perl porque por esta razón: no hay muchos sitios web de moda UI, pero puedes confiar en las herramientas, la comunidad con mucha más fe porque no intenta Sé más bella de lo que es. Sin embargo, las herramientas de calidad no significan que no debas enfocarte en la apariencia, y eventualmente es un tipo de error no cuidar el aspecto.

Por ejemplo, un amigo mío (al que le gustan los idiomas más de moda) me dijo que el logotipo actual de Perl6 es horrible y que será un problema atraer carne joven a Perl. Mucho más un problema que con una piedra brillante o cualquier otro logotipo bien diseñado .

Creo que es una razón muy triste para la impopularidad, pero eso es lo que gobierna el mundo.

revs Sebf
fuente
Si no va a mostrar atención a los detalles en su logotipo, ¿por qué debería suponer que va a mostrar atención a los detalles en los detalles más profundos de su idioma? No es solo que el logotipo se ve mal, es que el logotipo malo se siente sintomático de una cultura que no valora cómo se presentan las cosas, y que refuerza el estereotipo detrás de todos los chistes de "solo lenguaje de escritura"
Racheet
He oído hablar de personas que trabajan en la mala reputación. Estas personas son defensores del desarrollo moderno de Perl y de prueba. Sitios web como builtinperl.com , questub.io están cambiando la forma en que deberíamos considerar el caso de Perl. Duck Duck Go también es un gran éxito, nadie puede decir que no les importa cómo se presentan las cosas. Incluso metacpan.org ha sido una forma de brindar al usuario de CPAN (la principal fortaleza de Perl) una nueva experiencia al mostrar código, documentación y módulos de búsqueda con una interfaz de usuario agradable. No creo en los logotipos de idiomas: ¿C tiene un logotipo? Un idioma no es una marca.
smonff
1

Perl definitivamente no se está muriendo. Nunca ha sido tan publicitado como lo han sido otros idiomas.

Si bien es cierto que Perl es un idioma antiguo, tiene una comunidad vibrante y muy productiva, cuyo valor se encuentra en la biblioteca de CPAN. No creo que ningún idioma tenga una biblioteca tan extensa y completa como CPAN. Nada ni siquiera se acerca. En CPAN encontrará miles de módulos y marcos, que hacen casi cualquier cosa que pueda imaginar. ¿Necesita un servidor web? Hay HTTP :: Servidor. ¿Necesita una base de datos independiente? Ahí está Muldis :: DB. Cualesquiera que sean sus necesidades, generalmente encontrará varios módulos que satisfacen sus necesidades, solo tiene que elegir el que mejor se adapte a su aplicación.

En cuanto a Ruby, Python y otros competidores, creo que una competencia saludable ha sido un gran beneficio para Perl. Todo lo que obtuvieron otros idiomas, la comunidad Perl reescribió en Perl. Por ejemplo, cuando Ruby estaba volando en el éxito de Rails, Perl consiguió Dancer, que en muchos aspectos es mejor que Rails.

Perl definitivamente no está muerto, ni se está muriendo. Simplemente no hay nada llamativo a su alrededor, no hay compañía, que se beneficiaría de promocionar a Perl, por lo que no recibe mucha atención de los medios, y no todos los niños conocen a Perl, por lo que se habla menos al respecto.

Han pasado más de 6 meses desde su publicación original. En caso de que aún no lo hayas decidido, hazte un favor y aprende Perl.

Rox
fuente
0

He estado usando Perl para el desarrollo de juegos web desde los años 90, y después de un descanso de 3 años, estoy de acuerdo con el póster anterior. Regreso y encuentro que ha evolucionado mucho más allá de donde lo dejé.

Se esta muriendo? De ninguna manera.

¿Es útil? Estaría perdido sin eso. Tal vez solo soy yo, pero por las otras respuestas, diría que es una criatura viva muy activa.

Guruchild
fuente
-6

Obtuve la mayor parte de mi experiencia web profesional con PHP, pero a medida que crecí como desarrollador, las cosas se volvieron un poco más difíciles, muchas tareas que PHP simplemente no podía hacer o lo hace de manera ineficiente. Podría haber levantado mis manos, pero en su lugar (gracias a Google) me encontré en sesiones ssh aprovechando libreoffice, ffmpeg, imagemagick para escribir funciones de post proceso para PHP. Nunca lo usé antes de ir a PERL ... principalmente porque Perl se sienta perfectamente debajo de la pila LAMP.

(1) está preinstalado en todos los servidores LAMP o al menos tiene un nuevo rpm. (2) tiene un impresionante repositorio de CPAN para ahorrarle mucho tiempo. (3) más rápido / más seguro para realizar tareas donde PHP que se ejecuta en apache falla. (4) muy similar a PHP y fácil de aprender.

Mezcle ideas con PHP, hornee con PERL usando BASH como lo desee, voltee de acuerdo con MySQL y luego sirva con HTML5 y una pizca de jQuery. Es una gran receta.

EDJ
fuente
1
¿Algo para respaldar estas declaraciones?
Austin Henley