Apakah Perl masih merupakan bahasa yang bermanfaat dan layak? [Tutup]

77

Saya tahu itu mungkin telah ditanyakan sebelumnya, tetapi tidak ada yang terjadi ...

Apakah Perl masih sesuatu yang dianggap berguna? Jika seseorang adalah seorang programmer baru (baik yang benar-benar baru dalam pemrograman atau hanya beberapa bulan / tahun pengalaman) akan Perl menjadi sesuatu yang dianggap berharga untuk dipelajari?

Apakah Perl masih digunakan dengan frekuensi? Apakah masih populer?

Atau Perl sedang sekarat dibandingkan dengan bahasa seperti Python, Ruby, PHP, ASP.NET, dll?

Pada dasarnya bermuara pada ini:

  • Apakah masih digunakan / masih sering digunakan? Jika ya, apakah sedang sekarat? Jika tidak, apakah itu akan membuat kembali?
  • Apakah itu sesuatu yang layak dipelajari?
  • Bagaimana cara membandingkan permintaan dengan bahasa seperti Python dalam popularitas dan kegunaan / kelayakan? Bisakah bahasa seperti Python atau Ruby dianggap pengganti untuk Perl?

Juga, akankah versi-versi baru dari Perl benar-benar membawa peningkatan besar pada komunitas Perl, dan mungkin membawa Perl kembali ke pusat perhatian dibandingkan dengan bahasa lain?

SUNTING:

Oke, saya kira inilah pertanyaan yang lebih baik dan ditulis ulang:

Apakah Perl masih tumbuh, atau apakah "sekarat"? Apakah masih merupakan bahasa yang layak dipelajari dan digunakan? Proyek apa yang benar-benar "bersinar" dibandingkan dengan bahasa lain? Apa yang membuat Perl bahasa untuk dipilih? Pada dasarnya: apakah Perl tumbuh usang dibandingkan dengan bahasa lain, dan jika demikian, apakah Anda berharap itu berubah, atau berlanjut?

Dan terima kasih kepada semua orang yang telah menjawab sejauh ini, diskusi ini sangat menarik!

Bob
sumber
12
Jangan kehilangan perspektif, menurut TIOBE itu masih dalam sepuluh besar, di depan Ruby dan bahkan JavaScript.
Daniel

Jawaban:

60

Pertama-tama, selalu lebih baik untuk ambigu .

Bisnis berbicara tentang Perl 5 ketika berbicara Perl, tetapi di tanah yang sangat jauh, di luar pulau yang berpikiran mendalam , suku desain-oleh-komite masih memasak sepotong besar Perl 6 (dan hampir siap, dengan mesin yang ditulis dalam Haskell dan didukung oleh air mata para dewa )

Ok, katanya, untuk apa Perl 5 hari ini?

  • sistem / intraweb web lama - beberapa tidak akan mati

  • penambangan data / analisis statistik - mesin perl regex, meskipun sedikit ketinggalan jaman , ( PCRE, pustaka spin-off, menambahnya dengan cara apa pun yang mungkin dan itu adalah PHPmesin default ) masih bagus untuk analisis sederhana

  • Administrasi sistem UNIX - Perl harus selalu diinstal pada UNIX.
    Anda dapat mengandalkannya sudah tersedia bahkan di Mac OS X.

  • prototyping jaringan - banyak pakar jaringan inti mempelajari Perl saat itu sedang populer; dan mereka masih melakukan pembuktian konsep dengan itu.

  • keamanan - banyak pakar keamanan juga membutuhkan prototyping cepat . (dan perbaikan otomatis cepat) Perl dapat, dan tidak, menutupinya.

Koleksi CPAN yang luas sangat berguna , ketika berhadapan dengan prototipe.
(Baterai mungkin tidak termasuk, tetapi masih ada di sana, di rak )

Ingatlah kelemahannya :

  • Dukungan objek dalam Perl menyebalkan , Anda memberkati referensi dan melakukan hal-hal yang tidak suci atas nama objek, lalu bertanya-tanya mengapa Anda mengambil semua masalah di tempat pertama.
  • Membaca Perl orang lain lebih dari sekadar kerajinan, itu sains , dan juga menyakitkan .
  • Perl bagus, itu membuat Anda berpikir bagus, itu membuat Anda merasa bagus, Anda menjadi rockstar pemrograman . Sekarang, pikirkan tentang bangun, dan pergi bekerja di kantor yang penuh dengan bintang rock : itu adalah "perahu yang mengguncang" keras. Harapkan fluktuasi liar.
ZJR
sumber
19
@WorldEngineer setuju, tetapi yang terburuk tentang hal itu adalah dari perl, Ruby tidak merasa sama sekali: itu hanya terasa seperti versi perl yang bodoh, berkinerja buruk.
ZJR
12
Saya hanya melihat satu kekurangan di sana. Secara pribadi, saya kebetulan menikmati memberkati referensi saya, tetapi, bagi mereka yang tidak, ada Moose (di CPAN), yang merupakan sistem objek yang cukup baik yang disalin oleh bahasa lain. Dan, sementara saya suka keindahan, saya belum pernah bertemu banyak bintang rock yang terobsesi dengan diri sendiri di dunia Perl. Ada jauh lebih serius, pengembang disiplin (yang kebetulan suka bersenang-senang di waktu luang mereka) di komunitas Perl daripada ada bintang rock. (Saya secara eksplisit menyangkal menjadi programmer rockstar sampai dan kecuali wanita mulai melemparkan celana mereka kepada saya saat saya menulis kode.)
Dave Sherohman
3
@johannes masih harus berurusan dengan Hukum Van Rossum: "Whenever you find a python executable preinstalled, it's the wrong version"Konsekuensi:"sometimes the right version is available, but it has the wrong name"
ZJR
2
Perl juga masih cukup besar di ruang bioinformatika.
dietbuddha
3
+1 untuk administrasi sistem. Saya belum pernah melihat OS berbasis unix tidak termasuk perl. Saya bahkan pernah melihatnya di beberapa OS linux tertanam yang menggunakan Busybox untuk userlandsanya
Earlz
23

