Perl è ancora una lingua utile e praticabile? [chiuso]


77

So che potrebbe essere stato chiesto prima, ma qui non va nulla ...

Perl è ancora qualcosa che sarebbe considerato utile? Se qualcuno fosse un nuovo programmatore (completamente nuovo nella programmazione o con solo pochi mesi / anni di esperienza), Perl sarebbe qualcosa da considerare utile da imparare?

Il Perl è ancora usato con frequenza? È ancora popolare?

O il Perl sta morendo rispetto a linguaggi come Python, Ruby, PHP, ASP.NET, ecc.?

Fondamentalmente si riduce a questo:

  • È ancora usato / è ancora usato frequentemente? Se sì, sta morendo? Se no, tornerà?
  • È qualcosa che varrebbe la pena imparare?
  • Come si confronta nella domanda con lingue come Python sia in popolarità che in usabilità / fattibilità? Linguaggi come Python o Ruby potrebbero essere considerati sostituti di Perl?

Inoltre, le versioni più recenti di Perl apporteranno davvero un grande miglioramento alla comunità Perl e forse riporteranno il Perl in difficoltà rispetto ad altre lingue?

MODIFICARE:

Ok, suppongo che qui sia una domanda migliore e riformulata:

Il Perl sta ancora crescendo o sta "morendo"? È ancora una lingua che vale la pena imparare e usare? In quali progetti "brilla" in realtà rispetto ad altre lingue? Cosa rende Perl una lingua da scegliere? In sostanza: il Perl sta diventando obsoleto rispetto ad altre lingue e, in tal caso, prevede che cambi o continui?

E grazie a tutti coloro che hanno risposto finora, la discussione è stata davvero interessante!


12
Non perdiamo prospettiva, secondo TIOBE è ancora tra i primi dieci, davanti a Ruby e persino a JavaScript.
Daniel,

Risposte:


60

Prima di tutto, è sempre meglio chiarire le ambiguità .

Le aziende parlano di Perl 5 quando parlano di Perl, ma su una terra lontana, al di là di un'isola pensante , la tribù del progetto per comitato sta ancora cucinando una pesante lastra di Perl 6 (ed è quasi pronta, con un motore scritto in Haskell e alimentato dalle lacrime degli dei )

Ok, detto questo, a cosa serve Perl 5 oggi?

  • sistemi / legami web legacy - alcuni semplicemente non moriranno

  • data mining / analisi statistica - il motore perge regex, anche se leggermente obsoleto (( PCREuna libreria scaricata, la riempie in ogni modo possibile ed è il PHPmotore predefinito ) è ancora buono per una semplice analisi

  • Amministrazione del sistema UNIX - Perl deve sempre essere installato su UNIX.
    Puoi contare sul fatto che è prontamente disponibile anche su Mac OS X.

  • prototipazione di rete : molti esperti di rete hanno imparato il Perl quando era di gran moda; e fanno ancora le loro prove di concetto con esso.

  • sicurezza : anche molti esperti di sicurezza necessitano di una prototipazione rapida . (e correzioni automatizzate veloci) Perl può, e lo fa, coprirlo.

L'ampia collezione CPAN è molto utile quando si tratta di prototipi.
(Le batterie potrebbero non essere incluse, ma sono ancora lì, sullo scaffale )

Ricorda gli svantaggi , tuttavia:

  • Il supporto agli oggetti in Perl fa schifo , benedici i riferimenti e fai cose cattive in nome degli oggetti, quindi ti chiedi perché hai preso tutti i problemi in primo luogo.
  • Leggere il Perl di altre persone è più di un mestiere, è scienza e anche doloroso .
  • Perl è elegante, ti fa pensare elegante, ti fa sentire elegante, diventi una rockstar di programmazione . Ora, pensa a alzarti e andare a lavorare in un ufficio pieno di rockstars : è una "barca che dondola" duramente. Aspettati fluttuazioni selvagge.

19
@WorldEngineer ha concordato, ma la cosa peggiore è che proviene da Perl, Ruby non si sente affatto elegante : sembra solo una versione di perl muta, poco performante.
ZJR,

12
Vedo solo uno svantaggio lì. Personalmente, mi diverto a benedire i miei riferimenti, ma, per quelli che non lo fanno, c'è Moose (su CPAN), che è un sistema di oggetti abbastanza buono che altre lingue lo stanno copiando. E, mentre adoro la sobrietà, non ho incontrato così tante rockstar ossessionate da sé nel mondo Perl. Ci sono sviluppatori molto più seri e disciplinati (a cui piace scatenarsi nel loro tempo libero) nella comunità Perl di quante siano le rockstar. (Nego esplicitamente di essere un programmatore rockstar fino a quando e a meno che le donne non inizino a lanciarmi le mutandine mentre scrivo codice.)
Dave Sherohman,

3
@johannes deve ancora occuparsi della Legge Van Rossum: "Whenever you find a python executable preinstalled, it's the wrong version"Corollario:"sometimes the right version is available, but it has the wrong name"
ZJR

2
Il Perl è ancora abbastanza grande nello spazio bioinformatico.
dietbuddha,

3
+1 per l'amministrazione del sistema. Non ho mai visto un sistema operativo basato su unix non includere perl. L'ho anche visto in alcuni sistemi operativi Linux integrati che utilizzavano Busybox per le loro
aree

23

Secondo me, dopo aver lavorato di nuovo con Perl dopo alcuni anni in cui non l'ho quasi usato, è meglio che mai. Perl 5 ha un sacco di meraviglia in CPAN, anche OO può essere fatto in questo momento. (Dai un'occhiata a Perl moderno )

