2008-12-25 17 views
13

Entré en Perl hace años y siempre me pareció un lenguaje divertido y expresivo para trabajar.¿Estás tomando Perl y qué te atrapó?

Descubrí que la programación en Perl me hace bastante productivo gracias a su bajo costo y la excelente cantidad de soluciones ya preparadas para problemas comunes en CPAN.

Si eres nuevo en Perl, ¿qué te atrapó?

+0

¿Qué pasa con los votos a favor? Por lo menos, ¿por qué? –

+0

No lo sé, +1 de mí :) – leppie

+0

gracias leppie. Creo que es perfectamente válido preguntarse qué está viendo la gente en Perl que los hace abordarlo hoy. –

Respuesta

9

Con Perl (y el poder expresivo detrás de TMTOWTDI), la programación se convierte en una tarea creativa. Puedo escribir if($expr) { $statement; } si planeo en tener muchos else, o puedo escribir $statement if $expr; si eso tiene más sentido (por ejemplo, yo soy aficionado a la escritura:

sub doSomething { 
    my($toObject, $argument) = @_; 

    die "No object specified" unless defined($toObject); 
    die "Object invalid: $toObject" unless $toObject->ISA('Example'); 

    # Do stuff 
} 

pero por supuesto que no siempre es el más fácil, y la manera más expresiva de hacerlo, ¡así que se me ocurre una manera mejor para la tarea en cuestión!). La gente se queja porque Perl te deja escribir un código de aspecto horrible; Me encanta Perl porque me permite escribir código que me parece bonito (y sí, puedo ver el inconveniente de tener una docena de programadores diferentes escribiendo en sus propios estilos; me aferraré a la idea de que los buenos escritores pueden ser bonitos) expresivo y comprensible sin importar qué tan diferente sea el tema).

con otros lenguajes de programación, me acaban de tener que pensar en mi camino a través de capas de abstracción (¿Cómo este Map dame Collection s cuyos Iterator s que puedo utilizar para ... y así sucesivamente). Con Perl, normalmente solo tengo un nivel de abstracción por encima del Perl básico. Por ejemplo, DBI me dará resultados de base de datos como escalas, listas y hashes de Perl comunes y corrientes, de modo que todo lo que sé acerca de estas estructuras de datos simples y centrales se traslada a cada tarea que puse DBI (Estructuras de datos complicadas) Para eso es PostgreSQL !).

Sólo he estado usando Perl a tiempo completo durante aproximadamente un año, pero estas son las grandes victorias para mí, y la razón fui por primera vez a tiempo completo en Perl después de un año de sufrir a manos de Java 1.4' s Modelo de colecciones (no preguntar). Otros lenguajes de programación me hacen sentir que estoy armando un rompecabezas, ya que alinea todos los módulos y paquetes , justo; Perl se siente como una caja llena de Legos, con algunos ladrillos "especiales" (como DBI, CGI.pm y Test::*) arrojados por si acaso. Hay muchas maneras diferentes de resolver cualquier problema, y ​​Perl te permite probar cualquiera de ellas de la forma que quieras.

+0

Love the Lego brick analogy – dannix

4

sintaxis simple, potentes funciones de scripting para sistemas win32 y unix, y regex totalmente potente.

Recogí Perl en mi primer trabajo, donde tuve que escribir un montón de secuencias de comandos de automatización para que los ingenieros eléctricos extrajeran los registros de datos y los formatearan en Excel y, a veces, también trataran con el servidor sql. Con Perl normalmente podría obtener algo que funciona bastante rápido, así que todo es bueno en la tierra de fabricación. : P

+0

Perl? Sintaxis simple? Tienes que estar bromeando. –

+1

No es ninguna broma. La sintaxis de Perl es muy simple. No necesita saber todo para comenzar a usarlo. –

+0

Pero lo que no sabes te morderá rápidamente cuando trates de hacer algo que no sea trivial. He estado programando en Perl durante la mayor parte de 10 años y la última palabra que utilizaría para describir la sintaxis de Perl es simple. –

0

Estoy no tomándolo. Tuve que trabajar en un proyecto en Perl hace unos años, y realmente me disgustó el idioma. Tiene una sintaxis a veces incómoda y un montón de disparates locos con los que me resulta difícil trabajar. Honestamente, creo que Ruby ha reemplazado a Perl en muchos aspectos: es bueno en aproximadamente las mismas cosas, pero tiene características mucho mejores y es más fácil de usar.