Menurut pendapat saya, setelah bekerja dengan Perl lagi setelah beberapa tahun hampir tidak menggunakannya, itu lebih baik dari sebelumnya. Perl 5 memiliki banyak kedahsyatan di CPAN, bahkan OO dapat dilakukan sekarang. (Lihat Modern Perl )

Perl 5 masih jauh dari mati. Lihat saja beberapa situs web Perl dan CPAN dan di cakrawala ada bahasa yang sama sekali baru - Perl 6.

Ada banyak sumber daya di web, blog, dan presentasi tentang mengapa itu tidak buruk dan mengapa ia memiliki reputasi buruk yang tidak layak - lihat saja mereka untuk mendapatkan pemahaman.

Nornagest
sumber
7
Menurut pendapat saya CPAN bagus jika Anda membutuhkan roda dalam bentuk apa pun, tetapi kurang bagus jika Anda membutuhkan pabrik mobil.
@ ThorbjørnRavnAndersen CPAN sangat bagus jika Anda membutuhkan roda dalam bentuk apa pun. Masalahnya adalah itu shape($wheel) == 'round' ? available_in_cpan($wheel) : false;bukan filter yang valid.
Jason Lewis
Hanya karena OO ada di Perl tidak berarti itu sebenarnya bagus.
kirbyfan64sos
22

Hal utama yang masih dilakukan Perl adalah CPAN - ada banyak modul pra-penulisan yang sangat mudah untuk menemukan sesuatu yang Anda butuhkan.

Yang mengatakan, saya tidak akan belajar Perl. Perl adalah bahasa yang bagus untuk orang-orang yang sudah mengetahuinya (seperti saya), tetapi Python tampaknya (dari sudut pandang orang luar saya) bahasa yang lebih baik untuk melakukan jenis file yang cepat dan kotor dan penguraian teks yang digunakan Perl untuk menjadi " masuk ke "bahasa untuk.

Peter Mortensen
sumber
Dan menurut Anda apakah itu memberikan keunggulan terhadap bahasa lain? Atau apakah itu hanya membuatnya setara dengan bahasa lain. Sebagai contoh, kerangka kerja NET. Tampaknya juga dikemas dengan berbagai metode dan kelas yang berguna.
Bob
6
@ Paul Tomblin - Itu cara yang agak kasar untuk mengatakannya. "Hal utama yang masih harus dilakukan olehnya ..." <- Hal utama C / C ++ bagi mereka adalah bahwa banyak perangkat lunak yang masih tertulis di dalamnya. Selain itu, mereka sampah.
Benteng
Setuju dengan Idigas, karena Anda bisa mengatakan hal yang sama tentang Jawa yang memiliki banyak paket ...
Izkata
1
Pertanyaannya bukan "Apakah C ++ atau Java bahasa yang baik". Pertanyaannya adalah apakah Perl masih layak. Dan ada dua alasan mengapa saya masih menulis aplikasi web saya di Perl: CPAN dan saya punya banyak kode yang sudah saya tulis.
Paul Tomblin
7
Jika saya mulai sekarang, saya mungkin akan menggunakan Python. Tapi saya menggunakan Perl karena saya bagus di Perl.
Paul Tomblin
19

Ketika saya memutuskan untuk belajar Perl sebagai bahasa pertama saya beberapa tahun yang lalu ada beberapa faktor yang memandu keputusan saya:

  • apakah ada banyak bahan referensi yang bagus tentang bahasa tersebut?
  • dapatkah saya dengan mudah menemukan bantuan dengan pertanyaan saya?
  • Apakah bahasa tersebut digunakan secara aktif oleh populasi beragam yang besar?
  • Adakah proyek aktif yang akan membantu saya dengan tujuan saya?

Bagi saya jawabannya adalah ya. Saya seorang desainer grafis. Saya belajar HTML dan CSS beberapa tahun yang lalu tetapi perlu meningkatkan keterampilan saya setelah klien menginginkan lebih dari situs web mereka. Saya telah menggunakan berbagai kerangka kerja php yang memberi saya bug untuk benar-benar belajar memprogram. Saya melakukan banyak penelitian dan menemukan proyek yang didukung dengan baik seperti Template Toolkit serta yang baru seperti Perl Dancer dan Mojolicious. Dokumentasi yang disertakan dengan Perl sangat membantu serta perpustakaan publikasi.

Saya telah menemukan daftar mail Perl sangat ramah untuk pemula dan aktif. Di PerlMonks, orang-orang dari seluruh dunia datang dengan pertanyaan dan jawaban untuk berbagai aplikasi. Ada beberapa situs berita Perl aktif, blog dan stream. Sumber daya ini telah mengajari saya banyak tentang Perl dan pemrograman.