Perl 5 è tutt'altro che morto. Dai un'occhiata ad alcuni siti Web Perl e CPAN e all'orizzonte c'è una lingua completamente nuova - Perl 6.

Ci sono molte risorse sul web, blog e presentazioni sul perché non è male e perché ha una cattiva reputazione che non merita - basta dare un'occhiata a quelli per capire.


7
Secondo me CPAN è fantastico se hai bisogno di una ruota di qualsiasi forma, ma meno grande se hai bisogno di una fabbrica di automobili.

@ ThorbjørnRavnAndersen CPAN è fantastico se hai bisogno di una ruota di qualsiasi forma. Il problema è che shape($wheel) == 'round' ? available_in_cpan($wheel) : false;non è un filtro valido.
Jason Lewis,

Solo perché OO esiste in Perl non significa che sia effettivamente buono.
Kirbyfan64sos,

22

La cosa principale che Perl deve ancora fare è CPAN - ci sono così tanti moduli pre-scritti che è molto facile trovare qualcosa di cui hai bisogno.

Detto questo, non imparerei il Perl. Perl è un ottimo linguaggio per le persone che lo conoscono già (come me), ma Python sembra essere (dal punto di vista del mio outsider) un linguaggio migliore per fare il tipo di file e testo veloce e sporco che analizzava cose che Perl era il " go-to "lingua per.


E pensi che questo dia un vantaggio rispetto ad altre lingue? O lo porta semplicemente uguale ad altre lingue. Ad esempio, il framework .NET sembra essere ricco di vari metodi e classi utili.
Bob,

6
@Paul Tomblin - È un modo piuttosto rozzo per dirlo. "La cosa principale che il Perl ha ancora da offrire ..." <- La cosa principale che C / C ++ ha in serbo per loro è che molto software è ancora scritto in loro. Oltre a ciò, sono spazzatura.
Rook,

D'accordo con Idigas, dal momento che si potrebbe dire lo stesso di Java con molti pacchetti ...
Izkata,

1
La domanda non era "È C ++ o Java un buon linguaggio". La domanda era se il Perl fosse ancora praticabile. E ci sono due motivi per cui sto ancora scrivendo le mie app Web in Perl: CPAN e ho un sacco di codice che ho già scritto.
Paul Tomblin,

7
Se stessi iniziando ora, probabilmente userei Python. Ma io uso Perl perché sono bravo in Perl.
Paul Tomblin,

19

Quando ho deciso di imparare il Perl come mia prima lingua qualche anno fa, c'erano diversi fattori che hanno guidato la mia decisione:

  • c'è molto buon materiale di riferimento sulla lingua?
  • posso trovare facilmente aiuto con le mie domande?
  • è la lingua in uso attivo da una popolazione diversificata?
  • ci sono progetti attivi che mi aiuteranno con i miei obiettivi?

Per me la risposta è stata sì. Sono un graphic designer. Ho imparato HTML e CSS anni fa, ma dovevo migliorare le mie capacità dopo che i clienti volevano di più dai loro siti Web. Avevo usato vari framework php che mi hanno dato il bug per imparare davvero a programmare. Ho fatto molte ricerche e ho trovato progetti ben supportati come Template Toolkit e nuovi come Perl Dancer e Mojolicious. La documentazione fornita con Perl è stata molto utile così come la biblioteca di pubblicazioni.

Ho trovato le liste di posta Perl piuttosto amichevoli per i principianti e attive. Su PerlMonks persone da tutto il mondo vengono con domande e risposte per una vasta gamma di applicazioni. Esistono diversi siti di notizie, blog e stream attivi Perl. Queste risorse mi hanno insegnato molto sul Perl e sulla programmazione.

