Por que o Perl é instalado por padrão na maioria das distribuições Linux?

Respostas:

27

A resposta é / não é sexy, dependendo do seu ponto de vista.

Perl é muito útil. Muitos utilitários do sistema são gravados ou dependem do perl. A maioria dos sistemas não funcionará corretamente se o Perl for desinstalado.

Alguns anos atrás, o FreeBSD se esforçou muito para remover o Perl como uma dependência do sistema base. Não foi uma tarefa fácil.

bahamat
fonte
O Perl é usado no próprio Kernel? Estou vendo este artigo que afirma que o Kernel usa cerca de 2.200 linhas de código Perl Estimando o tamanho do GNU Linux . Além disso, o que motivou a pergunta; Ao instalar o Arch Linux, notei que o Perl está instalado no pacote base . Existem utilitários principais que usam o Perl?
9
@ JoshVoigts, o próprio kernel não usa perl no. No entanto, o processo de construção do kernel utiliza uma quantidade razoável de perl. Quanto a Arch, alguém terá que responder a essa pergunta.
Patrick
3
Por curiosidade, com o que o FreeBSD substituiu o Perl?
Shadur 13/09/12
4
@ire_and_curses: O Perl5 está saindo do sistema básico para 5.0 e depois! Também a partir de 2011: FreeBSD: fusão de sistemas de pacotes (no OpenBSD).
bahamat 13/09/12
7
O sistema básico do FreeBSD é basicamente um repositório de código-fonte gigante com o kernel, utilitários e tudo mais. Portanto, eles estavam mantendo seu próprio fork do Perl naquele repositório, o que foi um grande esforço e difícil de manter atualizado com o Perl upstream. Portanto, fazia sentido eliminar o Perl do sistema base e apenas instalá-lo como uma porta, o que é muito mais fácil de manter atualizado (porque eles estão apenas buscando as versões anteriores do Perl e compilando-as).
Cjm 13/09/12
24

Em de Larry Wall originais v1.0 postagem Perl ao comp.sources.misc newsgroup em 18 de dezembro de 1987, ele disse:

Se você tiver um problema que normalmente usaria sed ou awk ou sh, mas excede suas capacidades ou precisa correr um pouco mais rápido, e você não deseja escrever a coisa boba em C, então perl pode ser para você.

Em uma exposição muito posterior , ele elaborou um pouco mais:

Mas as frustrações da programação do shell Unix levaram diretamente à criação do Perl, o que eu realmente não tenho tempo para contar. Mas, essencialmente, descobri que o script de shell era intrinsecamente limitado pelo fato de a maioria de seus verbos não estar sob seu controle e, portanto, amplamente inconsistente um com o outro. E os substantivos são empobrecidos, restritos a strings e arquivos, com tipologia de quem sabe o que ...

Mais destrutiva foi a mentalidade de que era um universo unidimensional: ou você programa em C ou em shell, porque eles obviamente estão em extremos opostos do One True Continuum. Perl surgiu quando percebi que nem sempre o script precisava ser visto como o oposto da programação, mas que uma única linguagem poderia ser muito boa para ambos. Isso abriu um enorme nicho ecológico. Muitos de vocês viram meu velho diagrama de concha, com as duas dimensões da manipulação e da chicotada.

Hoje, o Perl é uma alternativa / substituição padrão para as necessidades de scripts de shell e análise de texto e com muito mais poder do que as ferramentas tradicionais. Devido à sua extrema (alguns diriam deselegante) flexibilidade, Perl foi descrito como " a serra elétrica do Exército Suíço de linguagens de script ". As tarefas geralmente podem ser significativamente mais curtas, fáceis ou mais extensíveis quando resolvidas com o Perl. Muitas, muitas ferramentas de sistema, scripts e programas maiores são rotineiramente escritos em Perl. Portanto, no ambiente Linux moderno, o Perl agora é outra ferramenta Unix padrão e verdadeiramente indispensável.