Memang, itu adalah pengalaman SAYA. Saya tidak tahu persis berapa banyak orang yang masuk ke situs-situs ini, berlangganan milis atau membangun aplikasi web mereka, misalnya, menggunakan Perl. Saya juga tidak bisa mengomentari seberapa baik atau buruk pengalaman saya seandainya saya memilih bahasa lain untuk memulai. Saya tidak ragu saya dapat menemukan banyak aspek positif yang sama di komunitas bahasa lain. Saya bisa mengatakan saya masih senang dengan pilihan yang saya buat.

luis.roca
sumber
Saya belajar Perl sebagai bahasa pertama saya pada tahun 1996 karena saya baru saja beralih ke Linux dari Windows untuk OS utama saya. Perl tidak pernah menjadi bahasa web yang hebat (meskipun PHP adalah distilasi murni dari semua yang ditawarkan oleh Perl jahat), tetapi ini fantastis sebagai pengganti skrip bash. Masalahnya muncul ketika orang mencoba berpura-pura ada yang namanya peluru perak.
Jason Lewis
16

Popularitas suatu bahasa tidak banyak berhubungan dengan kelayakan atau kegunaannya. Perl masih merupakan bahasa yang sangat berguna. Reputasinya, layak atau tidak, sebagai tidak ramah bagi pemula pada akhirnya berarti tidak ada yang baru akan mempelajarinya jika mereka bisa menolongnya. Satu-satunya alasan saya tidak menggunakannya lagi adalah karena tidak ada orang lain yang saya tahu menggunakannya lagi.

Karl Bielefeldt
sumber
5
Jadi bukankah pernyataan "Satu-satunya alasan saya tidak menggunakannya lagi adalah karena tidak ada orang lain yang saya kenal menggunakannya lagi" yang menunjukkan fakta bahwa popularitas mungkin memang ada kaitannya dengan kelayakan atau kegunaannya? Ngomong-ngomong, bukan itu pertanyaan saya, yang benar-benar ingin saya ketahui, apakah Perl masih berguna? Kapan Anda memilihnya daripada bahasa lain (seperti pada, kapan itu benar-benar bersinar)?
Bob
1
Bahasa ada sebagai sarana ekspresi kepada orang lain, mengatakan bahwa seberapa populer suatu bahasa dengan nilai yang disajikannya tidak berdasar pada pendapat saya.
kesalahan
4
Ini sangat berbasis lingkungan ... Jika Anda seorang * nix sysadmin, pilihan Anda untuk menyelesaikan tugas-tugas umum mendidih menjadi Perl vs sed + awk + grep + bash ... dan Perl umumnya lebih mudah daripada mengingat 4 sintaks untuk sebuah skrip satu kali.
Jason Lewis
12

Sebagai catatan, saya telah memprogram di Perl 5 selama sekitar 15 tahun, jadi saya agak bias. Karena itu, saya sangat suka Perl. Jangan dengarkan para penentang, dan jangan berpikir bahwa umurnya entah bagaimana merupakan indikator dari daya simpannya. Cara terbaik untuk melihat Perl adalah dengan melihatnya dibandingkan dengan bahasa lain:

  • PHP - PHP adalah bahasa pemrograman web yang cukup bagus; jangan salah paham. Tapi, itu hanya bahasa pemrograman web. Bahkan aplikasi web memerlukan cronjobs mereka untuk melakukan proses pembersihan, dan Anda harus melakukan beberapa hal aneh untuk mewujudkannya. Jangankan harus menulis skrip cepat untuk administrator UNIX atau mem-parsing file teks. Plus, PHP tidak memiliki CPAN.

  • Ruby - Bahasa ini terlalu baru dan "script kiddie" untuk selera saya. Satu-satunya hal yang saya dengar tentang Ruby adalah Ruby on Rails. Perl memiliki Catalyst dan Dancer (sebagai kerangka kerja MVC), yang merupakan MVC sangat bagus, tapi itu bukan landasan bahasa. Anda tidak akan menemukan "Ruby" sebagai persyaratan dalam tawaran pekerjaan dalam waktu dekat (jika pernah). Plus, Ruby tidak memiliki CPAN.

  • Python - Dalam kata-kata Larry Wall, Python hanyalah minyak ular. Python peduli tentang whitespace dan bahasa terakhir yang saya gunakan yang peduli tentang whitespace adalah BASIC. Juga, seperti BASIC, pada dasarnya dirancang untuk menjadi bahasa pemula yang mudah digunakan. Akhirnya, tidak ada CPAN di sini.

  • Java - Java adalah bahasa anak yang bermasalah. Konsepnya adalah untuk memiliki mesin virtual ini yang berjalan pada platform apa pun, tetapi karena popularitas yang sangat besar dari bahasa di kursus perguruan tinggi, Anda melihat aplikasi Java di mana saja mereka seharusnya tidak. Misalnya, aplikasi web berbasis server in-house seharusnya tidak ada. Ini server tunggal dengan spesifikasi mereka mendefinisikan dan itu akan dibungkus dalam VM terpisah dengan jejak memori yang terbatas. Java gembung, dan mereka tidak memiliki CPAN.

  • C # - Saya sebenarnya telah menggunakan bahasa ini cukup sedikit sekarang, dan saya sepertinya telah membentuk hubungan cinta / benci dengannya. Mampu membebani metode dengan parameter berbeda itu keren dan menyenangkan. Tetapi, jika Anda menginginkan bahasa yang akan menggerutu di setiap baris kode Anda tentang tipe casting , maka C # adalah untuk Anda. Ya tuhan, ia ingin Anda menempatkan casting eksplisit DI MANA SAJA! Membuat kelas itu menyenangkan, tetapi tiba-tiba Anda menyadari bahwa Anda menghabiskan lebih banyak waktu membuat kelas untuk menjadikan bahasa sialan itu BEKERJA daripada benar-benar menulis kode nyata.

    Selain itu, C # tidak memiliki ... oke, memiliki .NET, yang sangat bagus dan luas. Namun, saya masih lebih menyukai CPAN karena Anda masih bisa menulis modul sendiri dan mengeluh kepada penulis tentang bug atau cacat desain. Dan semuanya gratis. Plus, Perl bekerja menuju Perl.NET di masa depan, jadi kami mungkin akan merancang aplikasi Windows lama.

