เหตุใด Perl จึงถูกติดตั้งโดยค่าเริ่มต้นพร้อมกับลีนุกซ์ส่วนใหญ่?


คำตอบ:


27

คำตอบคือ / ไม่เซ็กซี่ขึ้นอยู่กับมุมมองของคุณ

Perl มีประโยชน์มาก ยูทิลิตีของระบบจำนวนมากถูกเขียนขึ้นหรือขึ้นอยู่กับ Perl ระบบส่วนใหญ่จะทำงานไม่ถูกต้องหากถอนการติดตั้ง Perl

ไม่กี่ปีที่ผ่านมา FreeBSD ได้ใช้ความพยายามอย่างมากในการลบ Perl เป็นการพึ่งพาสำหรับระบบฐาน มันไม่ใช่เรื่องง่าย


Perl ใช้ในเคอร์เนลตัวเองหรือไม่ ฉันกำลังมองหาที่บทความนี้ว่าการเรียกร้องว่า Kernel ใช้ประมาณ 2,200 สายรหัส Perl ขนาดประมาณ GNU ลินุกซ์ นอกจากนี้สิ่งที่กระตุ้นคำถาม; ขณะติดตั้ง Arch Linux ฉันสังเกตว่า Perl ติดตั้งในแพ็คเกจพื้นฐานมียูทิลิตี้หลักที่ใช้ Perl หรือไม่

9
@JoshVoigts เคอร์เนลตัวเองไม่ได้ใช้ perl no อย่างไรก็ตามกระบวนการในการสร้างเคอร์เนลใช้จำนวน Perl ที่เป็นธรรม สำหรับอาร์คคนอื่นจะต้องตอบคำถามนั้น
แพทริค

3
จากความอยากรู้ FreeBSD ทำอะไรแทน Perl ด้วย?
Shadur


7
ระบบฐาน FreeBSD นั้นเป็น repo ซอร์สโค้ดขนาดใหญ่หนึ่งตัวที่มีเคอร์เนลยูทิลิตี้และทุกอย่าง ดังนั้นพวกเขาจึงยังคงรักษา Perl ของตัวเองไว้ใน repo ซึ่งเป็นความพยายามครั้งใหญ่และยากที่จะติดตาม Perl up up ที่ทันสมัย ดังนั้นมันจึงเหมาะสมสำหรับพวกเขาที่จะกำจัด Perl ออกจากระบบพื้นฐานและเพียงแค่ติดตั้งเป็นพอร์ตซึ่งง่ายต่อการอัพเดท (เพราะพวกเขากำลังดึงข้อมูลการปล่อย Perl ขั้นต้นและรวบรวม)
cjm

24

ในPerl v1.0 ดั้งเดิมของ Larry Wall โพสต์ไปยังกลุ่มข่าวสารcomp.sources.miscเมื่อวันที่ 18 ธันวาคม 1987 เขากล่าวว่า:

หากคุณมีปัญหาที่ปกติแล้วจะใช้ sed หรือ awk หรือ sh แต่มันเกินความสามารถของพวกเขาหรือต้องทำงานเร็วขึ้นเล็กน้อยและคุณไม่ต้องการที่จะเขียนสิ่งที่โง่ใน C แล้ว Perl อาจเหมาะสำหรับคุณ

ในการอธิบายต่อมาเขาได้อธิบายเพิ่มเติมอีกเล็กน้อย:

แต่ความผิดหวังของการเขียนโปรแกรม Unix shell นำไปสู่การสร้าง Perl ซึ่งฉันไม่มีเวลาบอกเลย แต่โดยพื้นฐานแล้วฉันพบว่าการเขียนสคริปต์เชลล์นั้นมีข้อ จำกัด อย่างมากจากข้อเท็จจริงที่ว่าคำกริยาส่วนใหญ่ไม่ได้อยู่ภายใต้การควบคุมของมันและดังนั้นจึงไม่สอดคล้องกันอย่างมาก และคำนามล้วนยากไร้ จำกัด เฉพาะสายอักขระและไฟล์โดยจำแนกประเภทผู้รู้ ...

