7 características que me gustaría tener en Perl 5

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

COMPARTE ESTE ARTÍCULO

ENVIAR A UN AMIGO
COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN GOOGLE +
ARTÍCULO ANTERIOR

¡SÉ EL PRIMERO EN COMENTAR!
Conéctate o Regístrate para dejar tu comentario.