Perl adalah bahasa yang bagus yang memiliki:

  • Ekspresi Reguler - Jika satu hal yang bisa dilakukan Perl dengan baik, itu adalah manipulasi teks. Ya, banyak bahasa memiliki ekspresi reguler, tetapi Perl hampir saja menciptakannya, dan ada alasan mengapa grep memiliki mode "Perl Regular Expression", atau mengapa Oracle memiliki bagian tentang "Ekstensi yang dipengaruhi Perl dalam Ekspresi Reguler Oracle". Ini built-in dan tidak memerlukan modul apa pun.

  • Fleksibilitas - Anda memiliki tiga tipe variabel dasar: Skalar, Array, dan Hash. Itu dia. Itu yang kamu butuhkan. Anda tidak memiliki int, byte, string, atau semua omong kosong itu. Angka Perl itu baik-baik saja. Dan Anda dapat menggunakan referensi yang Anda inginkan tanpa takut kebocoran memori atau menyebabkan seluruh PC lumpuh. Bahasa hanya berfungsi.

  • Portabilitas - Perl berfungsi baik di web. Ini berfungsi dengan baik di UNIX. Bahkan bekerja dengan cukup baik di Windows. Tidak ada fungsi pada satu fungsi. Ini adalah jack-of-all-trade, tetapi juga master (kebanyakan) segalanya.

  • Sangat mudah untuk melakukan banyak hal dengan kode kecil - Beri saya file kosong 1K dan saya bisa menulis semua hal dengan spasi itu. Bahkan satu-liner Perl sangat bagus untuk ditambahkan ke dalam pipa baris perintah.

  • CPAN - Saya tidak bisa menekankan betapa baiknya menemukan apa pun yang Anda butuhkan untuk apa pun. Apa itu "apa saja"? Nah, bagaimana dengan modul DB untuk setiap database atau hal yang dapat Anda bayangkan, mulai dari Oracle ke iPod ke CSV ke Adabas ke Yaswi? Bagaimana dengan beberapa server web berfitur lengkap? Bagaimana dengan pembaca file Excel, atau modul SNMP, atau modul yang membaca komentar untuk baris debug, atau modul yang membantu Anda memprogram lebih cepat? Sebuah proyek yang saya lakukan saat ini adalah menulis generator peta Terraria yang dinamis, menambah dari modul yang ada bernama Games :: RolePlay :: MapGen. .NET tidak akan pernah memiliki sesuatu seperti itu.

    Plus, sangat mudah untuk menginstal modul apa pun melalui CPAN. Dapatkan dari Debian. Instal langsung dari CPAN. Melakukan pekerjaan sebaik apt-get dalam menyelesaikan dependensi. Saya tidak punya masalah mengatakan sysadmin saya untuk menginstal modul X dari CPAN, karena itu hanya perintah satu-liner sederhana.

Ya, ia memiliki kekurangannya, dan ya, saya bias terhadapnya, tetapi Anda mungkin sudah terlalu sering mendengar yang negatif. Mereka tidak lebih penting daripada positif, bukan dengan tembakan panjang.

Brendan Byrd
sumber
14
-1 terutama untuk tidak mengakui bahwa bahasa lain memiliki alat yang sama baiknya jika tidak lebih baik dari CPAN. Maven Central untuk Jawa misalnya? Ini memiliki lebih banyak artefak daripada CPAN dan ini adalah 0-liner untuk menginstal artefak Maven karena mereka secara otomatis diidentifikasi melalui analisis dependensi Model Obyek Proyek. Saya juga kurang berpengalaman dengan Ruby Gem tetapi saya percaya mereka kira-kira setara dengan CPAN.
mikera
8
PHP memiliki PEAR. Dan itu bukan hanya bahasa pemrograman web.
MattBianco
25
Saya tidak akan mengatakan Anda sedikit bias. Anda jelas bias. Saya tidak percaya bahwa Anda dapat sedikit Python terutama karena memiliki spasi yang signifikan dan karena Larry (tentu saja bukan sumber objektif di sini) menggunakan ungkapan minyak ular. Dan sama sekali tidak ada tawaran pekerjaan untuk Ruby? Kapan terakhir kali Anda melihat pasar kerja? Setidaknya berusaha untuk membangun kredensial Perl.
Muhammad Alkarouri
6
-1 untuk perspektif yang jelas bias dan tidak diteliti pada bahasa lain. Saya setuju bahwa Python adalah minyak ular, tetapi Ruby == "script kiddie" tidak masuk akal. Saya belum pernah melihat upaya intrusi berbasis Ruby di salah satu server yang saya kelola. Ini kebanyakan Python. PHP adalah bahasa pemrograman yang dapat diterima dalam arti apa pun? Shenanigans. Komentar Anda tentang C # menunjukkan kenaifan yang menakjubkan terkait pengetikan dan / atau orientasi objek. Tetap pada Perl, sobat. Serius, saya akan selalu mencintai Perl karena itu adalah bahasa pemrograman 'nyata' pertama saya, dan brilian untuk tugas sysadmin, tetapi jawaban ini lebih buruk daripada buruk.
Jason Lewis
8
+1 Untuk menghilangkan setiap bahasa yang pernah saya sukai (atau benci) - kecuali Perl, tentu saja. :-)
jpaugh
12

