tan - ¿Estás tomando Perl y qué te metió en eso?
vivo pensando en ti acordes (14)
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.
Para resumir. 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?
Ingresé a Perl hace años y siempre me pareció un lenguaje divertido y expresivo para trabajar.
Descubrí que la programación en Perl me hace bastante productivo gracias a sus bajos gastos generales y la excelente cantidad de soluciones ya preparadas para problemas comunes en CPAN.
Si eres nuevo en Perl, ¿qué te atrapó?
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).
No veo ninguna razón para ir a Perl en nuevos proyectos, para nuevos usuarios, en -soon- 2009.
Estaba codificando PHP para ganarse la vida, y luego escuché sobre su cambio de :: a / como separador de espacios de nombres. Realmente no estoy bromeando o siendo rencoroso, pero eso es realmente lo que hizo rodar la pelota.
No ser elitista, pero de repente me di cuenta de que las personas con las que tenía que colaborar conocía PHP entendía muy poco en conceptos de programación de maneras que me frustraban cómo podían ser tan ciegas, las personas en las salas de IRC ya no eran una fuente de ayuda para mis preguntas, y por lo general 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 "falso" y yo se esperaba que fuera psíquico.
Tenía un amigo que constantemente proclamaba 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 restringido de tal manera que no tenía forma de usar estas poderosas funciones. Perl satisfizo esta necesidad.
¿Por 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 gran falla de PHP que tiene una gran base de usuarios compuesta por total de novatos que hacen las cosas mal, y realmente no quería tener que lidiar con eso tanto.
No es agradable ser elitista, pero una vez que has tratado de explicar lo mismo a 30 personas (y has tardado una hora en tener un concepto simple en sus cabezas todo el tiempo) llega a un punto de frustración. (No puedo lidiar con la situación ''Hay alguien en Internet que está equivocado'', si no puedo VERLO , no sucede)
Todavía no llevo mucho tiempo en la comunidad de Perl y lo que primero trajo fue el humor y la sabiduría de Larry 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.
sintaxis simple, poderosas capacidades de scripting para sistemas win32 y unix, y regex totalmente poderoso!
Recogí a Perl en mi primer trabajo, donde tuve que escribir muchos guiones de automatización para que los ingenieros eléctricos extrajeran los registros de datos y los formatearan en Excel y, a veces, también trabajasen 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. :PAG
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.
Con Perl (y el poder expresivo detrás de TMTOWTDI), la programación se convierte en una tarea creativa. Puedo escribir if($expr) { $statement; }
if($expr) { $statement; }
si planeo tener muchas declaraciones más, o puedo escribir $statement if $expr;
si eso tiene más sentido (por ejemplo, me gusta escribir:
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, esa no es siempre la forma más fácil y expresiva de hacerlo; así que se me ocurrió una mejor manera para la tarea en cuestión!). La gente se queja porque Perl te deja escribir un código de aspecto horrible; Amo a 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 muy expresivos y comprensible sin importar qué tan diferente sea el tema).
Con otros lenguajes de programación, termino teniendo que pensar en las capas de abstracción (cómo este Map
me dará Collection
s cuyo Iterator
puedo usar ... y así sucesivamente). Con Perl, normalmente solo tengo un nivel de abstracción por encima del Perl básico. Por ejemplo, DBI
me proporcionará resultados de base de datos como escalas, listas y hashes de Perl comunes y corrientes, de modo que todo lo que sé sobre estas simples estructuras de datos centrales se traslada a todas las tareas a las que DBI
(estructuras de datos complicadas) para eso es PostgreSQL !).
Solo he usado Perl a tiempo completo durante aproximadamente un año, pero estas son las grandes ganancias para mí, y la razón por la que primero fui a tiempo completo a Perl después de un año sufriendo a manos del modelo Collections de Java 1.4 ( no preguntar). Otros lenguajes de programación me hacen sentir como si estuviera armando un rompecabezas, mientras alineas todos los módulos y paquetes de la forma correcta ; Perl se siente como una caja llena de Legos, con algunos ladrillos "especiales" (como DBI
, CGI.pm
y Test::*
) arrojados por si CGI.pm
. Hay muchas maneras diferentes de resolver cualquier problema, y Perl te permite probar cualquiera de ellas de la forma que quieras.
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 fue la elección correcta y por eso.
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 idiomas que pueden destronarlo están fuertemente tipados. Es decir
print "10" + 5;
es un error de tipo en lugar de 15.
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 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.
Empecé a usar Perl como una mejora en 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 incluyeron 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 se pueda hacer con muchas otras herramientas, pero definitivamente recomendaría Perl para el trabajo relacionado con la construcción.
Había usado awk algunas veces para guiones de shell mucho, 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, completa 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 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.
Pablo.
No lo estoy tomando. 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.
Sin embargo, Perl aún tiene CPAN, que incluso Ruby no puede igualar (aunque Ruby también tiene muchas bibliotecas útiles).
Perl es su comunidad, que es la razón para usarlo tanto a nivel social como práctico. (Ver CPAN y Perlmonks, que probablemente inspiró SO.)