Dlaczego Perl jest instalowany domyślnie z większością dystrybucji Linuksa?


Odpowiedzi:


27

Odpowiedź jest / nie jest seksowna, w zależności od twojego punktu widzenia.

Perl jest bardzo przydatny. Wiele narzędzi systemowych jest napisanych lub zależy od Perla. Większość systemów nie będzie działać poprawnie, jeśli Perl zostanie odinstalowany.

Kilka lat temu FreeBSD podjęło wiele wysiłków, aby usunąć Perla jako zależność dla systemu podstawowego. To nie było łatwe zadanie.


Czy Perl jest używany w samym jądrze? Patrzę na ten artykuł, który twierdzi, że jądro używa około 2200 wierszy kodu Perla Oszacowanie rozmiaru GNU Linux . Co również skłoniło pytanie; podczas instalowania Arch Linux zauważyłem, że Perl jest zainstalowany w pakiecie podstawowym , czy istnieją podstawowe narzędzia, które używają Perla?

9
@JoshVoigts samo jądro nie używa perla no. Jednak proces budowania jądra zużywa sporo perla. Jeśli chodzi o Arch, ktoś inny będzie musiał odpowiedzieć na to pytanie.
Patrick,

3
Z ciekawości, czym zastąpił Perl w FreeBSD?
Shadur


7
Podstawowy system FreeBSD to w zasadzie jedno wielkie repozytorium kodu źródłowego z jądrem, narzędziami i wszystkim innym. Więc utrzymywali własny rozwidlenie Perla w tym repozytorium, co było dużym wysiłkiem i ciężko było być na bieżąco z aktualnym Perlem. Dlatego miało sens wyeliminowanie Perla z systemu podstawowego i zainstalowanie go jako portu, co znacznie ułatwia aktualizację (ponieważ po prostu pobierają wcześniejsze wersje Perla i kompilują je).
cjm

24

W oryginalnym poście Perla v1.0 Larry'ego Walla do grupy dyskusyjnej comp.sources.misc z 18 grudnia 1987 roku powiedział:

Jeśli masz problem, który zwykle używałby sed, awk lub sh, ale wykracza poza ich możliwości lub musi działać trochę szybciej, a nie chcesz pisać głupich rzeczy w C, wtedy perl może być dla ciebie.

W znacznie późniejszej wystawie rozwinął nieco więcej:

Ale frustracje związane z programowaniem powłoki Unix doprowadziły bezpośrednio do stworzenia Perla, o czym tak naprawdę nie mam czasu powiedzieć. Ale w gruncie rzeczy odkryłem, że skrypty powłoki są wewnętrznie ograniczone faktem, że większość czasowników nie jest pod jego kontrolą, a zatem są w dużej mierze niespójne. Rzeczowniki są zubożałe, ograniczone do ciągów znaków i plików, z typologią kto wie, jaką ...

Bardziej niszczycielski był sposób myślenia, że ​​był to jednowymiarowy wszechświat: albo programowałeś w C, albo programowałeś w powłoce, ponieważ oczywiście znajdują się one na przeciwnych końcach Jednego Prawdziwego Kontinuum. Perl powstał, gdy zdałem sobie sprawę, że skrypty nie zawsze muszą być postrzegane jako przeciwieństwo programowania, ale że jeden język może być całkiem dobry dla obu. To otworzyło ogromną niszę ekologiczną. Wielu z was widziało mój stary schemat klap z dwoma wymiarami manipulacji i biczowania.

Obecnie Perl jest standardową alternatywą / zamiennikiem potrzebnych skryptów powłoki i parsowania tekstu i ma znacznie większą moc niż tradycyjne narzędzia. Ze względu na swoją ekstremalną (niektórzy twierdzą, że to nieeleganckie) elastyczność, Perl został opisany jako „ piła łańcuchowa języków skryptowych Szwajcarskiej Armii ”. Zadania często mogą być znacznie krótsze, łatwiejsze lub bardziej rozszerzalne, gdy są rozwiązywane za pomocą Perla. Wiele, wiele narzędzi systemowych, skryptów i większych programów jest rutynowo pisanych w Perlu. Dlatego w nowoczesnym środowisku Linux Perl jest teraz kolejnym standardowym narzędziem uniksowym i naprawdę niezbędnym.