Kinerja adalah salah satu alasan utama untuk memilih perl. Dibandingkan dengan Python, Ruby atau bahasa scripting berbasis JVM lainnya, kilatnya cepat.

Inilah sebabnya mengapa tidak pernah diganti dalam ruang penambangan data, semua bahasa lainnya (freebie) lebih lambat dalam menangani volume data yang besar.

James Anderson
sumber
6
Bisakah Anda memberikan dukungan / tolok ukur untuk pernyataan ini? Bagiku, tolok ukur terakhir yang saya lihat untuk Perl vs. Ruby / Python lebih disukai yang terakhir, esp. ketika termasuk implementasi alternatif dari yang terakhir.
Jason Lewis
2
Setiap komentar tentang kinerja harus merupakan generalisasi kecuali jika rilis dan lingkungan spesifik dikutip. Banyak tanda bangku di luar sana - hentenaar.com/serendipity/index.php?/archives/… onlyjob.blogspot.com/2011/03/… sangat khas. Anda benar, versi terbaru dari ruby ​​cukup cepat, tetapi, perl memiliki rilis "peningkatan kinerja" yang teratur sehingga tidak ada masalah untuk mempertahankannya. LUA mengalahkan segalanya.
James Anderson
Lua sangat berkobar.
Jason Lewis
12

Perl memiliki tempatnya. "Reputasi buruk" -nya umumnya karena memungkinkan Anda memiliki fleksibilitas besar untuk melakukan hal-hal yang harus dilakukan dengan alat yang berbeda.

Jika Anda bertanya pada diri sendiri pertanyaan, "Apa yang saya coba capai? Dan adakah alat yang tepat untuk menyampaikan ini?" maka Anda adalah bagian dari perjalanan ke sana.

Jika Anda menulis skrip cepat, maka menggunakan bahasa skrip masuk akal. Jika Anda ingin membuat aplikasi yang kompleks, maka Anda "bisa" menulisnya di Perl, tetapi Anda mungkin tidak seharusnya.

Namun, karena pertanyaan Anda berkaitan dengan seorang programmer yang agak baru, mungkin saya sarankan meninggalkan Perl sendirian untuk saat ini. Hanya karena Anda akan mempelajari lebih sedikit kebiasaan buruk dari bahasa yang kurang fleksibel.

Ptolemy
sumber
3
Baiklah, tetapi Python adalah opsi yang sangat layak untuk membuat skrip cepat juga, tetapi Anda juga dapat merentangkannya untuk membuat program yang lebih besar. Apakah hal yang sama tidak berlaku untuk Perl? Apakah itu membuat Python lebih baik daripada Perl?
Bob
@ Bob: Saya pikir sebagian besar adalah apa yang Anda gunakan untuk menulis dan seleramu. Terkadang, ada juga beberapa pustaka perl berguna yang tidak Anda miliki dalam python dan sebaliknya.
dagnelies
1
@ Bob: Saya sarankan dia untuk mencoba python dulu, ini lebih ramah-noob. Kemudian, saya akan memberitahunya untuk memilih bahasa yang sama sekali berbeda sebagai bahasa kedua, seperti Skema.
dagnelies
1
@ Bob: Keseluruhan .NET framework hanya tersedia di Windows. Di ruang Unix / Linux, Perl adalah bahasa yang bagus untuk mengganti skrip shell, melakukan administrasi sistem, dan apa pun yang melibatkan banyak pemrosesan teks dan tidak banyak lagi. Itu melakukan hal-hal yang secara langsung (terakhir saya melihat) Python membutuhkan sedikit struktur untuk. Ini umumnya membuat Perl bahasa pemrograman umum yang lebih buruk, tetapi lebih baik untuk aplikasi yang lebih khusus.
David Thornley
1
@ Bob Sebenarnya, itu poin yang menarik. Perl sangat berguna jika Anda memiliki skrip shell yang membatasi batas bash. Perl menampungnya dengan cukup mudah, karena Anda hanya bisa meletakkan backtick di sekitar sebagian besar perintah dan itu masih akan berfungsi.
Stephen Gross
12

Saya tertarik pada Python oleh tata letaknya - struktur blok adalah "apa yang Anda lihat adalah apa yang Anda dapatkan" - dan tidak mengerti mengapa ada orang yang tidak menyukai ini. Saya pikir itu, dan, adalah ide yang bagus.

Saya kembali ke Perl. Sepertinya lebih baik dipikirkan sebagai alat praktis. Dalam teori ilmu komputer, Python dan Ruby "lebih baik". Tapi saya bekerja di dunia nyata.