Perl todavía tiene CPAN, que incluso Ruby no puede igualar (aunque Ruby también tiene muchas bibliotecas útiles).

+0

Me alegra que hayas encontrado un lenguaje que te guste ... y me doy cuenta cuando leo tu publicación, que debo sonar similar cuando me depile (¡no!) Java ... supongo que es hora de volver a instalar eclipse y volver a familiarizarme con> 100 líneas de caracteres y referencias fugitivas de puntos que abarcan varias líneas ... – lexu

18

Estaba codificando PHP para ganarse la vida, y luego escuché de su cambio de :: a \ como un separador de espacios de nombres. Realmente no estoy bromeando o siendo rencoroso, pero eso es realmente lo que hizo rodar la pelota.

No era elitista, pero de repente me di cuenta de que las personas con las que tenía que colaborar conocían PHP entendía muy poco en conceptos de programación de maneras que me frustraban por la forma en que podían ser tan ciegos, las personas en el IRC Ya no era una fuente de ayuda para mis preguntas, y generalmente pasaba más tiempo respondiendo preguntas y esperando a que apareciera alguien que pudiera contestar el mío. Usualmente terminé resolviéndolo yo mismo. La mayoría del tiempo me di cuenta de que las personas estaban resolviendo los mismos problemas una y otra vez de maneras cada vez más malas.

Descubrí comportamientos problemáticos en PHP que desafiaban la lógica y el razonamiento (como la familia array_merge_recursive), y descubrí funciones que no estaban documentadas en cómo usarlos, y cuando informé de un error en las funciones, mi error fue marcado como " Bogus "y se esperaba que yo fuera psíquico.

Tenía un amigo que constantemente estaba proclamando la bondad de Perl, así que básicamente le di una oportunidad y ahora estoy enganchado como un adicto.

Además, mi experiencia en otros lenguajes de orden dinámico de orden superior (JavaScript y Ruby, sí, JavaScript es un lenguaje más poderoso que PHP en términos de características del lenguaje) me dejó un conocimiento con muchas maneras de resolver tipos de problemas fácilmente , pero al estar restringido de tal manera, no tenía forma de usar estas poderosas funciones. Perl satisfizo esta necesidad.

¿Por qué Perl y no Ruby? He jugado un poco con Ruby, pero mi experiencia me enseñó el soporte y la documentación es escasa, el lenguaje es lento e inmaduro. Bien puede ser, pero aún está disminuyendo en capacidad contra Perl por lo que he visto. Y compartió la falla principal de PHP que tiene una gran base de usuarios compuesta por total de novatos, todos haciendo las cosas mal, y realmente no quería tener que lidiar con eso tanto.

No es agradable ser elitista, pero una vez que ha intentado explicar lo mismo a 30 personas (y ha tardado una hora en tener un concepto simple en sus cabezas todo el tiempo) llega a un punto de frustración. (No puedo hacer frente a la 'hay alguien en Internet que está mal' situación, Si no puedo VER ella, no ocurre)

+0

+1, estoy totalmente de acuerdo con usted con respecto a PHP y Ruby. La luna de miel de Perl no durará para siempre, pero es un lenguaje maduro y poderoso con una gran comunidad informada, por lo que probablemente no tengas los tipos de obstáculos que tenías con PHP. –

+0

"cuando informé un error volver a las funciones, mi error fue marcado como 'falsos' y que se espera que sea psíquica" Un microcosmos de toda la respuesta, llena de insinuaciones sin fundamento –

+0

PHP se ha desviado de sus raíces Perl tanto , que apenas se parece. –

6

Perl es su comunidad, que es la razón usarlo tanto a nivel social como práctico. (Ver CPAN y Perlmonks, que probablemente inspiró SO.)

+1

No, no lo sé, por lo que sé, ninguna de las personas que trabajaron en Stack Overflow, ha tenido alguna experiencia en Perl. –

+0

Oh, bueno, dos personas diferentes descubrieron independientemente el cálculo, así que supongo que todo es posible :) –

+0

cálculo inventado, no descubierto –

4

