2010-04-19 18 views
24

¿Cuál es el estado actual de Perl 6, está listo para producción? ¿Dónde estamos parados ahora? Hay muchos programadores curiosos sobre el progreso actual de Perl 6.¿Cuál es el estado actual de Perl 6?

También hay otros dos temas abiertos en on reddit y http://perlmonks.org/?node_id=835419 acerca de esto.

+0

Mi teoría personal es que perl 6 siempre será un tipo de banco de pruebas para las características de perl 5 que se transferirán a través de nuevas versiones de perl 5 y módulos como Moose y demás. –

Respuesta

13

Perl 6 no está listo para la producción utilizando el más común definitions of "producion ready" as per SO's own thread - las implementaciones no son estables y posiblemente carezcan de características completas de la especificación.

Please see this SO answer for details on the status as of 2008. La especificación del lenguaje parece estable (al menos según brian d foy en la publicación vinculada) pero la implementación aún no está allí.

En cuanto a fechas específicas, as per this post el 04/08/2010, el primer gran lanzamiento de la luz verde ahora la mayoría de Perl 6 aplicación - Rakudo (sobre el Parrot VM) - llamado "Rakudo Estrellas 1.0" está dirigido provisionalmente en Q2 2010 (el plan original fue alrededor de abril de 2010 pero se modificó debido a circunstancias personales que involucran al desarrollador principal).

Por supuesto, YMMV - He visto a personas usar MUCHO menos código estable/proyectos en producción (incluyendo lo que ellos mismos escribieron) que el estado actual de Perl 6. Pero personalmente ni siquiera comencé a soñar con implementar Perl 6 hasta que haya sido lanzado por un tiempo.

Sin embargo, tenga en cuenta un punto muy importante: lo anterior no quiere decir que Perl 6 es vaporware o que no debe ser aprendido - que suena como que está progresando bien y por lo tanto yo personalmente la intención de empezar a cavar en ella (bueno, ya le agradezco a SO) antes de tiempo, así que estoy listo para usarlo cuando se haya estabilizado un poco.

Además, me gustaría añadir que una gran parte de la gran funcionalidad de Perl 6 fue retransmitida a Perl 5 (en 5.10-5-12, y vea Perl6:: modules), por lo que el punto anterior sobre aprender Perl6 es extremadamente relevante incluso si no tiene planes inmediatos para implementar Perl 6 en sí mismo.

+2

gracias, porque muchas personas involucradas con Perl6 tienden a decir "depende de lo que defina su definición de lista de producción", qué clase de tonterías porque no hay mucha disensión sobre eso ... es amable-claro lo que significa estar listo para producción – Cobalt

+0

Sí, está muy claro. Perl 6 no está listo para producción y DVK ha visto código mucho menos estable en producción. – Quentin

+2

@David - no hay contradicción en absoluto. Algo en producción no lo califica como "listo para producción". No de acuerdo con mi definición, pero la definición votada como la respuesta aceptada en SO. – DVK

23

En primer lugar, y lo más importante, siga el agregador de noticias Planet Six. Perl 6 reuniones semanales y blogs de los desarrolladores principales y muchos miembros de la comunidad están incluidos, y es una excelente manera de mantenerse al día sobre el progreso de Perl 6.

Para tener una idea de cómo Rakudo Perl, el líder Perl 6 implementación está haciendo, echa un vistazo a Perl 6 Advent Calendar. Todos los días muestra una faceta diferente de Perl 6, y la medida en que se ha implementado en este momento por Rakudo.

Actualización (marzo de 2012): perl6.org's feature comparison muestra el progreso de implementación de Rakudo y Niecza (un compilador de orientación CLR, por ejemplo, .NET, Mono).


Perl 6, como una especificación, todavía está en constante refinamiento y refactorización. Algunos ejemplos donde la especificación no está clara: la jerarquía de objetos, lo que debe y no debe ser parte de la biblioteca central, manejo de fechas, pereza, 'auto-threading' de cruces. Pero la mayor parte del lenguaje ha sido finalizado. La especificación es muy ambiciosa, y en mi humilde opinión es una de las razones principales por las que Perl 6 ha tardado tanto en ponerse en marcha.

En términos de implementación, el proyecto principal es Rakudo Perl 6, construido sobre la Parrot VM.Hay tal vez una docena de desarrolladores dedicados y muchos más que están ayudando a probar, escribir bibliotecas, códigos y documentación. La mayoría del trabajo de desarrollo está financiado por subvenciones de la Fundación Perl y la comunidad, por lo que no hay ninguna razón para esperar que desaparezca.

Rakudo tiene muchos errores y mucha funcionalidad faltante. Recientemente se ha sometido a una gran refactorización: la rama 'ng'. Examine cualquier fuente existente de Perl 6 y encontrará muchos comentarios que dicen "Rakudobug" o "Rakudo aún no implementa esto ..."

Aún así, esto pinta una imagen injusta de Rakudo. La especificación Perl 6 es ambiciosa, por decir lo menos. El lenguaje tiene tantas funciones que ha necesitado años de desarrollo para llegar al nivel actual. Rakudo es lo suficientemente completo como para que las personas escriban juegos basados ​​en texto, wikis y otras aplicaciones web, y cada día mejora. Los desarrolladores han escrito alrededor de 40,000 pruebas unitarias para Perl 6 hasta ahora, por lo que es fácil ver mejoras en la implementación (Rakudo actualmente pasa ~ 30k pruebas, o el 79% del conjunto de pruebas)