Certo, questa è la MIA esperienza. Non so esattamente quante persone accedono a questi siti, si iscrivono alle liste di posta o costruiscono le loro applicazioni web, ad esempio usando Perl. Inoltre, non posso commentare quanto la mia esperienza sarebbe stata migliore o peggiore se avessi scelto un'altra lingua con cui iniziare. Non dubito di poter trovare molti degli stessi aspetti positivi nelle comunità di altre lingue. Posso dire di essere ancora felice della scelta che ho fatto.


Ho imparato il Perl come prima lingua nel 1996 perché ero appena passato a Linux da Windows per il mio sistema operativo principale. Perl non è mai stato un grande linguaggio web (sebbene PHP sia la pura distillazione di tutto il male che Perl ha da offrire), ma è fantastico come sostituto degli script bash. Il problema si presenta quando le persone cercano di fingere che esista un proiettile d'argento.
Jason Lewis,

16

La popolarità di una lingua ha poco a che fare con la sua fattibilità o usabilità. Perl è ancora una lingua molto utilizzabile. La sua reputazione, meritata o meno, come ostile ai neofiti alla fine significava che nessuno nuovo l'avrebbe appreso se avessero potuto aiutarlo. L'unica ragione per cui non lo uso più è che nessun altro che conosco lo utilizza più.


5
Quindi l'affermazione "L'unica ragione per cui non la uso più è che nessun altro che conosco la utilizza più" indica il fatto che la popolarità forse ha qualcosa a che fare con la sua fattibilità o usabilità? Comunque, non è questo il punto della mia domanda, quello che voglio davvero sapere, Perl è ancora utile? Quando lo scegli su altre lingue (come in, quando brilla davvero)?
Bob,

1
I lanuage esistono come mezzo di espressione per le altre persone, dicendo che quanto una lingua sia popolare per il valore che presenta non è fondata secondo me.
errori del

4
Questo è molto basato sull'ambiente ... Se sei un * nix sysadmin, le tue scelte per svolgere attività comuni si riducono a Perl vs. sed + awk + grep + bash ... e Perl è generalmente più facile che ricordare 4 sintassi per un sceneggiatura unica.
Jason Lewis,

12

Per la cronaca, sto programmando in Perl 5 da circa 15 anni, quindi sono un po 'di parte. Detto questo, mi piace molto Perl. Non ascoltare gli oppositori e non pensare che la sua età sia in qualche modo un indicatore del suo scaffale dal vivo. Il modo migliore per guardare Perl è vederlo in confronto ad altre lingue:

  • PHP - PHP è un linguaggio di programmazione web abbastanza buono; non fraintendermi. Ma è solo un linguaggio di programmazione web. Anche le applicazioni web hanno bisogno dei loro cronjob per eseguire i processi di pulizia e devi fare alcune cose strane per farlo accadere. Non importa dover scrivere uno script rapido per l'amministratore UNIX o analizzare un file di testo. Inoltre, PHP non ha CPAN.

  • Ruby - La lingua è troppo nuova e "script kiddie" per i miei gusti. L'unica cosa che sento di Ruby è Ruby on Rails. Perl ha Catalyst e Dancer (come framework MVC), che sono maledettamente MVC, ma non è la pietra angolare del linguaggio. Non troverai "Ruby" come requisito nelle offerte di lavoro presto (se mai). Inoltre, Ruby non ha CPAN.

  • Python - Nelle parole di Larry Wall, Python è solo olio di serpente. Python si prende cura degli spazi bianchi e l'ultima lingua che ho usato per interessarmi degli spazi bianchi è BASIC. Inoltre, come BASIC, è stato essenzialmente progettato per essere un linguaggio per principianti facile da usare. Finalmente, nessun CPAN qui.

  • Java : Java è un linguaggio figlio problematico. L'idea era quella di avere questa macchina virtuale che gira su qualsiasi piattaforma, ma a causa dell'enorme popolarità della lingua nei corsi universitari, vedi le applicazioni Java ovunque dove non dovrebbero essere. Ad esempio, non dovrebbero esistere applicazioni Web interne basate su server. È un singolo server con le specifiche che definiscono e viene racchiuso in una VM separata con un footprint di memoria limitato. Java è gonfio e non hanno CPAN.

  • C # - In realtà sto usando questo linguaggio da un po 'di tempo, e sembra che abbia formato una relazione amore / odio con esso. Essere in grado di sovraccaricare i metodi con parametri diversi è bello e divertente. Ma, se vuoi una lingua che parlerà di ogni riga di codice sul tipo casting , allora C # è per te. Mio Dio, vuole che tu metta il casting esplicito OVUNQUE! Rendere le lezioni divertenti, ma all'improvviso ti rendi conto che stai spendendo più tempo a creare lezioni per far sì che il dannato linguaggio funzioni SEMPLICEMENTE che scrivere realmente codice.

    Inoltre, C # non ha ... ok, ha .NET, che è davvero buono ed esteso. Tuttavia, mi piace ancora CPAN perché puoi ancora scrivere i tuoi moduli e lamentarti con l'autore di un bug o di un difetto di progettazione. E sono tutti gratuiti. Inoltre, Perl sta lavorando su Perl.NET in futuro, quindi potremmo progettare applicazioni Windows tra non molto.