4
  1. Perl został opracowany dla Uniksa, ponieważ narzędzia nie były wystarczająco potężne. Dla sportu możesz szukać awki sedw nim (Perl).
  2. Perl był (między innymi) zainspirowany powłoką uniksową (i C, co jest bardzo ważne dla Uniksa - lub na odwrót).
  3. Ponadto Perl może być rozpowszechniany na licencji GNU . Niektórzy uważają to za nieistotne z technicznego punktu widzenia, ale pokazuje to przenikanie się.
  4. Ostatnią rzeczą, o której myślę, jest LAMP, który jest „pakietem oprogramowania” dla sieci. (Sprawdź to na Wikipedii: P jest, a przynajmniej był, Perl; L to Linux.) (Ale ten ostatni punkt to trochę „kurczak lub jajko”.)

5
P w LAMP w dzisiejszych czasach jest znacznie częściej PHP lub Python. Wydaje mi się, że Perl jest dotychczasowym akronimem.
darvids0n

Notepad ++ jest wydany na licencji GNU (w szczególności GNU GPL). AFAIK istnieje niewielkie „przenikanie się” między Notepad ++ a różnymi dystrybucjami Linuksa. Wystarczy wspomnieć o jednym kontrprzykładzie na swój punkt # 3.
CVn

@ MichaelKjörling: Czy nie zgodziłbyś się, że niektóre licencje utrudniają rozprzestrzenianie się twojej aplikacji (lub w tym przypadku języka programowania) w świecie Linuksa, podczas gdy inne nie będą stawiały takich przeszkód? To nie znaczy, że możesz licencjonować swoją drogę do dystrybucji, jeśli naprawdę myślałeś, że tak powiedziałem. (Myślę, że nie.)
Emanuel Berg,

@darvidsOn: Tak ... tak powiedziałem (?). (Myślę, że to przypadek, że wszystkie te duże języki skryptowe zaczynają się na P.)
Emanuel Berg,

@EmanuelBerg Wspomniałeś o „przenikaniu się” między Perlem a Linuksem, ponieważ Perl ma licencję GNU. W obu portach FreeBSD jest wiele programów i wiele dystrybucji Linuksa, które mają inne licencje, oraz mnóstwo oprogramowania, które nie działa na żadnym z nich, które jest licencjonowane na różnych licencjach GNU (GPL, LGPL, FDL, ...).
CVn

1

Myślę, że odpowiedź na to pytanie jest częściowo historyczna, a częściowo praktyczna.

Jeśli chodzi o historię, Perl jest językiem z klasą. Jest bardziej elegancki niż Python (nie wspominając o PHP), chociaż nie mam pojęcia, co jest „lepsze” (jeśli można to jakoś formalnie przeanalizować, w co wątpię). A eleganccy faceci, którzy używają (lub używali) Perla, zazwyczaj decydują, co powinno być częścią dystrybucji Linuksa.

Jeśli chodzi o to, co jest praktyczne, Perl jest nadal klejem wielu rzeczy: systemów operacyjnych i Internetu (ponownie LAMP, nie zapominając ani o Pythonie, ani o PHP). Dlaczego więc nie uwzględnić niczego, co jest przydatne do wielu celów? Co więcej, po co usuwać wszystko, co tam jest (i nie powoduje żadnej szkody) i jest przydatne?

Ale, jak to się zdarza, w najnowszym wydaniu The Linux Magazine (# 151, czerwiec 2013 r.) Jest o tym mowa. Najwyraźniej, aby skompilować jądro Linuksa, zastosowano kilka krótkich i prostych skryptów Perla. (Znowu „klejąca” rola Perla w systemach operacyjnych.) Teraz jeden z programistów jądra przesłał łatki ponownego zapisu tych skryptów, tym razem nie w Perlu, ale jako „skrypty powłoki uniksowej” (to znaczy sh?). W ten sposób Perl nie będzie musiał być instalowany dla osób kompilujących jądro. Ale ta łatka (przesłana kilka razy) nie została odebrana. A jednym z powodów jest to, że po wyjściu na zimno Perl raczej nie zostanie wpuszczony. Ludzie tacy jak Perl i nie chcą się z tym rozstać.

Teraz dotyczy to tylko skraju tego pytania, ponieważ prawdopodobnie niewielka część użytkowników Linuksa prawdopodobnie skompiluje jądro. Jest to jednak kolejny element układanki (i podejrzewam, że jest ich wiele).


1
To nie jest komentarz dla ciebie, Emanuelu, ale dla ludzi, którzy nie chcą rozstać się z Perlem, jak trudno może być po prostu zainstalować, jeśli potrzebujesz / chcesz?
MattBianco,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.