Perché Perl è installato di default con la maggior parte delle distribuzioni Linux?


Risposte:


27

La risposta è / non è sexy, a seconda del tuo punto di vista.

Perl è molto utile. Molte utilità di sistema sono scritte o dipendono da perl. La maggior parte dei sistemi non funzionerà correttamente se Perl viene disinstallato.

Alcuni anni fa FreeBSD ha fatto molti sforzi per rimuovere Perl come dipendenza per il sistema di base. Non è stato un compito facile.


Perl è usato nel kernel stesso? Sto guardando questo articolo che afferma che il kernel utilizza circa 2.200 righe di codice Perl Stima delle dimensioni di GNU Linux . Inoltre, ciò che ha portato alla domanda; durante l'installazione di Arch Linux, ho notato che Perl è installato nel pacchetto base , ci sono utility di base che usano Perl?

9
@JoshVoigts il kernel stesso non usa perl no. Tuttavia, il processo di compilazione del kernel utilizza una buona quantità di perl. Per quanto riguarda Arch, qualcun altro dovrà rispondere a quello.
Patrick,

3
Per curiosità, con cosa ha sostituito FreeBSD Perl?
Shadur,


7
Il sistema di base di FreeBSD è fondamentalmente un gigantesco repository di codice sorgente con il kernel, i programmi di utilità e tutto il resto. Quindi stavano mantenendo il proprio fork di Perl in quel repository, che era un grande sforzo e difficile tenersi aggiornati con il Perl a monte. Quindi aveva senso per loro eliminare Perl dal sistema di base e installarlo semplicemente come una porta, che è molto più facile da aggiornare (perché stanno solo recuperando le versioni Perl a monte e compilandole).
cjm,

24

In di Larry Wall originale Perl v1.0 distacco al comp.sources.misc newsgroup il 18 dicembre, del 1987, ha detto:

Se hai un problema che normalmente userebbe sed o awk o sh, ma supera le loro capacità o deve correre un po 'più veloce e non vuoi scrivere la cosa sciocca in C, allora il perl potrebbe fare al caso tuo.

In una mostra molto più tardi , ha elaborato un po 'di più:

Ma le frustrazioni della programmazione della shell Unix hanno portato direttamente alla creazione di Perl, che non ho davvero tempo di raccontare. Ma essenzialmente, ho scoperto che lo scripting della shell era intrinsecamente limitato dal fatto che la maggior parte dei suoi verbi non sono sotto il suo controllo e quindi ampiamente incoerenti tra loro. E i nomi sono impoveriti, limitati a stringhe e file, con tipologia chissà quale ...

Più distruttiva era la mentalità secondo cui si trattava di un universo unidimensionale: o hai programmato in C o hai programmato in shell, perché sono ovviamente alle estremità opposte di One True Continuum. Perl è nato quando ho capito che gli script non dovevano sempre essere visti come l'opposto della programmazione, ma che un singolo linguaggio poteva essere abbastanza buono per entrambi. Ciò ha aperto una grande nicchia ecologica. Molti di voi hanno visto il mio vecchio diagramma a conchiglia, con le due dimensioni della manipolosità e della frusta.

Oggi, Perl è un'alternativa / sostituzione standard per le esigenze di scripting di shell e analisi del testo e con molta più potenza rispetto agli strumenti tradizionali. A causa della sua estrema flessibilità (alcuni direbbero ineleganti), Perl è stata descritta come " la motosega dell'esercito svizzero di linguaggi di scripting ". Le attività spesso possono essere significativamente più brevi, più facili o più estensibili quando risolte con Perl. Molti, molti strumenti di sistema, script e programmi più grandi sono regolarmente scritti in Perl. Quindi, nel moderno ambiente Linux, Perl è ora un altro strumento Unix standard e veramente indispensabile.


4
  1. Perl è stato sviluppato per Unix perché gli strumenti non erano abbastanza potenti. Per lo sport, puoi cercare awke inserire sed(Perl).
  2. Perl era (tra le altre cose) ispirato alla shell Unix (e alla C, che è molto importante per Unix - o viceversa, forse).
  3. Inoltre, Perl può essere distribuito con una licenza GNU . Alcune persone lo considererebbero irrilevante dal punto di vista tecnico, ma mostra il mescolarsi.
  4. L'ultima cosa che mi viene in mente è LAMP, che è un "pacchetto software" di rete. (Dai un'occhiata su Wikipedia: la P è, o almeno era, Perl; la L è Linux.) (Ma quest'ultimo punto è un po '"pollo o uovo".)

5
La P in LAMP in questi giorni è molto più spesso PHP o Python. Penso che Perl sia più un uso legacy dell'acronimo.
darvids0n

Notepad ++ è rilasciato sotto licenza GNU (in particolare GNU GPL). AFAIK c'è un po 'di "mescolanza" tra Notepad ++ e varie distribuzioni Linux. Solo per citare un controesempio al punto 3.
un CVn

@ MichaelKjörling: Non saresti d'accordo sul fatto che alcune licenze ostacoleranno la diffusione della tua applicazione (o, in questo caso, un linguaggio di programmazione) nel mondo Linux, mentre altri non metteranno tali ostacoli? Ciò non significa che potresti ottenere la licenza per una distribuzione, se davvero pensassi che fosse quello che ho detto. (Penso di no.)
Emanuel Berg,

@darvidsOn: Sì ... è quello che ho detto (?). (Immagino sia una coincidenza che quei grandi linguaggi di scripting inizino tutti con una P.)
Emanuel Berg,

@EmanuelBerg Hai parlato di "mescolanza" tra Perl e Linux in base al fatto che Perl ha una licenza GNU. C'è un sacco di software in entrambe le porte di FreeBSD e molte distribuzioni Linux che hanno altre licenze, e un sacco di software che non funziona su nessuno dei quali è concesso in licenza con le varie licenze GNU (GPL, LGPL, FDL, ...).
un CVn del

1

Penso che la risposta a questa domanda sia in parte storica, in parte pratica.

Per quanto riguarda la storia, Perl è un linguaggio di classe. È più elegante di Python (per non parlare di PHP), anche se non ho idea di cosa sia "migliore" (se ciò potesse in qualche modo essere analizzato formalmente, di cui dubito). E i ragazzi di classe che usano (o usano) Perl sono in genere i ragazzi che decidono cosa dovrebbe essere parte di una distribuzione Linux.

Per quanto riguarda ciò che è pratico, Perl è ancora la colla di molte cose: i sistemi operativi e il web allo stesso modo (di nuovo, LAMP, senza dimenticare Python o PHP). Quindi perché non includere tutto ciò che è utile per molti scopi? E ancora di più, perché rimuovere tutto ciò che c'è (e non provoca alcun danno) ed è utile?

Ma, come succede, c'è una nota al riguardo nell'ultimo numero di The Linux Magazine (n. 151, giugno 2013). Apparentemente, al fine di compilare il kernel Linux sono stati impiegati un paio di brevi e semplici script Perl. (Ancora una volta, il ruolo "colla" di Perl nei sistemi operativi.) Ora, uno degli sviluppatori del kernel ha inviato patch di una riscrittura di quegli script, questa volta non in Perl, ma come "script shell Unix" (è che sh?). In questo modo, Perl non avrebbe dovuto essere installato per nessuno che compilasse il kernel. Ma quella patch (inviata più volte) non è stata raccolta. E una ragione di ciò è che, una volta fuori al freddo, è improbabile che Perl sia lasciato entrare. Persone come Perl, e non vogliono separarsene.

Ora, questo tocca solo i margini di questa domanda poiché probabilmente una piccolissima minoranza di utenti Linux probabilmente compilerà il kernel. Ma è ancora un altro pezzo del puzzle (e sospetto che ce ne siano molti).


1
Non un commento per te, Emanuel, ma per le persone che non vogliono separarsi da Perl, quanto può essere difficile installarlo se ne hai bisogno / lo vuoi?
MattBianco,
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.