Perl è un linguaggio eccezionale che ha:

  • Espressioni regolari - Se è una cosa che Perl può fare bene, è la manipolazione del testo. Sì, molte lingue hanno espressioni regolari, ma Perl le ha quasi inventate, e c'è una ragione per cui grep ha una modalità "Perl Regular Expression" o perché Oracle ha una sezione su "Estensioni influenzate da Perl nelle espressioni regolari Oracle". È integrato e non richiede alcun modulo.

  • Flessibilità : sono disponibili tre tipi di variabili di base: scalari, array e hash. Questo è tutto. Questo è tutto ciò di cui hai bisogno. Non hai un int, byte, stringa o nessuna di quelle schifezze. Perl lo capisce bene. E puoi usare i riferimenti che desideri senza temere perdite di memoria o causare il crash dell'intero PC. La lingua funziona e basta.

  • Portabilità - Perl funziona alla grande sul web. Funziona alla grande in UNIX. Funziona anche abbastanza bene in Windows. Non è forato a una singola funzione. È un tuttofare, ma anche un maestro di (principalmente) tutto.

  • È facile fare molto con un piccolo codice - Dammi un file vuoto 1K e posso scrivere ogni tipo di cose con quello spazio. Perfino un one-liner Perl è ottimo da aggiungere in una pipe della riga di comando.

  • CPAN - Non posso sottolineare quanto sia bello trovare praticamente tutto ciò di cui hai bisogno. Che cos'è "qualsiasi cosa"? Bene, che ne pensi dei moduli DB per ogni database o cosa tu possa immaginare, che vanno da Oracle a iPod a CSV ad Adabas a Yaswi? Che ne dici di diversi server Web con funzionalità complete? Che ne dici di un lettore di file Excel, di un modulo SNMP o di un modulo che legge i commenti per le righe di debug o moduli che ti aiutano a programmare più velocemente? Un progetto che sto realizzando in questo momento sta scrivendo un generatore dinamico di mappe Terraria, che si arricchisce di un modulo esistente chiamato Games :: RolePlay :: MapGen. .NET non avrebbe mai avuto qualcosa del genere.

    Inoltre, è semplicissimo installare qualsiasi modulo tramite CPAN. Ricevilo da Debian. Installalo direttamente da CPAN. Fa un buon lavoro come apt-get nel risolvere le dipendenze. Non ho problemi a dire al mio amministratore di sistema di installare il modulo X da CPAN, dato che è solo un semplice comando da una riga.

Sì, ha i suoi difetti, e sì, sono di parte, ma probabilmente hai già sentito troppi aspetti negativi. Non superano gli aspetti positivi, non di colpo.


14
-1 principalmente per non riconoscere che altre lingue hanno strumenti altrettanto buoni se non migliori di CPAN. Maven Central per Java per esempio? Ha più artefatti di CPAN ed è un 0-liner per installare artefatti Maven poiché vengono identificati automaticamente attraverso l'analisi delle dipendenze del modello a oggetti del progetto. Inoltre ho meno esperienza con Ruby Gems ma credo che siano approssimativamente equivalenti a CPAN.
Mikera,

8
PHP ha la PERA. E non è solo un linguaggio di programmazione web.
MattBianco,

25
Non direi che sei un po 'di parte. Sei chiaramente di parte. Non riesco a credere che tu possa leggere Python principalmente perché ha uno spazio bianco significativo e perché Larry (certamente non una fonte oggettiva qui) ha usato l'espressione olio di serpente. E non ci sono offerte di lavoro per Ruby? Quando hai visto il mercato del lavoro l'ultima volta? Almeno sforzati di provare a stabilire le credenziali di Perl.
Muhammad Alkarouri,

6
-1 per una prospettiva chiaramente distorta e non ricercata su altre lingue. Sono d'accordo che Python è olio di serpente, ma Ruby == "script kiddie" è assurdo. Non ho mai visto un tentativo di intrusione basato su Ruby su nessuno dei server che gestisco. È principalmente Python. PHP è in qualche modo un linguaggio di programmazione accettabile? Shenanigans. I tuoi commenti su C # dimostrano una sorprendente ingenuità per quanto riguarda la digitazione e / o l'orientamento agli oggetti. Attenersi a Perl, amico. Seriamente, adorerò sempre Perl perché è stato il mio primo "vero" linguaggio di programmazione ed è geniale per i compiti di amministratore di sistema, ma questa risposta è peggio che cattiva.
Jason Lewis,