Había usado awk algunas veces para las secuencias de comandos shell, mucho en los días. En un proyecto antiguo, necesitábamos implementar una conexión de protocolo TELNET, así que escribí una versión rápida en Perl 4. Funcionó muy bien, y comencé a apreciar realmente el idioma.

Más tarde, escribí una gran aplicación web comercial completa en Perl 5, con su propio marco y base de datos. Tuve cuidado de no utilizar muchas de las características más esotéricas de Perl, así que el código se parecía más a C que a Perl. Funcionó muy bien, el rendimiento fue bueno y el código se extendió fácilmente.

Recientemente he estado trabajando en Java, pero a menudo me falta el tipeo suelto de Perl, y su capacidad de encapsular cosas mucho mejor que Java. Mis características favoritas eran poder poner las estructuras de datos de Perl (matrices y hashes) y el código directamente en archivos de configuración y ejecutarlos, y la capacidad de vincular el código a la sintaxis como matrices. Ambos conducen a un código realmente resbaladizo.

Paul.

+1

Interesante ... una de las cosas de las que soy cauteloso en Perl es la falta de encapsulación garantizada ... nunca puede estar seguro de que algún fragmento de código no interfiera con sus propios datos internos. – reinierpost

+0

Perl es genial si tienes autodisciplina. Si no, o es un gran grupo de codificadores, un lenguaje más estricto es probablemente mucho mejor. –

-3

Perl no es tan malo como pensaba. Solía ​​usarlo en un par de scripts de clientes hace aproximadamente un año, e incluso llegó a gustarme un poco. Por otra parte, nunca más lo he echado de menos desde entonces.

¿La razón? Es principalmente un lenguaje de solo escritura. Ir por encima de una solución de 100 líneas me hizo desconfiar de mi propio código, que definitivamente no es un buen resultado. Con otros idiomas, la barra es considerablemente más alta (tal vez 1000 o 10000 líneas).

veo ninguna razón para ir para Perl en nuevos proyectos, para los nuevos usuarios, en -soon- 2009.

+0

¿Y cuál es su idioma alternativo preferido, y cómo escala a 1.000 o 10.000 líneas donde Perl no lo hace? –

+0

Perl es un lenguaje de solo escritura, solo si no sabe cómo escribir código legible. Otros idiomas te obligan a escribir código "legible". Entonces en otras palabras; Si apestas en la programación, usa uno de los otros idiomas. –

+0

También estoy utilizando Ruby, pero Perl tiene un ecosistema multiplataforma más maduro, especialmente con el soporte comercial de Activestate y excelentes herramientas para empaquetar su código en .exe que funciona en todas partes, incluidos todos los módulos de CPAN que necesita. AFAIK Ruby aún no ha llegado. –

9

Todavía no estoy tan largo tiempo en la comunidad Perl y lo que me trajo por primera vez en la era Larry Humor y sabiduría de Wall. Es cierto, Perl tiene peculiaridades, pero el lenguaje proviene de una comprensión de las cosas que está muy cerca de la mía, así que estoy mucho menos cómodo con Python y, en menor grado, con Ruby.

No uso más la GUI de la aplicación web con WxPerl y funciona muy bien. Estoy muy interesado en los idiomas también en los menos conocidos como factor, boo, rebol, etc., pero en general Perl es mi elección. y es porque es una mezcla de sintaxis poderosa (puede ser muy funcional si te gusta), la comunidad, CPAN, por supuesto, y, como dije antes, debido a la sensación acogedora de estar en el lugar correcto.

11

Empecé a hacer Perl durante mi tercer año en ciencias de la computación como parte del curso 'Lenguajes de scripting'. Tengo un amigo que estudia biotecnología y la ayudé con algunos scripts de minería de datos para manejar bases de datos de proteínas (análisis de archivos de texto, expresiones regulares, comprobaciones simples de integridad). Todo era muy natural de hacer en Perl.

Luego conseguí mi primer trabajo a tiempo parcial y tuve que usarlo profesionalmente. Fui responsable de desarrollar un conjunto de scripts por lotes que manejaban parte de la lógica empresarial en la empresa. Y fue la tarea donde Perl reveló todo su potencial. ¿Necesita obtener datos de DB? - No hay problema, solo ve a CPAN. Necesidad de automatizar wiki, no hay problema, vaya a CPAN. La cantidad de módulos ya creados es abrumadora y puede estar seguro de que siempre encontrará lo que necesita en CPAN.

