Mengapa Perl diinstal secara default dengan sebagian besar distribusi Linux?

Jawaban:

27

Jawabannya adalah / tidak seksi, tergantung pada sudut pandang Anda.

Perl sangat bermanfaat. Banyak utilitas sistem ditulis atau tergantung pada perl. Sebagian besar sistem tidak akan beroperasi dengan baik jika Perl dihapus instalannya.

Beberapa tahun yang lalu FreeBSD mengalami banyak upaya untuk menghapus Perl sebagai ketergantungan untuk sistem basis. Itu bukan tugas yang mudah.

bahamat
sumber
Apakah Perl digunakan di Kernel itu sendiri? Saya melihat artikel ini yang mengklaim bahwa Kernel menggunakan sekitar 2.200 baris kode Perl Memperkirakan Ukuran Linux GNU . Juga, apa yang mendorong pertanyaan itu; saat menginstal Arch Linux, saya perhatikan bahwa Perl diinstal pada paket dasar , apakah ada utilitas inti yang menggunakan Perl?
9
@JoshVoigts kernel itu sendiri tidak menggunakan perl no. Namun proses membangun kernel memang menggunakan perl yang cukup. Adapun Arch, orang lain harus menjawab yang itu.
Patrick
3
Karena penasaran, dengan apa FreeBSD menggantikan Perl?
Shadur
4
@ire_and_curses: Perl5 meninggalkan sistem dasar untuk 5.0 dan sesudahnya! Juga pada 2011: FreeBSD: Penggabungan Sistem Paket (Di Bawah OpenBSD).
bahamat
7
Sistem dasar FreeBSD pada dasarnya adalah satu repo kode sumber raksasa dengan kernel, utilitas, dan semuanya. Jadi mereka mempertahankan garpu Perl mereka sendiri dalam repo itu, yang merupakan upaya besar dan sulit untuk tetap up-to-date dengan hulu Perl. Jadi masuk akal bagi mereka untuk menghilangkan Perl dari sistem basis dan hanya menginstalnya sebagai port, yang jauh lebih mudah untuk tetap up-to-date (karena mereka hanya mengambil rilis Perl hulu dan mengkompilasi mereka).
cjm
24

Dalam postingan Perl v1.0 asli Larry Wall yang memposting ke newsgroup comp.sources.misc pada tanggal 18 Desember 1987, ia berkata:

Jika Anda memiliki masalah yang biasanya menggunakan sed atau awk atau sh, tetapi melebihi kemampuan mereka atau harus berjalan sedikit lebih cepat, dan Anda tidak ingin menulis hal yang konyol di C, maka perl mungkin untuk Anda.

Dalam sebuah paparan yang jauh lebih lanjut , dia menjelaskan sedikit lebih banyak:

Tapi frustrasi pemrograman shell Unix mengarah langsung ke penciptaan Perl, yang saya tidak punya waktu untuk mengatakannya. Tetapi pada dasarnya, saya menemukan bahwa shell scripting pada dasarnya dibatasi oleh fakta bahwa sebagian besar kata kerjanya tidak di bawah kendali dan karenanya sebagian besar tidak konsisten satu sama lain. Dan kata benda dimiskinkan, terbatas pada string dan file, dengan tipologi siapa-tahu-apa ...

Lebih merusak adalah pola pikir bahwa itu adalah alam semesta satu dimensi: Anda diprogram dalam C atau Anda diprogram dalam shell, karena mereka jelas di ujung berlawanan dari Satu Kontinen Sejati. Perl muncul ketika saya menyadari bahwa scripting tidak selalu harus dipandang sebagai kebalikan dari pemrograman, tetapi bahwa satu bahasa bisa sangat baik untuk keduanya. Itu membuka relung ekologis yang besar. Banyak dari Anda telah melihat diagram clamshell lama saya, dengan dua dimensi manipulexity dan whipuptitude.

Saat ini, Perl adalah alternatif / pengganti standar untuk skrip shell dan kebutuhan parsing teks, dan dengan kekuatan lebih dari alat tradisional. Karena fleksibilitasnya yang ekstrem (sebagian orang akan mengatakan tidak elegan), Perl telah dideskripsikan sebagai " gergaji tentara Swiss dalam bahasa scripting ". Tugas seringkali jauh lebih singkat, lebih mudah, atau lebih bisa diperluas ketika diselesaikan dengan Perl. Banyak, banyak alat sistem, skrip dan program yang lebih besar secara rutin ditulis dalam Perl. Jadi di lingkungan Linux modern, Perl sekarang menjadi alat Unix standar lainnya, dan sangat diperlukan.

