Dlaczego Perl jest instalowany domyślnie z większością dystrybucji Linuksa?
Dlaczego Perl jest instalowany domyślnie z większością dystrybucji Linuksa?
Odpowiedzi:
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.
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.
awk
i sed
w nim (Perl).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).