Se ha anunciado Perl 7

En la conferencia virtual de desarrolladores de Perl que se lleva a cabo hoy se ha anunciado el proyecto Perl 7, que continuará el desarrollo de la rama Perl 5 sin realizar cambios radicales. Perl 7 será similar a la versión Perl 5.32.0, a excepción de diferentes configuraciones predeterminadas, que se adaptan mejor a las prácticas modernas de desarrollo. Por lo demás, Perl 7 seguirá siendo el mismo Perl 5 y mantendrá la compatibilidad con las aplicaciones previamente desarrolladas.

Un cambio significativo en el número de versión servirá como un marcador en la transición a un nuevo modelo de crecimiento de la funcionalidad del lenguaje Perl sin una violación notable de la retrocompatibilidad.
Se espera que la creación de Perl 7 ayude a atraer nuevos desarrolladores a usar Perl y facilite el proceso de agregar nuevas y significativas funcionalidades al lenguaje, manteniendo al mismo tiempo la compatibilidad con la base de código de proyectos existentes. El número 7 se eligió ya que Perl 6 fue utilizado en el desarrollo del lenguaje, que ahora se desarrolla tiene un nombre separado: Raku. Se espera que el primer lanzamiento de Perl 7 ocurra el próximo año. La rama Perl 5.32 será la última de la serie Perl 5 y se planea mantenerla durante 5 a 10 años.

El cambio más notable en Perl 7 será la inclusión predeterminada del modo "strict", que implica una verificación estricta de la declaración de variables, el uso de punteros simbólicos y la asignación de subprogramas. El uso de "use strict" es una buena práctica y es utilizado por la mayoría de los desarrolladores. De manera similar, se planea incluir la gestión de advertencias ("use warnings«).

En Perl 7 también se espera estabilizar e incluir de forma predeterminada algunas características experimentales ya existentes, como las firmas de funciones ("use feature 'signatures'"), que permiten definir los argumentos de entrada al declarar una función y automatizar la verificación de su número (se podrá escribir "sub foo ( $left, $right) {" en lugar de "sub foo { my( $left, $right) = @_;"). Se planea también incluir de forma predeterminada el operador "isa" para verificar si un objeto es una instancia de una clase especificada o de una clase derivada de ella ("if( $obj isa Package::Name )", así como las operaciones de desreferencia de postfijo (postderef) " $sref->$*" en lugar de " ${ $sref }", " $aref->@*" en lugar de " @{ $aref }" y " $href->%{ … }" en lugar de "%$href{ … }".

Los candidatos para desactivar por defecto en Perl 7 son:

  • La notación indirecta de llamada a objetos ("sin característica qw(indirect)«) — un método obsoleto para llamar a objetos, donde se usa un espacio en vez de «->» («método $objeto @param» en vez de «$objeto->$método(@param)»). Por ejemplo, en lugar de «my $cgi = new CGI» siempre se debe usar «my $cgi = CGI->new».
  • Descriptores de archivo desnudos sin declaración de variables («no bareword::filehandle«) — el uso de construcciones como «open FH, $file» generará un error, se debe usar «open my $fh, $file». El cambio no afectará a los descriptores de archivo estándar STDIN, STDOUT, STDERR, ARGV, ARGVOUT y DATA.
  • Matrices y hashes ficticios al estilo de Perl 4 («no multidimensional«).
    Por ejemplo, especificar «$hash{1, 2}» generará un error, se debe usar un array intermedio, como «$hash{join($;, 1, 2)}».
  • Declaración de prototipos al estilo de Perl 4 (se debe usar «use :prototype()»).

En planes más lejanos por defecto se calcula incluir soporte para Unicode, lo que liberará a los desarrolladores de tener que especificar «use utf8» en el código. Para módulos y scripts que enfrenten problemas con la nueva configuración predeterminada, se contempla la posibilidad de revertir el comportamiento de Perl 5 mediante la adición de la línea «use compat::perl5» al código. Las configuraciones individuales también se preservarán y se podrán modificar por separado.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster