Warum ist Perl bei den meisten Linux-Distributionen standardmäßig installiert?
Warum ist Perl bei den meisten Linux-Distributionen standardmäßig installiert?
Antworten:
Die Antwort ist / ist nicht sexy, abhängig von Ihrer Sichtweise.
Perl ist sehr nützlich. Viele der Systemdienstprogramme sind in Perl geschrieben oder hängen von Perl ab. Die meisten Systeme funktionieren nicht richtig, wenn Perl deinstalliert wird.
Vor einigen Jahren hat FreeBSD große Anstrengungen unternommen, um Perl als Abhängigkeit für das Basissystem zu entfernen . Es war keine leichte Aufgabe.
In Larry Walls ursprünglicher Veröffentlichung von Perl v1.0 in der Newsgroup comp.sources.misc vom 18. Dezember 1987 sagte er:
Wenn Sie ein Problem haben, das normalerweise sed oder awk oder sh verwendet, aber deren Fähigkeiten übersteigt oder etwas schneller ausgeführt werden muss, und Sie das dumme Ding nicht in C schreiben möchten, ist Perl möglicherweise das Richtige für Sie.
In einer viel späteren Darstellung ging er auf etwas mehr ein:
Aber die Frustrationen der Unix-Shell-Programmierung führten direkt zur Entwicklung von Perl, für das ich keine Zeit habe. Aber im Wesentlichen stellte ich fest, dass Shell-Scripting von Natur aus durch die Tatsache eingeschränkt ist, dass die meisten seiner Verben nicht unter seiner Kontrolle stehen und daher weitgehend inkonsistent miteinander sind. Und die Substantive sind verarmt, auf Zeichenfolgen und Dateien beschränkt, mit wer-weiß-was-Typologie ...
Destruktiver war die Einstellung, dass es sich um ein eindimensionales Universum handelte: Sie haben entweder in C programmiert oder Sie haben in Shell programmiert, weil sie sich offensichtlich am entgegengesetzten Ende des Einen Wahren Kontinuums befinden. Perl entstand, als mir klar wurde, dass Skripten nicht immer das Gegenteil von Programmieren sein muss, sondern dass eine einzige Sprache für beide ziemlich gut sein kann. Das hat eine riesige ökologische Nische geöffnet. Viele von Ihnen haben mein altes Klappendiagramm mit den beiden Dimensionen Manipulexität und Peitsche gesehen.
Heutzutage ist Perl eine Standardalternative / -ersatz für Shell-Scripting- und Textanalyse-Anforderungen und mit viel mehr Leistung als die herkömmlichen Tools. Aufgrund seiner extremen Flexibilität (manche würden sagen, unelegant) wurde Perl als " die Kettensäge der Schweizer Armee für Skriptsprachen " beschrieben. Aufgaben können bei der Lösung mit Perl oft erheblich kürzer, einfacher oder erweiterbarer sein. Viele, viele Systemtools, Skripte und größere Programme werden routinemäßig in Perl geschrieben. In der modernen Linux-Umgebung ist Perl nun ein weiteres Standard-Unix-Tool und wirklich unverzichtbar.
awk
und sed
drin (Perl).Ich denke, die Antwort auf diese Frage ist teilweise historisch, teilweise praktisch.
Was die Geschichte betrifft, ist Perl eine noble Sprache. Es ist edler als Python (ganz zu schweigen von PHP), obwohl ich keine Ahnung habe, was "besser" ist (wenn das irgendwie formal analysiert werden könnte, was ich bezweifle). Und die noblen Leute, die Perl benutzen (oder benutzten), sind typischerweise die Leute, die entscheiden, was Teil einer Linux-Distribution sein soll.
Was das Praktische angeht , ist Perl immer noch das Bindeglied vieler Dinge: Betriebssysteme und das Web (wieder LAMP, nicht zu vergessen Python oder PHP). Warum also nicht etwas hinzufügen, das für viele Zwecke nützlich ist? Und vor allem, warum etwas entfernen, was da ist (und keinen Schaden anrichtet) und was nützlich ist?
In der neuesten Ausgabe des Linux-Magazins (Nr. 151, Juni 2013) ist dies jedoch ausdrücklich vermerkt. Um den Linux-Kernel zu kompilieren, werden anscheinend ein paar kurze und einfache Perl-Skripte verwendet. (Wieder die "Kleberolle" von Perl in Betriebssystemen.) Nun hat einer der Kernel-Entwickler Patches für ein erneutes Schreiben dieser Skripte eingereicht, diesmal nicht in Perl, sondern als "Unix-Shell-Skripte" (oder so) sh
?). Auf diese Weise müsste Perl für niemanden installiert werden, der den Kernel kompiliert. Dieser Patch (mehrmals eingereicht) wurde jedoch nicht aufgegriffen. Und ein Grund dafür ist, dass Perl, sobald es einmal kalt ist, wahrscheinlich nicht hereingelassen wird. Leute wie Perl, und sie wollen sich nicht davon trennen.
Dies berührt nur den Rand dieser Frage, da wahrscheinlich eine sehr kleine Minderheit von Linux-Benutzern den Kernel kompilieren wird. Aber es ist noch ein weiteres Puzzleteil (und ich vermute, es gibt viele).