8
+1 Per aver scoperto ogni lingua che io abbia mai amato (o odiato) - ovviamente tranne Perl. :-)
jpaugh

12

Le prestazioni sono uno dei motivi principali per optare per il perl. Rispetto a Python, Ruby o ad uno qualsiasi dei linguaggi di scripting basati su JVM è velocissimo.

Questo è il motivo per cui non è mai stato sostituito nello spazio di data mining, tutte le altre lingue (freebie) sono più lente quando si tratta di gestire grandi volumi di dati.


6
Potete fornire supporto / parametri di riferimento per questa affermazione? L'IT mi sembra che gli ultimi benchmark che ho visto per Perl contro Ruby / Python abbiano favorito quest'ultimo, esp. quando si includono implementazioni alternative di quest'ultimo.
Jason Lewis,

2
Qualsiasi commento sulle prestazioni deve essere una generalizzazione a meno che non vengano citati rilasci e ambienti specifici. Molti segni di riferimento là fuori - hentenaar.com/serendipity/index.php?/archives/… onlyjob.blogspot.com/2011/03/… sono piuttosto tipici. Hai ragione, le ultime versioni di ruby ​​sono piuttosto veloci, ma, perl ha rilasci regolari di "miglioramento delle prestazioni", quindi non dovrebbe avere problemi a tenere il passo. LUA batte tutto.
James Anderson,

Lua è piuttosto ardente.
Jason Lewis,

12

Perl ha il suo posto. La sua "cattiva reputazione" è generalmente dovuta alla sua grande flessibilità nel fare cose che dovrebbero davvero essere fatte da uno strumento diverso.

Se ti poni la domanda "Cosa sto cercando di ottenere? E ci sono strumenti adeguati per farlo?" allora fai parte del percorso lì.

Se stai scrivendo uno script veloce, allora ha senso usare un linguaggio di scripting. Se vuoi creare un'applicazione complessa, allora "potresti" scriverla in Perl, ma probabilmente non dovresti.

Tuttavia, poiché la tua domanda riguarda un programmatore nuovo, posso suggerire di lasciare Perl da solo per ora. Semplicemente perché imparerai meno cattive abitudini da una lingua meno flessibile.


3
Va bene, ma Python è un'opzione perfettamente praticabile anche per creare uno script veloce, ma puoi anche allungarlo per creare programmi più grandi. Lo stesso non è vero per Perl? Questo rende Python migliore di Perl?
Bob,

@Bob: penso che sia principalmente quello in cui sei abituato a scrivere e i tuoi gusti. A volte, c'è anche una comoda libreria perl che non hai in Python e viceversa.
Dagnelies,

1
@Bob: gli consiglierei di provare prima Python, è più adatto a nessuno. Quindi, gli direi di scegliere una lingua completamente diversa come seconda lingua, come Scheme.
Dagnelies,

1
@Bob: l'intero framework .NET è disponibile solo su Windows. Nello spazio Unix / Linux, Perl è un ottimo linguaggio per sostituire gli script di shell, eseguire l'amministrazione del sistema e tutto ciò che comporta molta elaborazione di testo e non molto altro. Fa direttamente le cose per le quali (per ultimo ho guardato) Python aveva bisogno di un po 'di struttura. Ciò rende generalmente Perl un peggior linguaggio di programmazione generale, ma migliore per le sue applicazioni più specializzate.
David Thornley,

1
@Bob In realtà, questo è un punto interessante. Perl è davvero utile se hai uno script shell che sta sforzando i limiti di bash. Perl lo accetta abbastanza facilmente, dato che puoi semplicemente mettere i backtick in giro per la maggior parte dei comandi e funzionerà comunque.
Stephen Gross,

12

Sono stato attratto da Python per il suo layout - la struttura a blocchi è "ciò che vedi è ciò che ottieni" - e non capisco perché ci sono persone che ne rimandano. Penso che sia stata ed è una buona idea.

Sono tornato al Perl, però. Sembra solo meglio pensato come uno strumento pratico. Nella teoria dell'informatica, Python e Ruby sono "migliori". Ma lavoro nel mondo reale.

Ruby e Python sono più alla moda tra i bambini appena usciti dal college. La maggior parte dei programmatori che sono su Facebook seguiranno la moda attuale e andranno con Ruby o Python. Il post originale lo illustra: si fonde "Ne vale la pena" con "È ancora popolare?"

