Чому Perl встановлений за замовчуванням у більшості дистрибутивів Linux?


Відповіді:


27

Відповідь є / не сексуально, залежно від вашої точки зору.

Perl дуже корисний. Багато системних утиліт записуються або залежать від perl. Більшість систем не працюватиме належним чином, якщо Perl буде видалено.

Кілька років тому FreeBSD доклав багато зусиль, щоб усунути Perl як залежність від базової системи. Це було непросте завдання.


Чи Perl використовується в самому ядрі? Я переглядаю цю статтю, яка стверджує, що ядро ​​використовує близько 2200 рядків коду Perl Оцінка розміру GNU Linux . Також, що спонукало до питання; встановлюючи Arch Linux, я помітив, що Perl встановлений в базовому пакеті, чи є основні утиліти, які використовують Perl?

9
@JoshVoigts саме ядро ​​не використовує perl no. Однак процес створення ядра використовує неабияку кількість perl. Щодо Арка, хтось ще повинен відповісти на це.
Патрік

3
З цікавості, чим FreeBSD замінив Perl?
Шадур


7
Базова система FreeBSD - це в основному один гігантський репо-код вихідного коду з ядром, утилітами та всім іншим. Таким чином, вони підтримували власну вилку Perl у тій репо, що було великим зусиллям і важко бути в курсі останніх Perl. Таким чином, їм було доцільно усунути Perl з базової системи та просто встановити його як порт, що набагато простіше постійно оновлюватись (адже вони просто витягують версії Perl випусків та компілюють їх).
cjm

24

У Ларрі Уолл оригінального Perl версія 1.0 проводці до comp.sources.misc телеконференції 18 грудня 1987 года, він сказав:

Якщо у вас є проблема, яка зазвичай використовує sed або awk або sh, але вона перевищує їхні можливості або повинна бігти трохи швидше, і ви не хочете писати дурну річ на C, тоді perl може бути для вас.

У значно пізнішій експозиції він детальніше розробив:

Але розчарування програмування оболонок Unix призвели безпосередньо до створення Perl, про який я насправді не встиг розповісти. Але, по суті, я виявив, що сценарій оболонки суттєво обмежений тим, що більшість його дієслів не перебувають під його контролем і, отже, значною мірою несумісні між собою. І іменники збідніли, обмежилися рядками та файлами, з типологією хто-хто-що знає ...

Більш руйнівним було уявлення про те, що це одновимірний Всесвіт: ви або запрограмовані на C, або ви запрограмовані в оболонці, оскільки вони, очевидно, на протилежних кінцях Єдиного справжнього континууму. Перл виник, коли я зрозумів, що сценарії не завжди повинні сприйматись як протилежність програмуванню, але що одна мова може бути досить хорошою для обох. Це відкрило величезну екологічну нішу. Багато з вас бачили мою стару розкладну схему з двома вимірами маніпуляцій та прискіпливості.

Сьогодні Perl є стандартною альтернативою / заміною для потреб сценаріїв оболонок та аналізу тексту та з набагато більшою потужністю, ніж традиційні інструменти. Через свою надзвичайну (можна сказати, неелегантну) гнучкість, Перл був названий " бензопилою швейцарської армії мов сценаріїв ". Завдання часто можуть бути значно коротшими, легшими або розширенішими, коли вони вирішуються за допомогою Perl. Багато, багато системних інструментів, сценаріїв і великих програм звичайно записуються в Perl. Тож у сучасному середовищі Linux Perl тепер є ще одним стандартним інструментом Unix і справді незамінним.


4
  1. Perl був розроблений для Unix, оскільки інструменти були недостатньо потужними. Для занять спортом можна шукати awkі sedв ньому (Perl).
  2. Перл був (серед іншого) натхненний оболонкою Unix (і C, що дуже важливо для Unix - чи навпаки, можливо).
  3. Також Perl може поширюватися за ліцензією GNU . Деякі люди вважають це нерелевантним з технічної точки зору, але це показує змішання.
  4. Останнє, про що я можу придумати, - це LAMP, який є мережевим «програмним пакетом». (Перевірте це у Вікіпедії: P - або, принаймні, був Perl; L - Linux.) (Але останній пункт трохи "курка чи яйце".)

5
P в LAMP в наші дні набагато частіше PHP або Python. Я думаю, що Perl - це ще більше вживане абревіатура.
darvids0n

Notepad ++ випускається під ліцензією GNU (конкретно, GNU GPL). AFAIK є невеликим "переплетенням" між Notepad ++ та різними дистрибутивами Linux. Просто згадайте про один контрприклад до вашої точки №3.
CVn

@ MichaelKjörling: Чи не погоджуєтесь ви, що певні ліцензії будуть перешкоджати розповсюдженню вашої програми (або, у цьому випадку, мови програмування) у світі Linux, а інші не ставлять таких перешкод? Це не означає, що ви можете ліцензувати свій шлях до розповсюдження, якщо ви дійсно вважали, що це я сказав. (Я думаю, що ні.)
Емануель Берг

@darvidsOn: Так ... це я сказав (?). (Я здогадуюсь, що це збіг обставин, що всі ці великі мови сценаріїв починаються з П.)
Емануель Берг

@EmanuelBerg Ви згадали про "переплетення" між Perl та Linux на основі того, що Perl має ліцензію GNU. В обох портах FreeBSD є багато програмного забезпечення, а також у багатьох дистрибутивах Linux, які мають інші ліцензії, та багато програмного забезпечення, яке не працює на будь-якому, яке ліцензується за різними ліцензіями GNU (GPL, LGPL, FDL, ...).
CVn

1

Я думаю, що відповідь на це питання частково історична, частково практична.

Що стосується історії, Perl - це класна мова. Це класніше, ніж Python (не кажучи вже про PHP), хоча я поняття не маю, що "краще" (якщо це можна якось формально проаналізувати, в чому я сумніваюся). І стильні хлопці, які використовують (або використовують) Perl, як правило, хлопці вирішують, що має бути частиною дистрибутива Linux.

Щодо практичного, Perl все ще є клеєм багатьох речей: ОС і Інтернету (знову ж таки, LAMP, не забуваючи ні Python, ні PHP). То чому б не включити щось корисне для багатьох цілей? І тим більше, чому прибирати все, що там є (і не заподіює ніякої шкоди), і корисне?

Але, як це буває, про це є примітка в останньому номері журналу Linux (№ 151, червень 2013 р.). Мабуть, для складання ядра Linux використовується кілька коротких і простих скриптів Perl. (Знову ж таки, "склеює" роль Perl в ОС.) Тепер один з розробників ядра надсилає патчі переписування цих сценаріїв, на цей раз не в Perl, а як "скрипти оболонки Unix" (це те, що sh?). Таким чином, Perl не потрібно було б встановлювати для тих, хто збирає ядро. Але цей патч (надсилався кілька разів) так і не був підібраний. І однією з причин цього є те, що колись на холоді, Perl, швидше за все, не пустять. Людям подобається Perl, і вони не хочуть з цим розлучатися.

Тепер це торкається лише меж цього питання, оскільки, мабуть, дуже невелика частина користувачів Linux зібрала ядро. Але це ще один фрагмент головоломки (і я підозрюю, що їх багато).


1
Не коментар для вас, Емануеле, але для людей, які не хочуть розлучатися з perl, як важко просто встановити його, якщо вам потрібно / хочете?
MattBianco
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.