Ruby dan Python lebih modis di kalangan anak-anak yang baru lulus dari perguruan tinggi. Sebagian besar programmer yang ada di Facebook akan mengikuti mode saat ini dan pergi dengan Ruby atau Python. Posting asli menggambarkan hal ini: ia mengonfigurasi "Apakah ini berharga" dengan "Apakah masih populer?"

Saya tidak tahu atau tidak peduli apakah Perl "populer" di dunia Facebook. Ini mungkin bahasa scripting yang paling banyak digunakan di antara orang-orang yang mencapai banyak hal, yang merupakan hal yang sangat berbeda. Beberapa komentator yang berpikir bahwa bahasa favorit mereka memiliki sumber daya yang sebanding dengan CPAN tidak tahu seberapa luas dan dalamnya CPAN.

pengguna83421
sumber
5
Ruang putih yang signifikan adalah ide yang mengerikan. Selalu, selalu akan. Yang sedang berkata, meskipun saya menggunakan Ruby di mana saja masuk akal, saya masih memiliki beberapa skrip Perl untuk tugas sysadmin yang saya tidak punya alasan untuk menulis ulang di Ruby. Mengapa? Mereka bekerja dengan baik, dan mereka berada di sweet spot Perl. Mengapa membuat lebih banyak pekerjaan?
Jason Lewis
1
Memaksa orang untuk indentasi dengan benar adalah ide yang baik terlepas dari bahasa. Bahasa yang lebih baik (seperti Python) hanya menerapkan lebih banyak kekuatan.
Brendan
10

Perl adalah bahasa untuk menulis alat sekali pakai. Ada berbagai aplikasi lain di mana Perl lebih atau kurang gigih dan berguna, tetapi jika Anda tidak memiliki perintah shell untuk melakukan hal yang aneh, jika Anda memerlukan rintisan untuk mengambil beberapa data dari soket aneh, jika Anda memiliki file log atau database dan perlu mengekstraksi beberapa konten dengan cara yang di luar jangkauan SQL, jika Anda perlu menarik beberapa gambar dari server, atau jika template halaman web Anda semua mengandung jenis kesalahan yang sama dan ingin memperbaikinya semua - mencambuk keluar skrip Perl 10 menit adalah cara untuk pergi.

Menulis hal yang sama di Shell kemungkinan akan terjadi tetapi karena peringatan sintaksis shell yang aneh, itu akan memakan waktu lebih lama dan bisa jauh lebih sulit. Menulis ini dalam bahasa "profesional" seperti C ++, C #, Java dll akan memakan waktu sekitar satu jam sebagai perbandingan. Menulis ini dalam bahasa scripting yang bersaing seperti Python, Ruby atau PHP adalah alternatif yang layak dan kemungkinan akan memakan waktu hingga 20% lebih lama untuk menulis.

Ya, program dalam bahasa lain akan lebih mudah dikelola dan lebih mudah dibaca. Tetapi jika Anda membutuhkan solusi SEKARANG, Perl adalah cara untuk pergi.

SF.
sumber
8

Check out "upload baru untuk CPAN" - halaman . Ada> 20 modul baru atau modul terbaru yang diunggah setiap hari. Saya pikir jumlah rata-rata unggahan harian telah perlahan namun terus meningkat. Apakah aktivitas ini menandakan bahasa yang sedang sekarat? Tidak!

Itu selalu membuat saya terkesan bagaimana beberapa modul penting (untuk pemrograman web misalnya, atau antarmuka untuk driver RDBMS) telah dipertahankan dan disempurnakan selama bertahun-tahun. Seringkali oleh penulis asli, atau oleh pengelola baru. Seringkali ini telah membuat kode yang sangat matang.

Untuk mendapatkan modul ke dalam CPAN, penulis didorong untuk menempuh jalan yang sangat jauh untuk mempertahankan kompatibilitas ke belakang (dengan versi perl 5 yang lebih lama) serta independensi platform. Lihat misalnya http://matrix.cpantesters.org/?dist=DBI (DBI = antarmuka basis data, lapisan abstraksi)

Juga bahasanya sendiri: Saya agak bingung dengan semua fitur baru yang telah dimasukkan ke dalam bahasa sejak 5.10, 5.12., 5.14. Saya belum belajar memanfaatkan fitur baru. Perl telah berkembang terlalu cepat untuk saya!

knb
sumber
7

Saya belajar Perl 4 dan 5 saat melakukan administrasi sistem di tahun 90-an. Hari ini saya melakukan pemrograman Java (di mana menggunakan Perl biasanya tidak diinginkan), dan saya masih menggunakan Perl sesekali di komputer pengembangan saya. Ini biasanya semata-mata untuk melakukan datamining pada file log di mana ekspresi reguler di Perl dan perancah untuk parsing oneliners teks di Perl membuatnya sangat mudah dilakukan pada baris perintah.

Pada dasarnya saya menggunakannya hari ini sebagai awk pada steroid. Untuk ini sangat brilian.

Salah satu fitur Perl adalah ada lebih dari satu cara untuk melakukan hampir semua hal. Ini memungkinkan Anda untuk memilih satu yang sesuai dengan cara berpikir Anda - yang sangat bagus ketika hanya meretas satu atau dua oneliner, tetapi tidak begitu hebat ketika harus memahami kode Perl orang lain karena mereka biasanya memilih cara lain untuk melakukannya yang cocok dengan mereka cara berpikir.