การทำลายล้างมากขึ้นคือความคิดที่ว่ามันเป็นเอกภพในมิติเดียว: คุณตั้งโปรแกรมใน C หรือคุณตั้งโปรแกรมไว้ในเปลือกเพราะพวกมันเห็นได้ชัดที่ปลายด้านตรงข้ามของ One True Continuum Perl มาเกี่ยวกับเมื่อฉันรู้ว่าการเขียนสคริปต์ไม่จำเป็นต้องมองว่าเป็นสิ่งที่ตรงกันข้ามกับการเขียนโปรแกรม แต่ภาษาเดียวอาจจะดีสำหรับทั้งคู่ นั่นเป็นการเปิดช่องทางนิเวศวิทยาขนาดใหญ่ พวกคุณหลายคนเคยเห็นไดอะแกรมแบบฝาพับเก่าของฉันที่มีสองมิติของความยืดหยุ่นและความวิปริต

วันนี้ Perl เป็นทางเลือก / ทดแทนมาตรฐานสำหรับเชลล์สคริปต์และความต้องการในการแยกวิเคราะห์ข้อความและมีอำนาจมากกว่าเครื่องมือแบบดั้งเดิม เนื่องจากมันมีความยืดหยุ่นสูง (บางคนบอกว่าไม่เหมาะสม) จึงทำให้ Perl ได้รับการอธิบายว่าเป็น " เครือข่ายภาษาสคริปต์ของกองทัพสวิส " งานมักจะสั้นลงง่ายขึ้นหรือขยายได้มากขึ้นเมื่อแก้ไขด้วย Perl เครื่องมือระบบสคริปต์และโปรแกรมขนาดใหญ่จำนวนมากเขียนเป็นภาษา Perl เป็นประจำ ดังนั้นในสภาพแวดล้อม Linux ที่ทันสมัย ​​Perl จึงเป็นเครื่องมือ Unix มาตรฐานและขาดไม่ได้อย่างแท้จริง


4
  1. Perl ได้รับการพัฒนาสำหรับ Unix เพราะเครื่องมือไม่มีประสิทธิภาพเพียงพอ สำหรับกีฬาคุณสามารถค้นหาawkและใส่sedมัน (Perl)
  2. Perl คือ (เหนือสิ่งอื่นใด) ที่ได้รับแรงบันดาลใจจาก Unix shell (และ C, ซึ่งสำคัญมากสำหรับ Unix - หรือวิธีอื่น ๆ , บางที)
  3. นอกจากนี้Perl สามารถกระจายภายใต้ใบอนุญาต บางคนจะพิจารณาว่าไม่เกี่ยวข้องกับมุมมองทางเทคนิค แต่มันแสดงให้เห็นถึงการผสมผสาน
  4. สิ่งสุดท้ายที่ฉันนึกได้คือ LAMP ซึ่งเป็นเครือข่าย "ชุดซอฟต์แวร์" (ลองดูที่ Wikipedia: P คือหรืออย่างน้อยก็คือ Perl; L คือ Linux) (แต่จุดสุดท้ายนี้คือ "ไก่หรือไข่")

4
P ในหลอดวันนี้บ่อยกว่า PHP หรือ Python ฉันคิดว่า Perl เป็น moreso ดั้งเดิมของการใช้ตัวย่อ
darvids0n

Notepad ++ออกภายใต้ลิขสิทธิ์ GNU (โดยเฉพาะ GNU GPL) AFAIK มี "intermingling" เพียงเล็กน้อยระหว่าง Notepad ++ และการกระจาย Linux ต่างๆ เพียงพูดถึงตัวอย่างหนึ่งตัวอย่างถึงจุด # 3
CVn

@ MichaelKjörling: คุณไม่เห็นด้วยหรือไม่ว่าใบอนุญาตบางอย่างจะขัดขวางการแพร่กระจายแอปพลิเคชันของคุณ (หรือในกรณีนี้คือภาษาการเขียนโปรแกรม) ในโลก Linux ในขณะที่คนอื่นจะไม่ทำให้เกิดอุปสรรคดังกล่าว นั่นไม่ได้หมายความว่าคุณสามารถอนุญาตให้คุณเผยแพร่ข้อมูลได้หากคุณคิดว่าเป็นสิ่งที่ฉันพูด (ฉันไม่คิดว่า)
Emanuel Berg