ire_and_curses
sumber
4
  1. Perl dikembangkan untuk Unix karena alatnya tidak cukup kuat. Untuk olahraga, Anda bisa mencari awkdan seddi dalamnya (Perl).
  2. Perl (antara lain) terinspirasi oleh shell Unix (dan C, yang sangat penting bagi Unix - atau sebaliknya, mungkin).
  3. Juga, Perl dapat didistribusikan di bawah lisensi GNU . Beberapa orang akan menganggap itu tidak relevan dari sudut pandang teknis, tetapi itu menunjukkan pembauran.
  4. Hal terakhir yang bisa saya pikirkan adalah LAMP, yang merupakan "bundel perangkat lunak" jaringan. (Lihat di Wikipedia: P adalah, atau setidaknya, Perl; L adalah Linux.) (Tapi poin terakhir ini sedikit "ayam atau telur".)
Emanuel Berg
sumber
5
P dalam LAMP hari ini jauh lebih sering PHP atau Python. Saya pikir Perl lebih merupakan warisan penggunaan akronim.
darvids0n
Notepad ++ dirilis di bawah lisensi GNU (khususnya, GNU GPL). AFAIK ada sedikit "pembauran" antara Notepad ++ dan berbagai distribusi Linux. Hanya dengan menyebutkan satu contoh berlawanan dengan poin # 3 Anda.
CVn
@ MichaelKjörling: Apakah Anda tidak setuju bahwa lisensi tertentu akan menghambat penyebaran aplikasi Anda (atau, dalam hal ini, bahasa pemrograman) di dunia Linux, sementara yang lain tidak akan memasang hambatan seperti itu? Itu tidak berarti Anda dapat melisensikan jalan Anda ke distribusi, jika Anda benar-benar berpikir itulah yang saya katakan. (Saya kira tidak.)
Emanuel Berg
@darvidsOn: Ya ... itu yang saya katakan (?). (Saya kira itu adalah kebetulan bahwa bahasa penulisan skrip besar itu semua dimulai dengan huruf P.)
Emanuel Berg
@ EmanuelBerg Anda menyebut "intermingling" antara Perl dan Linux berdasarkan fakta bahwa Perl memiliki lisensi GNU. Ada banyak perangkat lunak di kedua port FreeBSD dan banyak distribusi Linux yang memiliki lisensi lain, dan banyak perangkat lunak yang tidak berjalan baik yang dilisensikan di bawah berbagai lisensi GNU (GPL, LGPL, FDL, ...).
CVn
1

Saya pikir jawaban untuk pertanyaan ini sebagian bersejarah, sebagian praktis.

Sedangkan untuk sejarah, Perl adalah bahasa yang berkelas. Ini lebih berkelas daripada Python (belum lagi PHP), meskipun saya tidak tahu apa yang "lebih baik" (jika itu entah bagaimana bisa dianalisis secara formal, yang saya ragu). Dan orang-orang berkelas yang menggunakan (atau menggunakan) Perl biasanya adalah orang-orang yang memutuskan apa yang harus menjadi bagian dari distro Linux.

Adapun apa yang praktis, Perl adalah masih lem dari banyak hal: OS dan web sama (sekali lagi, LAMP, tidak melupakan baik Python atau PHP). Jadi mengapa tidak memasukkan sesuatu yang berguna untuk banyak tujuan? Dan terlebih lagi, mengapa menghapus segala sesuatu yang ada di sana (dan tidak menyebabkan bahaya), dan berguna?

Tapi, seperti yang terjadi, ada catatan tentang ini di edisi terbaru The Linux Magazine (# 151, Juni 2013). Rupanya, untuk mengkompilasi kernel Linux, beberapa skrip Perl pendek dan sederhana digunakan. (Sekali lagi, "lem" peran Perl dalam OS.) Sekarang, salah satu pengembang kernel telah mengirimkan tambalan dari penulisan ulang skrip-skrip tersebut, kali ini bukan di Perl, tetapi sebagai "skrip shell Unix" (apakah itu sh?). Dengan begitu, Perl tidak perlu diinstal untuk siapa pun yang menyusun kernel. Tapi, tambalan itu (dikirimkan beberapa kali) belum diambil. Dan salah satu alasan untuk ini adalah, begitu keluar dalam cuaca dingin, Perl tidak mungkin dibiarkan masuk. Orang-orang menyukai Perl, dan mereka tidak ingin berpisah dengannya.

Sekarang, ini hanya menyentuh pinggiran pertanyaan ini karena mungkin sebagian kecil pengguna Linux cenderung mengkompilasi kernel. Tapi itu adalah bagian lain dari teka-teki (dan saya curiga ada banyak).

Emanuel Berg
sumber
1
Bukan komentar untuk Anda, Emanuel, tetapi untuk orang-orang yang tidak ingin berpisah dengan perl, seberapa sulitkah untuk hanya menginstalnya jika Anda membutuhkan / menginginkannya?
MattBianco