ire_and_curses
fonte
4
  1. O Perl foi desenvolvido para o Unix porque as ferramentas não eram poderosas o suficiente. Para esportes, você pode procurar awke sednele (Perl).
  2. O Perl foi (entre outras coisas) inspirado no shell do Unix (e C, o que é muito importante para o Unix - ou o contrário, talvez).
  3. Além disso, o Perl pode ser distribuído sob uma licença GNU . Algumas pessoas considerariam isso irrelevante do ponto de vista técnico, mas isso mostra a mistura.
  4. A última coisa que consigo pensar é no LAMP, que é um "pacote de software" de rede. (Confira na Wikipedia: o P é, ou pelo menos era, Perl; o L é o Linux.) (Mas esse último ponto é um pouco "galinha ou ovo".)
Emanuel Berg
fonte
5
OP no LAMP hoje em dia é muito mais frequentemente PHP ou Python. Eu acho que Perl é mais um uso legado da sigla.
precisa saber é o seguinte
O Notepad ++ é lançado sob uma licença GNU (especificamente, a GNU GPL). AFAIK, existe pouca "mistura" entre o Notepad ++ e várias distribuições Linux. Apenas para mencionar um contra-exemplo ao seu ponto # 3.
a CVn
@ MichaelKjörling: Você não concorda que determinadas licenças dificultam a disseminação do seu aplicativo (ou, neste caso, uma linguagem de programação) no mundo Linux, enquanto outras não colocam esses obstáculos? Isso não significa que você poderia licenciar seu caminho para uma distribuição, se realmente pensasse que foi o que eu disse. (Acho que não.)
Emanuel Berg
@darvidsOn: Sim ... foi o que eu disse (?). (Eu acho que é uma coincidência que esses grandes linguagens de script todos começam com um P.)
Emanuel Berg
@EmanuelBerg Você mencionou "mistura" entre Perl e Linux com base no fato de que o Perl possui uma licença GNU. Há muitos softwares nas portas FreeBSD e muitas distribuições Linux que possuem outras licenças, e muitos softwares que não são executados em nenhum deles licenciado sob as várias licenças GNU (GPL, LGPL, FDL, ...).
um CVn
1

Penso que a resposta a esta pergunta é em parte histórica, em parte prática.

Quanto à história, Perl é uma linguagem elegante. É mais elegante que o Python (para não mencionar o PHP), embora eu não tenha idéia do que é "melhor" (se isso poderia ser formalmente analisado, o que duvido). E os caras elegantes que estão usando (ou usados) Perl geralmente são os caras que decidem o que deve fazer parte de uma distribuição Linux.

Quanto ao que é prático, o Perl ainda é a cola de muitas coisas: SOs e a Web (novamente, LAMP, sem esquecer o Python ou o PHP). Então, por que não incluir algo que seja útil para muitos propósitos? E ainda mais, por que remover qualquer coisa que esteja lá (e não cause nenhum dano) e que seja útil?

Mas, por acaso, há uma observação sobre isso na edição mais recente da The Linux Magazine (# 151, junho de 2013). Aparentemente, para compilar o kernel do Linux, são utilizados alguns scripts Perl curtos e simples. (Novamente, o papel de "cola" do Perl nos SOs.) Agora, um dos desenvolvedores do kernel tem enviado patches de uma reescrita desses scripts, desta vez não no Perl, mas como "scripts de shell Unix" (é esse sh?). Dessa forma, o Perl não precisaria ser instalado para ninguém compilar o kernel. Mas, esse patch (enviado várias vezes) não foi captado. E uma razão para isso é que, uma vez no frio, é provável que Perl não seja autorizado a entrar. Pessoas como Perl, e elas não querem se separar.

Agora, isso apenas toca as margens desta pergunta, pois provavelmente uma minoria muito pequena de usuários de Linux provavelmente compilará o kernel. Mas é mais uma peça do quebra-cabeça (e suspeito que haja muitas).

Emanuel Berg
fonte
11
Não é um comentário para você, Emanuel, mas para as pessoas que não desejam participar do perl, quão difícil pode ser instalá-lo se você precisar / desejar?
precisa saber é o seguinte