@darvidsOn: ใช่ ... นั่นคือสิ่งที่ฉันพูด (?) (ฉันคิดว่ามันเป็นเรื่องบังเอิญที่ภาษาสคริปต์ขนาดใหญ่ทั้งหมดเริ่มต้นด้วยตัว P)
Emanuel Berg

@EmanuelBerg คุณพูดถึง "intermingling" ระหว่าง Perl และ Linux ตามความจริงที่ว่า Perl มีสิทธิ์ใช้งาน GNU มีซอฟต์แวร์มากมายทั้งในพอร์ต FreeBSD และ Linux ดิสทริบิวชันจำนวนมากที่มีใบอนุญาตอื่นและซอฟต์แวร์มากมายที่ไม่ทำงานซึ่งได้รับอนุญาตภายใต้ลิขสิทธิ์ GNU (GPL, LGPL, FDL, ... )
CVn

1

ฉันคิดว่าคำตอบสำหรับคำถามนี้เป็นส่วนหนึ่งในประวัติศาสตร์ส่วนหนึ่งในทางปฏิบัติ

สำหรับประวัติศาสตร์ Perl เป็นภาษาที่มีระดับ มันมีระดับมากกว่า Python (ไม่ต้องพูดถึง PHP) แม้ว่าฉันจะไม่รู้ว่า "ดีกว่า" คืออะไร (ถ้าอย่างนั้นสามารถวิเคราะห์อย่างเป็นทางการซึ่งฉันสงสัย) และผู้ชายที่ดีงามที่ใช้ (หรือใช้) Perl มักจะเป็นคนตัดสินใจว่าควรจะเป็นส่วนหนึ่งของ distro Linux

เป็นสิ่งที่เป็นจริง, Perl เป็นยังกาวของจำนวนมากของสิ่งนี้: ระบบปฏิบัติการและเว็บเหมือนกัน (อีกครั้ง, โคมไฟ, ไม่ลืมทั้งงูหลามหรือ PHP) เหตุใดจึงไม่รวมสิ่งที่มีประโยชน์สำหรับวัตถุประสงค์มากมาย และยิ่งกว่านั้นทำไมลบสิ่งที่มี (และไม่ก่อให้เกิดอันตรายใด ๆ ) และมีประโยชน์?

แต่อย่างที่มันเกิดขึ้นมีข้อความเกี่ยวกับเรื่องนี้ในนิตยสาร Linux ฉบับล่าสุด (# 151, มิถุนายน 2013) เห็นได้ชัดว่าในการรวบรวมเคอร์เนลลินุกซ์มีการใช้สคริปต์ Perl สั้น ๆ และง่าย ๆ (อีกครั้งบทบาท "กาว" ของ Perl ในระบบปฏิบัติการ) ตอนนี้หนึ่งในนักพัฒนาเคอร์เนลได้ส่งแพทช์ของการเขียนสคริปต์เหล่านั้นอีกครั้งคราวนี้ไม่ได้อยู่ใน Perl แต่เป็น "เชลล์สคริปต์ Unix" (นั่นคือsh?) ด้วยวิธีนี้ Perl จะไม่ถูกติดตั้งสำหรับทุกคนที่รวบรวมเคอร์เนล แต่แพทช์นั้น (ส่งมาหลายครั้ง) ยังไม่ได้รับ และเหตุผลหนึ่งสำหรับเรื่องนี้ก็คือเมื่อออกมาในช่วงเย็น Perl ไม่น่าจะถูกปล่อยออกมาคนที่ชอบ Perl และพวกเขาไม่ต้องการแยกจากมัน

ตอนนี้เพียงแค่สัมผัสกับขอบของคำถามนี้เนื่องจากผู้ใช้ Linux ส่วนน้อยมีแนวโน้มที่จะรวบรวมเคอร์เนล แต่มันก็เป็นปริศนาอีกชิ้นหนึ่ง (และฉันสงสัยว่ามันมีอยู่มากมาย)


1
ไม่ใช่ความคิดเห็นสำหรับคุณ Emanuel แต่สำหรับคนที่ไม่ต้องการมีส่วนร่วมกับ Perl คุณจะติดตั้งมันยากแค่ไหนหากคุณต้องการ / ต้องการ
MattBianco
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.