Saya akan menganggap Perl alat yang sangat berguna yang mungkin ingin Anda pelajari jika Anda fokus pada apa yang dapat dilakukan ekspresi reguler untuk membantu Anda menyaring file teks Anda. Jauhi segala sesuatu yang berkaitan dengan benda.

pengguna1249
sumber
Jadi, Anda akan mengatakan itu sebagian besar berguna untuk skrip cepat untuk menangani teks?
Bob
Menurut saya ya, maka itu benar-benar bagus. BISA melakukan hal-hal lain juga, tetapi mereka tidak dipanggang dengan baik.
1
Walaupun Perl sangat pandai menangani teks melalui ekspresi regulernya, tidak perlu melalui itu jika Anda tahu Python atau Ruby (atau mungkin PHP), saya akan mengatakan, karena mereka juga sangat baik dengan ekspresi reguler. Python sedikit lebih verbose, tetapi juga lebih bersih.
Eric O Lebigot
@ EOL, tapi baik Python atau Ruby atau PHP tidak bisa menjadi top scaffolding untuk pengurai teks parsing. Lihat misalnya opsi "-i".
@ ThorbjørnRavnAndersen: Setuju, untuk satu kalimat: oneliners Python (opsi -c) memang lebih panjang. :)
Eric O Lebigot
7

Untuk sementara pengembangan Perl5 mandek karena fokus pada Perl6 yang menyebabkan penundaan lama antara rilis 5.8 dan 5.10. Sejak saat itu komunitas telah benar-benar mulai menyadari bahwa Perl5 dan Perl6 adalah bahasa yang berbeda dan telah ada rilis baru yang sangat reguler baru-baru ini.

Perl baru-baru ini memenangkan kompetisi aplikasi web menggunakan Catalyst (Meskipun saya lebih suka Mojolicious ) dan beberapa praktik Perl modern baru membawa banyak ide OO bersih untuk Perl dengan hal-hal seperti Moose.

Menurut pendapat saya, sebagai pengembang Perl, Perl memiliki warisan yang hebat serta masa depan yang cerah tidak hanya menjadi lakban yang menyatukan jaringan perusahaan tetapi juga tempat dalam panasnya aplikasi web.

AFresh1
sumber
3

Saya bukan programmer ahli. Tetapi saya menemukan Perl sangat mudah dipelajari (saya menggunakan buku unta), selalu menyenangkan, dan PerlMonks komunitas bantuan yang paling ramah di bidang pemrograman. Perl tampaknya telah kehilangan daya tarik seksnya dalam hal mempekerjakan Ruby dan Python, tetapi hanya di industri tertentu (terutama web).

isomorfisma
sumber
3

Jika Anda tahu perl, lebih mudah untuk mempelajari Powershell Microsoft. Mengenai sintaks powershell, itu tidak memiliki akar perl , tetapi Powershell telah mengambil banyak fitur dan konsep dari bahasa Perl, misalnya, dari atas kepala saya: variabel $ _, awalan array dengan @ dan nilai string / skalar dengan $, konvensi file untuk penamaan dan penyimpanan modul, dan, dalam beberapa cara, Autoloading, untuk beberapa nama.

Jadi jika Anda tahu Perl itu akan berguna, dan itu sedikit lebih mudah untuk belajar Powershell, atau untuk memahami pola pikir Powershell, atau untuk menjaga idiom Powershell dalam ingatan jangka panjang Anda. Menghadapi Powershell tanpa latar belakang perl mungkin sedikit aneh. Hanya mengatakan.

Tentu saja bahasa Powershell menambahkan hal-hal baru, khususnya .NET friendlyness, dan tidak melanjutkan fungsi perl / operator perl yang menyediakan "kompatibilitas mundur" dengan alat baris perintah unix.

knb
sumber
2

Grant McLean hanya mengunggah film pendek berdasarkan evolusi mapofcpan.org , menunjukkan cara CPAN berevolusi seiring waktu dengan cara visual gaya peta. Cukup jelas tentang keasyikan komunitas. Tidak sekarat.

Perl tentu saja menderita karena reputasi buruknya, karena banyak legenda dan karena komunitasnya tidak mau dan tidak berusaha menjadikannya sebagai bahasa pemrograman yang paling keren di dunia. Sangat sulit untuk memahami mengapa begitu banyak orang benar-benar yakin bahwa itu adalah bahasa yang mengerikan. Anda dapat menulis kode menyeramkan dengan bahasa apa pun. Perl mendapatkan praktik terbaik seperti bahasa lainnya, Anda hanya perlu mengimplementasikannya dengan lebih dari satu cara untuk melakukannya berdasarkan filosofi.

Saya dapat melihat alasan yang sangat menyedihkan untuk reputasi buruk ini: untuk waktu yang lama, situs web komunitas Perl mendapatkan desain UI yang sangat jelek (seperti misalnya perlmonks.org ). Secara pribadi, saya benar-benar tidak peduli tentang ini , mungkin saya bahkan datang ke Perl karena untuk alasan ini: tidak banyak situs web UI yang modis, tetapi Anda dapat mempercayai alat tersebut, komunitas dengan kepercayaan yang lebih karena tidak mencoba untuk lebih indah dari itu. Namun, alat berkualitas tidak berarti Anda tidak boleh fokus pada penampilan, dan itu akhirnya menjadi semacam kesalahan untuk tidak menjaga tampilan.

