Pourquoi Perl est-il installé par défaut avec la plupart des distributions Linux?

Réponses:

27

La réponse est / n'est pas sexy, selon votre point de vue.

Perl est très utile. De nombreux utilitaires système sont écrits en ou dépendent de Perl. La plupart des systèmes ne fonctionneront pas correctement si Perl est désinstallé.

Il y a quelques années, FreeBSD a déployé beaucoup d'efforts pour supprimer Perl en tant que dépendance du système de base. Ce n'était pas une tâche facile.

bahamat
la source
Perl est-il utilisé dans le noyau lui-même? Je regarde cet article qui prétend que le noyau utilise environ 2 200 lignes de code Perl pour estimer la taille de GNU Linux . Aussi, ce qui a suscité la question; lors de l'installation d'Arch Linux, j'ai remarqué que Perl est installé dans le package de base , y a-t-il des utilitaires de base qui utilisent Perl?
9
@JoshVoigts le noyau lui-même n'utilise pas perl no. Cependant, le processus de construction du noyau utilise une bonne quantité de perl. Quant à Arch, quelqu'un d'autre devra répondre à celle-là.
Patrick
3
Par curiosité, avec quoi FreeBSD a-t-il remplacé Perl?
Shadur
4
@ire_and_curses: Perl5 quitte le système de base pour 5.0 et après! Également à partir de 2011: FreeBSD: Fusion de systèmes de packages (sous OpenBSD).
bahamat
7
Le système de base de FreeBSD est fondamentalement un repo de code source géant avec le noyau, les utilitaires et tout le reste. Ils conservaient donc leur propre fork de Perl dans ce repo, ce qui était un gros effort et difficile à maintenir à jour avec Perl en amont. Il était donc logique pour eux d'éliminer Perl du système de base et de simplement l'installer en tant que port, ce qui est beaucoup plus facile à maintenir à jour (car ils ne font que récupérer les versions amont de Perl et les compiler).
cjm
24

Dans la publication originale de Perl v1.0 de Larry Wall au groupe de discussion comp.sources.misc le 18 décembre 1987, il a déclaré:

Si vous avez un problème qui utiliserait habituellement sed ou awk ou sh, mais il dépasse leurs capacités ou doit fonctionner un peu plus vite, et vous ne voulez pas écrire la chose idiote en C, alors perl peut être pour vous.

Dans une exposition beaucoup plus tardive , il a développé un peu plus:

Mais les frustrations de la programmation shell Unix ont conduit directement à la création de Perl, que je n'ai pas vraiment le temps de dire. Mais essentiellement, j'ai trouvé que le script shell était intrinsèquement limité par le fait que la plupart de ses verbes ne sont pas sous son contrôle et donc largement incohérents les uns avec les autres. Et les noms sont appauvris, limités aux chaînes et aux fichiers, avec une typologie qui sait quoi ...

Plus destructeur était l'état d'esprit qu'il s'agissait d'un univers unidimensionnel: vous avez soit programmé en C, soit programmé en shell, car ils sont évidemment aux extrémités opposées du One True Continuum. Perl a vu le jour lorsque j'ai réalisé que les scripts ne devaient pas toujours être considérés comme l'opposé de la programmation, mais qu'un seul langage pouvait être assez bon pour les deux. Cela a ouvert une énorme niche écologique. Beaucoup d'entre vous ont vu mon ancien diagramme à clapet, avec les deux dimensions de la manipulexité et de la whipuptitude.

Aujourd'hui, Perl est une alternative / remplacement standard pour les besoins de script shell et d'analyse de texte, et avec beaucoup plus de puissance que les outils traditionnels. En raison de sa flexibilité extrême (certains diraient inélégante), Perl a été décrit comme " la tronçonneuse suisse des langages de script ". Les tâches peuvent souvent être considérablement plus courtes, plus faciles ou plus extensibles lorsqu'elles sont résolues avec Perl. De très nombreux outils système, scripts et programmes plus importants sont régulièrement écrits en Perl. Donc, dans l'environnement Linux moderne, Perl est maintenant un autre outil Unix standard, et vraiment indispensable.