En resumen. Para mí, Perl es una navaja suiza de lenguajes de scripting. Todo se puede hacer en él y tiene una gran cantidad de módulos adicionales, incluso para tareas muy exóticas. Y, por cierto, ¿mencioné REGEXPS?

+0

s/knife/chainsaw /; –

6

Hay mucha libertad cuando se codifica en Perl; puedes escribir algunos hacks indescifrablemente locos, pero no lleva mucho tiempo una vez que sientes el lenguaje (y aprendiste a usar perltidy :-)) antes de darte cuenta de que un código perl bien escrito puede verse francamente bonita.

Es interesante; Terminé como programador de Perl a tiempo completo después de aprenderlo para mi trabajo de tipo administrador de sistemas en la universidad; y ahora es mi habilidad más fuerte. Voy a seguir con Perl por un tiempo porque hasta ahora el lenguaje ha sido versátil para crecer conmigo. Escribí una gran cantidad de software de sistemas en Perl, y decidí retomar la programación web por diversión, y Catalyst estaba allí esperándome. ¿Quiero probar un nuevo paradigma de lenguaje? Perl probablemente lo respalde. Por el contrario, cuando estaba programando en PHP por un tiempo, inmediatamente sentí que estaba presionando contra un techo de vidrio.

0

Consideré aprender Perl el año pasado.

Fue la única tecnología que decidí activamente no aprender. Esto no es nada directamente en contra del lenguaje en sí, parecía que llegaría a la fiesta 10 años tarde. Es muy útil para las tareas de scripts de shell para las que fue diseñado, pero personalmente prefiero los idiomas con mayor coherencia.

Perl 6 parece estar en un hiato indefinido e incluso cuando llega no creo que haga el lenguaje profundamente más convincente.

Además, Larry Wall me asusta.

Para mi situación, Perl no era la elección correcta y por eso.

+2

Perl 6 no está en pausa, se encuentra en desarrollo activo. Puede encontrar la mejor implementación en http://rakudo.org/ y más acerca de la especificación en http://perlcabal.org/syn/ –

5

Trabajo como solucionador de problemas tecnológicos para una gran organización en el sur de OH. Tuve que aprender Perl para mantener en funcionamiento algunos sistemas automatizados de manipulación de textos en red y, finalmente, me emocioné un poco. Eventualmente me consideré desarrollador y escribí algunos programas que analizaban algunos datos de la base de datos y facilitaban la vida de algunas personas. Pero después de leer algunas de las publicaciones en este sitio web y escuchar el podcast de stackoverflow e incluso comenzar a leer el libro Code Complete de la lista de lecturas sugeridas de alguien, ya no tengo ningún delirio de que fuera un desarrollador de Perl o cualquier otro idioma para ese asunto. . Sin embargo, tal vez algún día podría ser.

+0

Sé cómo se siente. – Copas

+0

Eh, se dan cuenta de que muchos desarrolladores no hacen nada de eso tampoco. Joel ha comentado muchas veces que su desarrollador promedio no suele leer blogs de programación o libros sobre cómo mejorar su oficio. Dicho esto, tampoco me llamo desarrollador. – romandas

1

Lo que me trajo a Perl fue cuando vi el DBI y me di cuenta de que podía escribir los programas ESQL/C que estaba escribiendo en ese momento en una quinta parte del tiempo.

Lo que me ha impedido usar Perl es que los otros dos lenguajes que pueden destronarlo están fuertemente tipados. Es decir

print "10" + 5; 

es un error de tipo en lugar de 15.

2

que empecé a usar Perl como una mejora de nuestro proceso de construcción para el desarrollo integrado. Necesitábamos desarrollar salidas diversas basadas en nuestra carga útil compilada cruzada y Perl encajaba perfectamente.

Nuestras mejoras incluyen conversión de punto flotante a hexadecimal, postprocesamiento de registro S y modificaciones de suma de comprobación.

No es que este tipo de trabajo no pueda hacerse con muchas otras herramientas, pero definitivamente recomendaría Perl para el trabajo relacionado con la construcción.

Cuestiones relacionadas