Non so né mi interessa se Perl è "popolare" in un mondo di Facebook. È probabilmente il linguaggio di scripting più utilizzato tra le persone che ottengono molto, il che è una cosa molto diversa. Alcuni dei commentatori che pensano che la loro lingua preferita abbia una risorsa paragonabile a CPAN non hanno idea di quanto sia ampio e profondo CPAN.


5
Uno spazio bianco significativo è un'idea terribile. Lo è sempre stato, lo sarà sempre. Detto questo, anche se uso Ruby ovunque abbia senso, ho ancora alcuni script Perl per compiti di amministratore di sistema che non avevo motivo di riscrivere in Ruby. Perché? Funzionano bene e sono nel punto debole di Perl. Perché creare più lavoro?
Jason Lewis,

1
Costringere le persone a rientrare correttamente è una buona idea indipendentemente dalla lingua. Le lingue migliori (come Python) applicano semplicemente più forza.
Brendan,

10

Perl è il linguaggio per scrivere strumenti usa e getta. Esistono varie altre applicazioni in cui Perl è più o meno persistente e utile, ma se non si dispone di un comando shell per fare una cosa strana, se è necessario uno stub per acquisire alcuni dati da un socket dispari, se si dispone di un file di registro o di un database e necessità di estrarre alcuni contenuti in un modo che è fuori dalla portata di SQL, se è necessario estrarre un paio di immagini dal server o se i modelli di pagina Web contengono tutti lo stesso tipo di errore e si desidera risolverli tutti - frustate uno script Perl di 10 minuti è la strada da percorrere.

Scrivere la stessa cosa in Shell sarebbe probabilmente possibile ma a causa di strani avvertimenti sulla sintassi della shell, ci vorrà più tempo e può essere molto più difficile. Scrivere questo in qualsiasi linguaggio "professionale" come C ++, C #, Java ecc. Richiederà circa un'ora al confronto. Scrivere questo in un linguaggio di scripting concorrente come Python, Ruby o PHP è un'alternativa praticabile e probabilmente impiegherà fino al 20% in più per scrivere.

Sì, i programmi in altre lingue saranno più gestibili e più facili da leggere. Ma se hai bisogno di una soluzione ADESSO, Perl è la strada da percorrere.


8

Controlla le "recenti arrivi a CPAN" - pag . Ogni giorno vengono caricati> 20 nuovi moduli o moduli aggiornati. Penso che il numero medio di caricamenti giornalieri sia aumentato lentamente ma costantemente. Questa attività è un segno di una lingua che sta morendo? No!

Mi ha sempre colpito il modo in cui alcuni moduli importanti (ad esempio per la programmazione Web o le interfacce per i driver RDBMS) sono stati mantenuti e perfezionati per molti anni. Spesso dall'autore originale o da nuovi manutentori. Spesso questo ha creato un codice molto maturo.

Per inserire un modulo in CPAN, gli autori sono incoraggiati a fare molto per mantenere la compatibilità con le versioni precedenti (con le versioni precedenti di perl 5) e l'indipendenza della piattaforma. Vedere ad esempio http://matrix.cpantesters.org/?dist=DBI (DBI = interfaccia del database, livello di astrazione)

Anche la lingua stessa: sono un po 'perplesso da tutte le nuove funzionalità che sono state incluse nella lingua da 5.10, 5,12., 5.14. Non ho imparato a sfruttare le nuove funzionalità. Perl si è evoluto troppo velocemente per me!


7

Ho imparato il Perl 4 e 5 durante l'amministrazione del sistema negli anni '90. Oggi faccio la programmazione Java (dove invocare Perl di solito non è desiderabile), e uso ancora Perl di tanto in tanto sul mio computer di sviluppo. Questo di solito serve solo per fare datamining su file di registro in cui le espressioni regolari in Perl e le impalcature per gli analizzatori di testo in Perl lo rendono molto semplice da eseguire su una riga di comando.

Essenzialmente lo uso oggi come awk sugli steroidi. Per questo è geniale.

Una delle caratteristiche di Perl è che esiste più di un modo per fare quasi tutto. Questo ti consente di scegliere quello che si adatta al tuo modo di pensare, il che è fantastico quando si tratta semplicemente di hackerare uno o due elementi, ma non è così grande quando si deve capire il codice Perl di altre persone come di solito scelgono un altro modo per farlo che si adatta al loro modo di pensare.

Considererei Perl uno strumento molto utile che potresti voler imparare se ti concentri solo su ciò che le espressioni regolari possono fare per aiutarti a setacciare i tuoi file di testo. Stai lontano da qualsiasi cosa abbia a che fare con gli oggetti.


