2010-04-19 18 views
24

Qual è lo stato corrente di Perl 6, è pronto per la produzione? Dove ci troviamo adesso? Ci sono molti programmatori curiosi sullo stato attuale di Perl 6.Qual è lo stato corrente di Perl 6?

Ci sono anche altri due argomenti aperti su on reddit e http://perlmonks.org/?node_id=835419 su questo.

+0

La mia teoria personale è che perl 6 sarà sempre una sorta di banco di prova per perl 5 funzioni che saranno supportate da nuove versioni di perl 5 e moduli come Moose e così via. –

risposta

13

Perl 6 non è pronto per la produzione utilizzando il più comune definitions of "producion ready" as per SO's own thread - le implementazioni non sono stabili e possibilmente mancano di tutte le funzionalità delle specifiche.

Please see this SO answer for details on the status as of 2008. Le specifiche del linguaggio sembrano stabili (almeno per quanto riguarda il post di collegamento), ma l'implementazione non è ancora disponibile.

quanto riguarda le date specifiche, as per this post il 04/08/2010, la prima major release del più lontano avanti Perl 6 implementazione - Rakudo (su Parrot VM) - denominato "Rakudo Stella 1.0" è indicativamente rivolge a Q2 2010 (il piano originale era previsto per aprile 2010 ma è stato spostato a causa di circostanze personali che coinvolgono lo sviluppatore principale).

Naturalmente, YMMV - Ho visto persone utilizzare un codice/progetti LOT meno stabile in produzione (incluso ciò che hanno scritto) rispetto allo stato attuale di Perl 6. Ma personalmente non inizierei nemmeno a sognare di implementare Perl 6 fino a quando non verrà rilasciato ampiamente per un po '.

Tuttavia, si ricorda un punto molto importante: quanto sopra non significa che Perl 6 è vaporware o che non dovrebbe essere imparato - suona come sta procedendo bene e quindi io personalmente intendo iniziare a scavare in esso (beh, ho già grazie a SO) prima del tempo quindi sono pronto per usarlo quando è stabilizzato un po '.

Inoltre, vorrei aggiungere che un grande pezzo di grande funzionalità Perl 6 è stato back-porting per Perl 5 (in 5.10-5-12, e vedere Perl6:: modules), in modo che il punto di imparare sopra Perl6 è estremamente rilevante anche se non si hanno piani immediati per distribuire Perl 6 stesso.

+2

grazie, perché molte persone coinvolte con Perl6 tendono a dire "dipende da quale sia la tua definizione di produzione pronta" che tipo di cazzate perché non c'è molto dissenso su questo ... è abbastanza chiaro che cosa significa pronto alla produzione – Cobalt

+0

Sì, è così chiaro. Perl 6 non è pronto per la produzione e DVK ha visto un codice molto meno stabile in produzione. – Quentin

+2

@David: nessuna contraddizione. Qualcosa essere in produzione non lo qualifica come "produzione pronta". Non secondo la mia definizione, ma la definizione ha votato come risposta accettata su SO. – DVK

23

In primo luogo, e soprattutto, seguire l'aggregatore di notizie Planet Six. Perl 6 sono inclusi incontri settimanali e blog degli sviluppatori principali e di molti membri della comunità, ed è un ottimo modo per tenere il passo con Perl 6.

Per avere un'idea di come Rakudo Perl, il principale Perl 6 implementazione sta facendo, controlla il Perl 6 Advent Calendar. Ogni giorno mostra un diverso aspetto di Perl 6 e la misura in cui è stato implementato al momento di Rakudo.

Aggiornamento (marzo 2012): perl6.org's feature comparison mostra l'avanzamento dell'implementazione di entrambi Rakudo e Niecza (un compilatore di targeting CLR, ad esempio .NET, Mono).


Perl 6, come una specifica, è ancora in fase di raffinamento e refactoring costante. Alcuni esempi di dove la specifica non è chiara: la gerarchia di oggetti, cosa dovrebbe e non dovrebbe essere parte della libreria di base, gestione della data, pigrizia, 'auto-threading' di giunzioni. Ma la maggior parte della lingua è stata finalizzata. Le specifiche sono molto ambiziose e IMHO è uno dei principali motivi per cui Perl 6 ha impiegato così tanto tempo per andare avanti.

In termini di implementazione, il progetto principale è Rakudo Perl 6, basato sulla Parrot VM.Ci sono forse una dozzina di sviluppatori dedicati e molti altri che stanno aiutando a testare, scrivere librerie, codice e documentazione. La maggior parte del lavoro di sviluppo è finanziato con sovvenzioni dalla Fondazione Perl e dalla comunità, quindi non c'è motivo di aspettarsi che si esaurisca.

Rakudo ha un sacco di bug e molte funzionalità mancanti. Solo di recente ha subito un enorme refactoring - il ramo 'ng'. Sfoglia qualsiasi sorgente Perl 6 esistente e troverai molti commenti che dicono "Rakudobug" o "Rakudo non ancora implementa questo ..."

Anche così, questo dipinge un'immagine ingiusta di Rakudo. La specifica del Perl 6 è a dir poco ambiziosa. Il linguaggio ha un numero folle di caratteristiche che ha richiesto anni di sviluppo per raggiungere il livello in cui sono oggi. Rakudo è certamente abbastanza completo da permettere alle persone di avere giochi scritti, basati su testo e wiki e altre applicazioni web, e sta migliorando ogni giorno. Gli sviluppatori hanno scritto circa 40.000 test unitari per Perl 6 finora, quindi è facile vedere miglioramenti nell'implementazione (attualmente Rakudo supera i 30k test o il 79% della suite di test)