ire_and_curses
la source
4
  1. Perl a été développé pour Unix car les outils n'étaient pas assez puissants. Pour le sport, vous pouvez chercher awket seden (Perl).
  2. Perl était (entre autres) inspiré par le shell Unix (et C, qui est très important pour Unix - ou l'inverse, peut-être).
  3. En outre, Perl peut être distribué sous une licence GNU . Certaines personnes considéreraient cela comme non pertinent d'un point de vue technique, mais cela montre le mélange.
  4. La dernière chose à laquelle je peux penser est LAMP, qui est un "ensemble logiciel" de mise en réseau. (Vérifiez-le sur Wikipedia: le P est, ou du moins l'était, Perl; le L est Linux.) (Mais ce dernier point est un peu "poulet ou œuf".)
Emanuel Berg
la source
5
De nos jours, le P dans LAMP est beaucoup plus souvent PHP ou Python. Je pense que Perl est plus une ancienne utilisation de l'acronyme.
darvids0n
Notepad ++ est publié sous une licence GNU (en particulier, la GNU GPL). AFAIK il y a peu de "mélange" entre Notepad ++ et diverses distributions Linux. Juste pour mentionner un contre-exemple à votre point n ° 3.
un CVn du
@ MichaelKjörling: N'êtes-vous pas d'accord pour dire que certaines licences entraveront la propagation de votre application (ou, dans ce cas, un langage de programmation) dans le monde Linux, tandis que d'autres ne mettront pas en place de tels obstacles? Cela ne signifie pas que vous pourriez obtenir votre licence pour une distribution, si vous pensiez vraiment que c'était ce que j'avais dit. (Je ne pense pas.)
Emanuel Berg
@darvidsOn: Oui ... c'est ce que j'ai dit (?). (Je suppose que c'est une coïncidence que ces gros langages de script commencent tous par un P.)
Emanuel Berg
@EmanuelBerg Vous avez mentionné le "mélange" entre Perl et Linux basé sur le fait que Perl possède une licence GNU. Il y a beaucoup de logiciels dans les deux ports FreeBSD et de nombreuses distributions Linux qui ont d'autres licences, et beaucoup de logiciels qui ne fonctionnent pas non plus sous licence GNU (GPL, LGPL, FDL, ...).
un CVn du
1

Je pense que la réponse à cette question est en partie historique, en partie pratique.

Quant à l'histoire, Perl est un langage chic. Il est plus chic que Python (sans parler de PHP), bien que je ne sache pas ce qui est "mieux" (si cela peut être analysé de manière formelle, ce dont je doute). Et les gars chics qui utilisent (ou utilisaient) Perl sont généralement les gars qui décident de ce qui devrait faire partie d'une distribution Linux.

Quant à ce qui est pratique, Perl est toujours le ciment de beaucoup de choses: les OS et le web (encore une fois, LAMP, sans oublier ni Python ni PHP). Alors pourquoi ne pas inclure quoi que ce soit qui soit utile à de nombreuses fins? Et plus encore, pourquoi retirer tout ce qui est là (et qui ne cause aucun mal) et qui est utile?

Mais, en l'occurrence, il y a une note à ce sujet dans le dernier numéro de The Linux Magazine (# 151, juin 2013). Apparemment, afin de compiler le noyau Linux, quelques scripts Perl courts et simples sont utilisés. (Encore une fois, le rôle de "colle" de Perl dans les systèmes d'exploitation.) Maintenant, l'un des développeurs du noyau a soumis des correctifs de réécriture de ces scripts, cette fois pas en Perl, mais en tant que "scripts shell Unix" (est-ce que sh?). De cette façon, Perl ne devrait pas être installé pour quiconque compile le noyau. Mais, ce correctif (soumis plusieurs fois) n'a pas été récupéré. Et une des raisons à cela est que, une fois dans le froid, Perl ne sera probablement pas laissé entrer. Des gens comme Perl, et ils ne veulent pas s'en séparer.

Maintenant, cela ne touche que les franges de cette question car probablement une très petite minorité d'utilisateurs Linux est susceptible de compiler le noyau. Mais c'est encore une autre pièce du puzzle (et je soupçonne qu'il y en a beaucoup).

Emanuel Berg
la source
1
Pas un commentaire pour vous, Emanuel, mais pour les personnes qui ne veulent pas se séparer de Perl, comment peut-il être difficile de simplement l'installer si vous en avez besoin / le souhaitez?
MattBianco