Quindi diresti che è principalmente utile per gli script rapidi per gestire il testo?
Bob,

Secondo me sì, allora è davvero molto buono. PU CAN fare anche altre cose, ma quelle non sono altrettanto cotte.

1
Mentre Perl è molto bravo a gestire il testo attraverso le sue espressioni regolari, non è necessario esaminarlo se conosci Python o Ruby (o forse PHP), direi, dal momento che sono anche molto bravi con le espressioni regolari. Python è un po 'più prolisso, però, ma è anche sicuramente più pulito.
Eric O Lebigot,

@EOL, ma né Python né Ruby né PHP possono superare l'impalcatura per gli analizzatori di testo. Vedi ad esempio l'opzione "-i".

@ ThorbjørnRavnAndersen: D'accordo, per una fodera: gli oneliners di Python (opzione -c) sono davvero più lunghi. :)
Eric O Lebigot,

7

Per un po 'lo sviluppo di Perl5 è rimasto fermo a causa dell'attenzione su Perl6 che ha causato un lungo ritardo tra il rilascio di 5.8 e 5.10. Da allora la community ha davvero iniziato a capire che Perl5 e Perl6 sono lingue diverse e recentemente ci sono state nuove versioni molto regolari.

Di recente Perl ha vinto un concorso di app Web usando Catalyst (anche se preferisco Mojolicious ) e alcune delle nuove pratiche Modern Perl apportano molte idee OO più pulite a Perl con cose come Moose.

A mio avviso, come sviluppatore di Perl, Perl ha una grande eredità e un futuro brillante non solo essendo il nastro isolante che tiene insieme le reti aziendali, ma anche un posto nel nuovo entusiasmo delle applicazioni web.


3

Non sono un programmatore esperto. Ma ho trovato Perl abbastanza facile da imparare (ho usato il libro sui cammelli), sempre un piacere, e PerlMonks è la comunità di aiuto più amichevole nel paese della programmazione. Sembra che Perl abbia perso il suo fascino sessuale in termini di assunzioni a Ruby e Python, ma solo in alcuni settori (in particolare il web).


3

Se conosci perl, è più facile imparare Microsoft Powershell. Per quanto riguarda la sintassi di PowerShell, non ha radici Perl , ma Powershell ha preso molte caratteristiche e concetti dalla lingua Perl, ad esempio, dalla parte superiore della mia testa: la variabile $ _, prefisso array con @ e stringhe / valori scalari con $, convenzioni sui file per la denominazione e l'archiviazione dei moduli e, in qualche modo, il caricamento automatico, per citarne alcuni.

Quindi, se conosci Perl, ti tornerà utile, ed è un po 'più facile imparare Powershell, o afferrare la mentalità di Powershell o mantenere il linguaggio di Powershell nella tua memoria a lungo termine. Incontrare Powershell senza un po 'di background perl è probabilmente un po' più strano. Sto solo dicendo.

Ovviamente il linguaggio Powershell ha aggiunto nuove cose, in particolare la sua compatibilità con .NET, e non ha continuato nessuna delle funzioni / operatori di Perl che forniscono "compatibilità con le versioni precedenti" con gli strumenti della riga di comando unix.


2

Grant McLean ha appena caricato un cortometraggio basato sull'evoluzione di mapofcpan.org , che mostra il modo in cui il CPAN si evolve nel tempo con un modo visivo in stile mappa. È piuttosto autoesplicativo sulla vitalità della comunità. Non morire.

Perl sta sicuramente soffrendo per la sua cattiva reputazione, a causa di molte leggende e perché la sua comunità non vuole e non cerca di farla diventare il linguaggio di programmazione più alla moda del mondo. È molto difficile capire perché così tante persone siano assolutamente convinte che sia un linguaggio orribile. Puoi scrivere un codice inquietante con qualsiasi lingua. Perl ha le migliori pratiche come qualsiasi altra lingua, devi solo implementarlo in più di un modo per farlo basare la filosofia.

Riesco a vedere una ragione molto triste per questa cattiva reputazione: per molto tempo, i siti Web delle comunità Perl hanno avuto progetti di interfaccia utente molto brutti (proprio come perlmonks.org per esempio). Personalmente, non mi interessa davvero , forse vengo anche a Perl perché per questo motivo: non un sacco di UI di siti Web alla moda, ma puoi fidarti degli strumenti, della community con molta più fiducia perché non cerca di essere più bello di quello che è. Tuttavia, gli strumenti di qualità non significano che non dovresti concentrarti sull'aspetto, e alla fine è una specie di errore non occuparti dell'aspetto.