Sebagai contoh, seorang teman saya (yang menyukai bahasa yang lebih modis) mengatakan kepada saya bahwa logo Perl6 saat ini mengerikan dan akan menjadi masalah untuk menarik daging muda ke Perl. Jauh lebih banyak masalah daripada dengan batu yang terang atau logo yang dirancang dengan baik lainnya .

Saya percaya itu adalah alasan yang sangat menyedihkan untuk tidak populer, tetapi itulah yang menguasai dunia.

Sebf
sumber
Jika Anda tidak akan menunjukkan perhatian pada detail pada logo Anda, mengapa saya harus menganggap Anda akan menunjukkan perhatian pada detail dalam detail yang lebih dalam dari bahasa Anda? Bukan hanya logo yang terlihat buruk, logo yang buruk juga menunjukkan gejala budaya yang tidak menghargai bagaimana hal-hal disajikan, dan yang memperkuat stereotip di balik semua lelucon "tulis-satunya bahasa"
Racheet
Saya pernah mendengar tentang orang yang mengerjakan reputasi buruk. Orang-orang ini adalah advokasi Perl modern dan pengembangan yang didorong oleh tes. Situs web seperti builtinperl.com , questub.io mengubah cara kita harus mempertimbangkan kasing Perl. Duck Duck Go juga sukses besar, tidak ada yang bisa mengatakan mereka tidak peduli bagaimana hal-hal disajikan. Bahkan metacpan.org telah menjadi cara untuk memberikan kepada pengguna CPAN (kekuatan Perl utama) pengalaman baru melalui menampilkan kode, dokumentasi dan modul pencarian dengan UI yang bagus. Saya tidak percaya pada logo bahasa: apakah C memiliki logo? Bahasa bukan merek.
smonff
1

Perl jelas tidak sekarat. Itu tidak pernah semenyenangkan beberapa bahasa lain.

Meskipun benar, Perl sendiri merupakan bahasa yang lama, namun memiliki komunitas yang bersemangat dan sangat produktif, yang nilainya ada di perpustakaan CPAN. Saya tidak berpikir bahasa apa pun memiliki perpustakaan seluas dan selengkap CPAN. Bahkan tidak ada yang mendekati. Di CPAN Anda akan menemukan ribuan modul dan kerangka kerja, yang melakukan apa saja yang dapat Anda bayangkan. Perlu server web? Ada HTTP :: Server. Perlu database mandiri? Ada Muldis :: DB. Apa pun kebutuhan Anda, Anda biasanya akan menemukan beberapa modul yang memenuhi kebutuhan Anda, Anda hanya perlu memilih salah satu yang paling sesuai dengan aplikasi Anda.

Adapun Ruby, Python dan pesaing lainnya, saya pikir persaingan yang sehat telah menjadi manfaat luar biasa bagi Perl. Apa pun yang didapat bahasa lain, komunitas Perl menulis ulang di Perl. Sebagai contoh, ketika Ruby terbang pada kesuksesan Rails, Perl mendapat Dancer, yang dalam banyak hal lebih baik daripada Rails.

Perl jelas tidak mati, juga tidak sekarat. Tidak ada yang mencolok terjadi di sekitar itu, tidak ada perusahaan, yang akan mendapat manfaat dari hyping up Perl, sehingga tidak mendapat banyak perhatian media, dan tidak semua anak tahu Perl, jadi ada sedikit yang membicarakannya.

Sudah lebih dari 6 bulan sejak posting asli Anda. Jika Anda masih belum memutuskan, bantulah diri Anda sendiri dan pelajari Perl.

Rox
sumber
0

Saya telah menggunakan perl untuk pengembangan game web sejak tahun 90-an, dan setelah istirahat 3 tahun, saya setuju dengan poster sebelumnya. Saya kembali dan menemukan itu berkembang jauh di atas dan di luar tempat saya meninggalkannya.

Apakah sedang sekarat? Tidak mungkin.

Apakah itu berguna? Saya akan hilang tanpa itu. Mungkin itu hanya saya, tetapi dari tanggapan lain, saya akan mengatakan itu adalah makhluk hidup yang sangat aktif.

Guruchild
sumber
-6

Saya mendapatkan sebagian besar pengalaman web profesional saya dengan PHP, tetapi ketika saya tumbuh sebagai seorang pengembang hal-hal menjadi sedikit lebih menantang, banyak tugas PHP tidak bisa melakukan atau melakukan sangat tidak efisien. Saya bisa saja mengangkat tangan saya tetapi (berkat Google) saya menemukan diri saya di sesi ssh mengambil keuntungan dari libreoffice, ffmpeg, imagemagick untuk menulis fungsi proses posting untuk PHP. Tidak pernah menggunakannya sebelum saya menggunakan PERL .. terutama karena Perl duduk dengan sempurna di bawah tumpukan LAMP.

(1) sudah diinstal pada semua server LAMP atau setidaknya memiliki rpm baru. (2) memiliki repo CPAN yang luar biasa untuk menghemat banyak waktu Anda. (3) lebih cepat / lebih aman untuk melakukan tugas-tugas di mana PHP yang berjalan pada apache gagal. (4) sangat mirip dengan PHP dan mudah dipelajari.

Campur ide dengan PHP, panggang dengan PERL menggunakan BASH seperti yang diinginkan, balik menurut MySQL lalu sajikan dengan HTML5 dan sejumput jQuery. Ini resep yang bagus.

EDJ
sumber
1
Ada yang mendukung pernyataan ini?
Austin Henley