Como desarrollador senior trabajo con Perl 5 todos los dÃas. Es mi forma de vida y mi pasión, pero aunque amo Perl, a veces hace que mis dÃas sean tristes y horribles. Es un gran lenguaje, es mi lenguaje, pero no es perfecto. No tiene porqué serlo, es más, no creo que haya algo como un lenguaje de programación perfecto. Todos tienen sus inconvenientes, y Perl 5 no es diferente. Dicho esto, hay ciertas caracterÃsticas que me encantarÃa tener en Perl 5, debido a que la arquitectura moderna requiere de estas caracterÃsticas para poder programar de manera eficiente en el entorno actual.
Solución de errores
Una parte importante en el desarrollo de software es la corrección de errores, y para poder gestionar esto prácticamente necesitas o muchos warnings o un depurador de Perl. Sé que tal vez no es posible, sé que algunos tal vez no lo quieran escuchar pero, ¿no serÃa genial tener breakpoints tal y como hace Java? Ya sé que Perl ha sido fuente de inspiración para muchos otros lenguajes, pero eso no quita que no podamos fijarnos de otros y pedir prestadas ciertas cosas.
Compatibilidad con versiones anteriores
Si descargo un módulo de CPAN ahora mismo, no puedo saber si funcionará con mi versión actual de Perl. Si escribo un módulo y lo subo a CPAN, no puedo estar seguro de que otros programadores que usen una versión diferente de Perl 5 lo podrán utilizar. SerÃa increÃble tener compatibilidad universal entre las diferentes versiones de Perl 5.
Ordenación paralela
SÃ, lo sé, estoy fijándome en Java otra vez, pero si es útil ¿por qué no? El algoritmo rompe recursivamente el array en pedazos. Luego los clasifica y luego los recombina simultáneamente y de manera transparente. Esto es muy útil a la hora de ordenar grandes arrays. SerÃa genial tener una función incorporada de ello en Perl.
POO es bueno
Tan simple como eso. Puede ser sólo mi humilde opinión, pero la programación orientada a objetos funciona mejor que la simple programación estructurada. Trata de depurar y arreglar un código de 15 años de antigüedad no orientado a objetos y luego me cuentas qué tal te ha ido. Aunque tenemos cierta codificación POO en Perl, no es una caracterÃstica por defecto. Moose es genial, pero lo suyo es que esta caracterÃstica estuviese incluida en el núcleo de Perl 5 (sé que la tenemos en Perl 6 ahora).
CaracterÃsticas reales de POO
Quiero tener objetos reales, interfaces completas y reales, clases abstractas reales, atributos privados y también métodos. El sustituto funciona, pero no debemos simplemente conformarnos con esto, debemos pensar a lo grande también en Perl 5. Perl 6 puede que lo incluya, pero en estos momentos no está totalmente listo para producción.
Cláusula switch
Antes de dedicarme a Perl 5, trabajé en otros lenguajes de programación y la mayorÃa de ellos gozaba de una cláusula de conmutación. PodrÃamos utilizar un conmutador sin necesidad de instalar módulos adicionales.
Métodos asÃncronos
El hecho de ejecutar dos o más métodos al mismo tiempo, en lugar de esperar a cada uno en particular, puede significar un gran ahorro de tiempo. Después solo quedarÃa obtener los resultados correctamente.
Al hacer ciertas investigaciones para este artÃculo, le eché un vistazo más profundo a Perl 6. Sé que las últimas caracterÃsticas que he mencionado existen en Perl 6, pero ahora mismo el lenguaje no está totalmente listo para producción. Perl 5 sigue siendo el principal lenguaje de la familia de Perl y debe contar con las mismas ventajas que tienen otros lenguajes de programación modernos.
Estas son sólo algunas de las caracterÃsticas que me ayudarÃan en mi desarrollo diario, si tienes alguna otra sugerencia, por favor déjalos en la sección de comentarios. También quiero mencionar que Perl 6 parece muy atractivo y espero que llegue a producción tan pronto como sea posible. Mientras tanto, todavÃa podemos contar con Perl 5.
Fuente: builtinperl.com