El primer "usable" (estable El lanzamiento de Rakudo se conoce como 'Rakudo Star'. Actualmente está planificado para el segundo trimestre de 2010 (abril-junio). La idea general fue implementar una gran parte de Perl 6, no todo el lenguaje, sino un subconjunto útil de este, y minimizar los errores. En cuanto a producción preparada, Perl 6 siempre ha tenido una fecha de lanzamiento de "Navidad". Quizás esta Navidad, más probablemente sea otra cosa. Pasará mucho tiempo antes de que puedas usar todo Perl 6, sin errores, pero al menos vamos a ver un lanzamiento estable muy pronto, y con suerte el bombo de Perl 6 hará bola de nieve desde allí una vez la gente descubre que es real.

Si está interesado en Perl 6, podría considerar involucrarse en la comunidad. Desde mi experiencia, es una comunidad muy amigable (casi me asusta lo agradable que es todo el mundo, incluso en el IRC). Instala Rakudo, intenta romperlo, archiva errores. Escribir cajas de prueba. Escribir implementaciones para funciones centrales, escribir módulos. ¡Hay mucho que hacer!

+4

@rjh - excelente detalle. Diablos, esta publicación podría ser la gota que colmó el vaso para intentar lo que sugeriste (instalar a Rakudo y tratar de implementar lo que falta) si puedo liberar algo de tiempo este verano. +1 – DVK

+0

Esto es diciembre de 2013 ahora. ¿Cualquier actualización? ¿Es esto un proyecto muerto? Me acabo de dar cuenta de que ActiveState ya no ofrece Perl 6. – Uri

+1

@Uri lo último que escuché es que Rakudo se alejaba de Parrot como un servidor primario porque les causaba muchos problemas, tanto con la dificultad de implementación como con el rendimiento. (Aunque se ha puesto al nivel del competidor de .NET, Niecza). Se están realizando esfuerzos para eliminar el código PIR y portar el backend NQP a la JVM. Aparte de eso, es mucho trabajo terminar toda la especificación Perl 6, y eso llevará mucho tiempo. Todavía están lanzando lanzamientos mensuales, por lo que está lejos de estar muerto. – rjh

1

Interesante blog publicada hoy por Leon Timmermans acerca de algunas de las diferencias que salen en Perl 6.
Why Perl 6 Is Different No habla mucho cuando esas diferencias van a salir.

8

Perl 6 fue lanzado oficialmente hace unos días, esta Navidad 2015. Dos cosas muy importantes fueron lanzadas en realidad.

Primero y más importante, la especificación oficial y ahora estable del lenguaje, Perl 6.c (c para Navidad), fue lanzada. La especificación es un conjunto de más de 120.000 pruebas conocidas como el Perl 6 asado (R epository o f A ll S pec T ESTs) que se puede encontrar en Github bajo Perl6/asado.

En segundo lugar, se lanzó una nueva versión de una implementación de Perl 6, conocida como Rakudo. Rakudo es un compilador de Perl 6 que se ejecuta en las máquinas virtuales MoarVM y JVM. Esta nueva versión de Rakudo se dirige a la especificación del lenguaje 6.c y pasa todas las pruebas en varias arquitecturas principales. Se puede encontrar más información sobre el lanzamiento en Github en rakudo/rakudo y, en particular, en el anuncio de 2015.12 bajo rakudo/rakudo/blob/nom/docs/announce/2015.12.md.

Rakudo es bastante fácil de instalar, yo personalmente recomiendo usar rakudobrew que es un administrador de instalación Rakudo. Siga las instrucciones aquí https://github.com/tadzik/rakudobrew.Además de instalar Rakudo y MoarVM, también puede instalar Panda, que es un instalador de módulos Perl 6.

Como desarrollador de software de Perl 5 y Python por mucho tiempo, tengo que decir que Perl 6 parece ser un lenguaje extremadamente potente y profundo que resuelve muchos de los problemas que encuentro con los lenguajes dinámicos existentes. Para tomar directamente desde el anuncio Rakudo:

  • conserva los valores fundamentales de Perl: expresividad, la realización del trabajo, tomando influencias de lenguaje natural, y empujando los límites de diseño del lenguaje.
  • Tiene una sintaxis limpia y moderna, basada en construcciones familiares, pero revisitando y revisando las cosas que lo necesitaban.
  • es verdaderamente multi-paradigma, permitiendo elegante, funcional, de procedimiento, orientado a objetos y la programación concurrente
  • sirve como una gran lengua de cola, lo que facilita llamado de C/C++ (usando NativeCall) y permanecer compatible con Perl 5 (a través de Inline :: Perl5).
  • proporciona construcciones componibles para trabajar con datos asíncronos y cálculos paralelos
  • drásticamente reformas y establece un nuevo estándar en la sintaxis de expresiones regulares, que escala hasta gramáticas completo, lo suficientemente potente como para analizar Perl 6 en sí
  • Tiene excelente soporte Unicode, con las secuencias de trabajo a nivel grafema
  • Valores ámbito léxico y la encapsulación, lo que permite refactorización fácil
  • es extensible a través de la programación meta-objeto, los operadores definidos por el usuario, y los rasgos

Toda la información que desee saber sobre Perl 6 se puede encontrar aquí http://perl6.org/.

Cuestiones relacionadas