Ad esempio, un mio amico (a cui piacciono le lingue più alla moda) mi ha detto che l' attuale logo Perl6 è orribile e che sarà un problema attrarre giovani persone in Perl. Molto più un problema che con una pietra brillante o qualsiasi altro logo ben progettato .

Credo che sia una ragione molto triste per l'impopolarità, ma questo è ciò che governa il mondo.


Se non mostrerai attenzione ai dettagli sul tuo logo, perché dovrei supporre che mostrerai attenzione ai dettagli nei dettagli più profondi della tua lingua? Non è solo che il logo sembra male, è che il cattivo logo sente sintomatico di una cultura che non dà valore come le cose vengono presentate, e che rafforza lo stereotipo dietro tutto il "scrivere solo la lingua" scherzi
Racheet

Ho sentito di persone che lavorano sulla cattiva reputazione. Queste persone sono sostenitori del Perl moderno e sviluppo test-driven. Siti web come builtinperl.com , questub.io stanno cambiando il modo in cui dovremmo considerare il caso Perl. Anche Duck Duck Go è un enorme successo, nessuno può dire che non gli importa di come vengono presentate le cose. Anche metacpan.org è stato un modo per offrire all'utente CPAN (il principale punto di forza del Perl) una nuova esperienza attraverso la visualizzazione di codice, documentazione e moduli di ricerca con una bella interfaccia utente. Non credo nei loghi delle lingue: C ha un logo? Una lingua non è un marchio.
Smonff,

1

Perl sicuramente non sta morendo. Non è mai stato così pubblicizzato come in altre lingue.

Sebbene sia vero, che il Perl stesso è una lingua antica, ha una comunità vibrante e molto produttiva, il cui valore è nella biblioteca CPAN. Non credo che nessuna lingua abbia una biblioteca estesa e completa come CPAN. Nulla si avvicina nemmeno. In CPAN troverai migliaia di moduli e framework, che fanno praticamente qualsiasi cosa tu possa immaginare. Hai bisogno di un web server? C'è HTTP :: Server. Hai bisogno di un database autonomo? C'è Muldis :: DB. Qualunque siano le tue esigenze, di solito troverai diversi moduli che soddisfano le tue esigenze, devi solo scegliere quello che si adatta meglio alla tua app.

Per quanto riguarda Ruby, Python e altri concorrenti, penso che una sana competizione sia stata un enorme vantaggio per Perl. Qualunque cosa che altre lingue ottenessero, la comunità Perl riscrisse in Perl. Ad esempio, quando Ruby stava volando sul successo di Rails, Perl ha ottenuto Dancer, che è per molti versi migliore di Rails.

Perl non è sicuramente morto, né sta morendo. Non c'è proprio nulla di appariscente che lo circonda, non c'è compagnia, che trarrebbe beneficio dall'aver incoraggiato Perl, quindi non ottiene molta attenzione da parte dei media, e non tutti i bambini conoscono Perl, quindi se ne parla di meno.

Sono passati più di 6 mesi dal tuo post originale. Se non hai ancora deciso, fatti un favore e impara il Perl.


0

Sto usando il perl per lo sviluppo di giochi web dagli anni '90, e dopo una pausa di 3 anni, sono d'accordo con il poster precedente. Torno e trovo che si è evoluto molto al di sopra e al di là di dove l'ho lasciato.

Sta morendo? Non una possibilità.

È utile? Sarei perso senza di essa. Forse sono solo io, ma dalle altre risposte, direi che è una creatura vivente molto attiva.


-6

Ho acquisito la maggior parte della mia esperienza web professionale con PHP ma, man mano che crescevo come sviluppatore, le cose sono diventate un po 'più impegnative, molte attività che PHP semplicemente non ha potuto svolgere o svolge in modo gravemente inefficiente. Avrei potuto alzare le mani ma invece (grazie a google) mi sono ritrovato in sessioni ssh sfruttando libreoffice, ffmpeg, imagemagick per scrivere funzioni post process per PHP. Non l'ho mai usato prima di andare per PERL .. principalmente perché Perl si trova perfettamente sotto lo stack LAMP.

(1) è preinstallato su tutti i server LAMP o almeno ha un nuovo numero di giri. (2) ha un fantastico repository CPAN per farti risparmiare un sacco di tempo. (3) più veloce / più sicuro per eseguire attività in cui PHP in esecuzione su Apache fallisce. (4) molto simile a PHP e facile da imparare.

Mescola le idee con PHP, cucina con PERL usando BASH come desideri, capovolgi secondo MySQL, poi servi con HTML5 e un pizzico di jQuery. È un'ottima ricetta.


1
Qualcosa per sostenere queste affermazioni?
Austin Henley,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.