Il primo "utilizzabile" (stabile) rilascio di Rakudo è noto come 'Rakudo Star'. È attualmente pianificato per il secondo trimestre 2010 (aprile-giugno). L'idea generale era di implementare una grande porzione di Perl 6 - non l'intero linguaggio, ma un utile sottoinsieme - e minimizzare i bug. Per quanto riguarda la produzione pronta, Perl 6 ha sempre avuto una data di rilascio di "Natale". Forse questo Natale, più probabilmente qualcos'altro. Ci vorrà molto tempo prima che tu possa usare l'intero Perl 6, senza bug, ma almeno stavamo per vedere una versione stabile molto presto, e speriamo che l'hype di Perl 6 salti fuori da lì una volta la gente scopre che è reale.

Se sei interessato a Perl 6, potresti considerare di essere coinvolto nella comunità. Dalla mia esperienza è una comunità molto amichevole (mi fa quasi impazzire di quanto siano simpatici tutti, anche su IRC). Installa Rakudo, prova a romperlo, bug ai file. Scrivi testcases. Scrivere implementazioni per funzioni di base, scrivere moduli. C'è molto da fare!

+4

@rjh - eccellente dettaglio. Diamine, questo post potrebbe essere la goccia che mi suggerisce di provare solo quello che hai suggerito (installando Rakudo e cercando di implementare le cose mancanti) se posso liberare un po 'di tempo quest'estate. +1 – DVK

+0

Questo è dicembre 2013 ora. Qualsiasi aggiornamento? È un progetto morto? Ho appena notato che ActiveState non offre più Perl 6. – Uri

+1

@Uri l'ultima volta che ho sentito, Rakudo si stava allontanando da Parrot come back-end primario perché causava molti problemi, sia con difficoltà di implementazione che con prestazioni. (Sebbene abbia raggiunto il concorrente .NET, Niecza.) Sono in corso gli sforzi per rimuovere il codice PIR e portare il backend NQP alla JVM. Oltre a questo, è solo un sacco di lavoro per finire l'intera specifica Perl 6, e ci vorrà molto tempo. Stanno ancora distribuendo uscite mensili, quindi è tutt'altro che morto. – rjh

1

blog interessante pubblicato oggi da Leon Timmermans su alcune delle differenze che escono in Perl 6.
Why Perl 6 Is Different Non un gran parlare di quando queste differenze verranno fuori.

8

Perl 6 è stato ufficialmente rilasciato pochi giorni fa, questo Natale 2015. Due cose molto importanti sono state rilasciate in realtà.

Prima e più importante è stata rilasciata la specifica ufficiale e ora stabile della lingua, Perl 6.c (c per Natale). La specifica è un insieme di oltre 120.000 test noti come Perl 6 arrosto (R epository o f Un ll S PEC T EST) che si trova su Github sotto perl6/arrosto.

In secondo luogo, è stata rilasciata una nuova versione di un'implementazione di Perl 6, nota come Rakudo. Rakudo è un compilatore Perl 6 in esecuzione sulle macchine virtuali MoarVM e JVM. Questa nuova versione di Rakudo punta alle specifiche del linguaggio 6.c e passa tutti i test su diverse architetture importanti. Maggiori informazioni sulla versione possono essere trovate su Github a rakudo/rakudo e in particolare nell'annuncio 2015.12 sotto rakudo/rakudo/blob/nom/docs/announce/2015.12.md.

Rakudo è abbastanza semplice da installare, personalmente raccomando di utilizzare rakudobrew che è un gestore di installazione Rakudo. Seguire le istruzioni qui https://github.com/tadzik/rakudobrew.Oltre a installare Rakudo e MoarVM, può anche installare Panda, un programma di installazione di Perl 6.

Come sviluppatore di software Perl 5 e Python di lunga data, devo dire che Perl 6 sembra essere un linguaggio estremamente potente e profondo che risolve molti dei problemi riscontrati con i linguaggi dinamici esistenti. Per prendere direttamente dall'annuncio Rakudo:

  • Mantiene i valori fondamentali di Perl: espressività, esecuzione del lavoro, influenza del linguaggio naturale e superamento dei limiti del design del linguaggio.
  • Ha una sintassi pulita e moderna, basata su costrutti familiari ma che rivisita e rivede le cose che ne hanno avuto bisogno.
  • è veramente multi-paradigma, permettendo elegante orientato agli oggetti, funzionale, procedurale e programmazione concorrente
  • serve come una grande lingua di colla, consentendo una facile vocazione di C/C++ (usando NativeCall) e rimanendo compatibile con Perl 5 (via Inline :: Perl5).
  • Fornisce costrutti componibili per lavorare con i dati asincroni e calcoli paralleli
  • drasticamente le riforme e stabilisce un nuovo standard nella sintassi regex, che scala fino a grammatiche pieno, abbastanza potente per analizzare Perl 6 si
  • Ha il supporto eccezionale Unicode, con le stringhe di lavoro a livello grafema
  • valori scoping lessicale e l'incapsulamento, consentendo un facile refactoring
  • è estensibile attraverso la programmazione meta-oggetto, gli operatori definiti dall'utente, e tratti

Tutte le informazioni che si desidera sapere su Perl 6 sono disponibili qui http://perl6.org/.

Problemi correlati