Perl hala faydalı, uygulanabilir bir dil mi? [kapalı]


77

Daha önce sorulmuş olabileceğini biliyorum, ama işte hiçbir şey yok ...

Perl hala faydalı sayılabilecek bir şey mi? Biri yeni bir programcı olsaydı (ya programlamada tamamen yeni ya da sadece birkaç ay / yıllık deneyim) Perl öğrenmeye değer bir şey mi olurdu?

Perl hala frekans ile kullanılıyor mu? Hala popüler mi?

Yoksa Perl Python, Ruby, PHP, ASP.NET, vb. Dillerle karşılaştırıldığında ölüyor mu?

Temelde bu aşağı kaynar:

  • Hala kullanılıyor mu / hala sık kullanılıyor mu? Eğer evet ise, ölüyor mu? Hayır ise geri dönecek mi?
  • Öğrenmeye değer bir şey mi?
  • Talebi hem popülerlik hem de kullanılabilirlik / uygulanabilirlik açısından Python gibi dillerle nasıl karşılaştırır? Python veya Ruby gibi diller Perl'in yerine geçebilir mi?

Ayrıca, Perl'in yeni sürümleri Perl topluluğuna gerçekten büyük bir gelişme getirecek ve belki de Perl'i diğer dillere kıyasla merkeze geri getirecek mi?

DÜZENLE:

Tamam, sanırım daha iyi ve daha iyi bir soru var.

Perl hala büyüyor mu, yoksa "ölüyor" mu? Hala öğrenmeye ve kullanmaya değer bir dil mi? Diğer dillere kıyasla hangi projeleri gerçekten parlatıyor? Perl'i seçmek için dil yapan nedir? Esasen: Perl diğer dillere göre modası geçmiş durumda mı ve öyleyse bunun değişmesini veya devam etmesini mi bekliyorsunuz?

Ve şimdiye kadar cevap veren herkese teşekkür ederim, tartışma gerçekten ilginçti!


12
Bakış açısını kaybetmeyelim, TIOBE'ye göre hala Ruby'de ve hatta JavaScript'in ilk 10'unda.
Daniel

Yanıtlar:


60

Her şeyden önce, her zaman küçük düşürmek daha iyidir .

İşletmeler Perl hakkında konuşurken Perl hakkında konuşurlar, ancak çok uzak bir ülkede, derin düşünen adanın ötesinde , komite tarafından tasarlanan kabile hala Perl 6'nın ağır bir levhasını pişiriyor (ve neredeyse hazır Haskell ve tanrıların gözyaşları tarafından desteklenmektedir )

Tamam, dedi, Perl 5 bugün ne için kullanılıyor?

  • eski web sistemleri / intrawebs - bazıları sadece ölmeyecek

  • veri madenciliği / istatistiksel analiz - perl regex motoru, biraz modası geçmiş olsa bile , ( PCREsabitlenmiş bir kütüphane, mümkün olan herhangi bir şekilde yukarı çıkar ve varsayılan PHPmotordur) hala basit analiz için iyidir

  • UNIX sistem yönetimi - Perl daima UNIX'e kurulmalıdır.
    Mac OS X'te bile kullanıma hazır olduğuna güvenebilirsiniz.

  • ağ prototipleme - birçok çekirdek ağ uzmanı tüm öfke olduğu zaman Perl'i öğrendi; ve hala konsept kanıtlarını onunla yapıyorlar .

  • güvenlik - birçok güvenlik uzmanının da hızlı prototip oluşturması gerekir . (ve hızlı otomatik düzeltmeler) Perl bunu yapabilir ve yapar.

Geniş CPAN koleksiyonu prototiplerle çalışırken çok kullanışlıdır .
(Piller dahil olmayabilir, ancak hala oradalar, raftalar )

Yine de sakıncaları unutmayın :

  • Perl'deki nesne desteği çok berbattır , referansları kutsar ve nesneler adına kutsal olmayan şeyler yaparsınız, daha sonra neden tüm sıkıntıları ilk başta yerine getirdiğinizi merak edin.
  • Diğer insanların Perl'lerini okumak bir zanaattan, bilimden ve acı verenlerden daha fazla.
  • Perl şık, seni şık hissettiriyor, şık hissediyor, programlama rock yıldızı oluyor . Şimdi kalkmayı ve rock yıldızı dolu bir ofiste çalışmayı düşünün : bu zor bir “kayalık bot” . Vahşi dalgalanmalar bekleyin.

19
@WorldEngineer hemfikirdi, ama bu konuda en kötüsü perl'den gelmesi, Ruby'nin kendinden çok garip hissetmemesi: aptalca , düşük performanslı, perl versiyonu gibi geliyor.
ZJR

12
Orada sadece bir dezavantaj görüyorum. Şahsen, referanslarımı kutsamadan zevk alırım, ama istemeyenler için, diğer dillerin kopyaladığı yeterince iyi bir nesne sistemi olan Moose (CPAN'da) var. Ve nezaketimi sevsem de, Perl dünyasındaki o kadar saplantılı rock yıldızı ile tanışmadım. Perl topluluğunda, rock yıldızlarından çok daha ciddi, disiplinli geliştiriciler (serbest zamanlarında sallananlar gibi) var. (Kod yazarken, kadınlar bana külot atmaya başlamadıkça ve sürece, kesinlikle bir rock yıldızı programcısı olmayı reddediyorum.)
Dave Sherohman 24:11

3
@johannes Van Rossum Yasası ile ilgilenmeye devam ediyor: "Whenever you find a python executable preinstalled, it's the wrong version"Sonuç:"sometimes the right version is available, but it has the wrong name"
ZJR

2
Perl ayrıca biyoinformatik alanda hala oldukça büyük.
dietbuddha

3
Sistem yönetimi için +1. Unix tabanlı bir işletim sistemi perl içermeyen hiç görmedim. Hatta onların userlands için Busybox kullanılan bazı gömülü Linux işletim bunu gördüm
Earlz

23

Bence, Perl ile birkaç yıl çalıştıktan sonra neredeyse hiç kullanılmadıktan sonra, her zamankinden daha iyi. Perl 5, CPAN'da çok fazla garipliğe sahip, OO bile şu anda yapılabilir. ( Modern Perl'e bakın )

Perl 5 ölmekten çok uzak. Sadece bazı Perl web sitelerine ve CPAN'a bir göz atın ve ufukta yepyeni bir dil var - Perl 6.

Web'de, bloglarda ve neden kötü olmadığına ve neden hak etmediği kötü bir üne sahip olduğuna dair pek çok kaynak var - sadece anlamaları gerekenlere bir göz atın.


7
Bence CPAN, herhangi bir şekle sahip bir tekerleğe ihtiyacınız varsa harika, ancak bir otomobil fabrikasına ihtiyacınız varsa daha az harika.

@ ThorbjørnRavnAndersen CPAN, herhangi bir şekle sahip bir tekerleğe ihtiyacınız olursa harikadır. Sorun şu ki shape($wheel) == 'round' ? available_in_cpan($wheel) : false;geçerli bir filtre değil.
Jason Lewis

Sırf Perl'de OO var olduğu için aslında iyi olduğu anlamına gelmez.
kirbyfan64sos

22

Perl'in hala sahip olduğu en önemli şey CPAN'dır - ihtiyacınız olan bir şeyi bulmak çok kolay, önceden yazılmış birçok modül var.

Bu, Perl'i öğrenemeyeceğimi söyledi. Perl, zaten (benim gibi) bilen insanlar için harika bir dildir, ancak Python (yabancıların bakış açısından) Perl’in eskiden olduğu gibi hızlı ve kirli dosya ve metin ayrıştırma işlemlerini yapmak için daha iyi bir dil gibi görünmektedir. için "git" dili.


Ve bunun diğer dillere karşı üstünlük sağladığını düşünüyor musunuz? Yoksa bu sadece diğer dillere eşit mi getiriyor? Örneğin, .NET çerçevesi de çeşitli faydalı yöntem ve sınıflarla doludur.
Bob

6
@ Paul Tomblin - Bu koymak için oldukça kaba bir yol. “Başlıca perl hala bunun için yazı yazıyor…” <- C / C ++ 'ın kendileri için kullandığı asıl şey, içinde birçok yazılımın hala yazılı olduğu. Bunun yanı sıra, onlar çöp.
Rook

Idigas'la aynı fikirdeyim, çünkü Java konusunda bir sürü paketin olduğu konusunda aynı şeyi söyleyebiliyorsunuz ...
Izkata

1
Soru "C ++ ya da Java iyi bir dil mi" değildi. Soru Perl'in hala uygulanabilir olup olmadığıydı. Web uygulamalarımı hala Perl'de yazmamın iki nedeni var: CPAN ve zaten yazdığım bir ton kod var.
Paul

7
Şimdi başlıyor olsaydım, muhtemelen Python kullanırdım. Ama Perl kullanıyorum çünkü Perl'de iyiyim.
Paul Tomblin

19

Birkaç yıl önce Perl'i ilk dilim olarak öğrenmeye karar verdiğimde kararımı yönlendiren birkaç faktör vardı:

  • Dilde çok iyi referans materyali var mı?
  • sorularımda kolayca yardım bulabilir miyim?
  • Dil, geniş bir popülasyon tarafından aktif kullanımda mı?
  • hedeflerime yardımcı olacak aktif projeler var mı?

Benim için cevap evet oldu. Ben grafik tasarımcıyım. HTML ve CSS'yi yıllar önce öğrendim ancak müşterilerim web sitelerinden daha fazla istedikten sonra becerilerimi geliştirmem gerekti. Bana gerçekten programlamayı öğrenmek için hata verdi çeşitli php çerçeveler kullanmıştı. Çok fazla araştırma yaptım ve Template Toolkit gibi iyi desteklenmiş projeler ve Perl Dancer ve Mojolicious gibi yeni projeler buldum. Perl ile gelen belgeler yayın kütüphanesinin yanı sıra çok yardımcı oldu.

Perl mail listelerini yeni başlayanlar için oldukça uygun ve aktif buldum. PerlMonks'ta dünyanın her yerinden insanlar çok çeşitli uygulamalar için soru ve cevaplarla geliyor. Birkaç aktif Perl haber sitesi, blog ve akarsu var. Bu kaynaklar bana Perl ve programlama hakkında çok şey öğretti.

Verilmiş, bu benim deneyimim. Bu sitelere kaç kişinin giriş yaptığını, posta listelerine abone olduğunu veya web uygulamalarını tam olarak bilmiyorum, örneğin Perl kullanarak. Ayrıca, başlamak için başka bir dil seçtiğimde deneyimimin ne kadar iyi ya da daha kötü olacağı konusunda yorum yapamam. Diğer dillerdeki topluluklarda aynı olumlu yönlerin çoğunu bulabileceğimi sanmıyorum. Yaptığım seçimden hala mutlu olduğumu söyleyebilirim.


Perl'i 1996'da ilk dilim olarak öğrendim çünkü birincil işletim sistemim için Windows'tan Linux'a yeni geçiş yaptım. Perl hiçbir zaman harika bir web dili değildi (PHP, Perl'in sunduğu tüm kötülüğün saf damarı olmasına rağmen), ancak bash komut dosyalarının yerine koymak için harika. Sorun, insanlar gümüş mermi gibi bir şey varmış gibi davranmaya başladığında ortaya çıkar.
Jason Lewis

16

Bir dilin popülaritesinin, uygulanabilirliği veya kullanılabilirliği ile ilgisi yoktur. Perl hala çok kullanışlı bir dil. Yeniliğe karşı düşmanca olmamak, hakettiği ya da başka bir şekilde bilinmesi, sonunda yeni bir kimsenin yardım edebileceklerini öğrenmeyeceği anlamına geliyordu. Artık kullanmamamın tek nedeni, tanıdığım kimsenin artık kullanmaması.


5
Öyleyse, "Artık kullanmamamın tek nedeni, tanıdığım kimsenin artık kullanmamasıdır" ifadesi, popülaritenin belki de hem uygulanabilirliği hem de kullanılabilirliği ile ilgisi olduğu gerçeğinin göstergesidir? Her neyse, sorumun amacı bu değil, gerçekten bilmek istediğim şey Perl hala faydalı mı? Ne zaman diğer dillerden seçtiniz (olduğu gibi, ne zaman gerçekten parlıyor)?
Bob

1
Dil konuşmaları başkalarına ifade aracı olarak var, dilin sunduğu değere ne kadar popüler olduğunu düşünüyorum bence.
Blunders

4
Bu çok çevre temelli ... Eğer bir * nix sysadmin iseniz, genel görevleri yerine getirmek için yaptığınız seçimler Perl'e aittir - sed + awk + grep + bash ... ve Perl genellikle 4 sözdizimini hatırlamaktan daha kolaydır. tek seferlik komut dosyası.
Jason Lewis

12

Kayıt için, yaklaşık 15 yıldır Perl 5'te programlama yapıyorum, bu yüzden biraz önyargılıyım. Bunu söyledikten sonra Perl'i gerçekten seviyorum. Avcıları dinlemeyin ve yaşının bir şekilde raf canlılığının bir göstergesi olduğunu düşünmeyin. Perl'e bakmanın en iyi yolu, diğer dillere kıyasla görmek:

  • PHP - PHP oldukça iyi bir web programlama dilidir; Beni yanlış anlama. Ancak, bu sadece bir web programlama dilidir. Web uygulamaları bile temizleme işlemlerini yapmak için cronjoblarına ihtiyaç duyuyor ve bunun gerçekleşmesi için bazı garip şeyler yapmanız gerekiyor. UNIX yöneticisi için hızlı bir komut dosyası yazmak ya da bir metin dosyasını ayrıştırmak için boşver. Ayrıca PHP'de CPAN yoktur.

  • Ruby - Dil çok yeni ve zevklerim için "senaryo kiddie". Ruby hakkında duyduğum tek şey Ruby on Rails. Perl, çok iyi MVC'ler olan Katalizör ve Dansçı'ya (MVC çerçeveleri olarak) sahiptir, ancak bu dilin temel taşı değildir. Yakında herhangi bir zamanda (herhangi bir zamanda) iş tekliflerinde “Yakut” u bulmayacaksınız. Ayrıca, Ruby'de CPAN yoktur.

  • Python - Larry Wall'in sözleriyle, Python sadece yılan yağıdır. Python boşlukla ilgileniyor ve boşlukla ilgilenen son dil BASIC. Ayrıca, BASIC gibi, kullanımı kolay bir başlangıç ​​dili olacak şekilde tasarlanmıştır. Sonunda, burada hiçbir CPAN yok.

  • Java - Java sorunlu bir çocuk dilidir. Buradaki konsept, herhangi bir platformda çalışan bu sanal makineye sahip olmaktı, ancak kolej derslerinde dilin büyük popülaritesi nedeniyle, Java uygulamalarını, her yerde olmaması gereken yerlerde görüyorsunuz. Örneğin, kurum içi sunucu tabanlı web uygulamaları olmamalıdır. Bu özellikleri ile tek bir sunucu bu da tanımlamak ve sınırlı bellek kaplayan ayrı VM sarılmış olur. Java şişirildi ve CPAN yok.

  • C # - Aslında şimdi Bu dilde biraz kullanıyorum ettik ve onunla bir aşk / nefret ilişkisi oluşmuş gibiydi ettik. Farklı parametrelerle yöntemleri aşırı yükleyebilmek serin ve eğlenceli. Ancak, döküm türü hakkındaki her kod satırında kaltak olacak bir dil istiyorsanız , C # tam size göre. Tanrım, her yerde açıkça bir oyuncu seçmeni istiyor! Sınıfları yapmak eğlencelidir, ancak aniden kahrolası dili gerçekten ÇALIŞTIRMAK için, gerçek kodu yazmaktan daha ÇALIŞTIRMA dersleri için daha fazla zaman harcadığınızı anlıyorsunuz.

    Ayrıca, C # yok ... tamam, gerçekten iyi ve kapsamlı bir .NET var. Ancak yine de CPAN'ı daha çok seviyorum çünkü kendi modüllerinizi hala yazabiliyor ve yazara bir hata veya tasarım hatasıyla ilgili şikayette bulunabiliyorsunuz. Ve hepsi özgür. Artı, Perl gelecekte Perl.NET için çalışıyor, bu yüzden çok geçmeden Windows uygulamaları tasarlıyor olabiliriz.

Perl olan harika bir dil:

  • Normal İfadeler - Perl'in iyi yapabileceği bir şeyse, metin manipülasyonudur. Evet, pek çok dilde düzenli ifadeler var, ancak Perl çoktan onları icat etti ve grep'in "Perl Düzenli İfade" moduna sahip olmasının ya da Oracle'ın "Oracle Düzenli İfadelerde Perl'den etkilenen Eklentiler" konusunda bir bölümünün olmasının bir nedeni var. Dahilidir ve herhangi bir modül gerektirmez.

  • Esneklik - Üç temel değişken türünüz vardır: Skaler, Dizi ve Karma. Bu kadar. Tek ihtiyacın olan bu. Bir int, byte, string ya da bu saçmalıkların hiçbirine sahip değilsiniz. Perl gayet iyi anlıyor. Ayrıca, bellek sızıntısı korkusu olmadan da tüm referansları kullanabilir veya tüm bilgisayarın çökmesine neden olabilirsiniz. Dil sadece çalışıyor.

  • Taşınabilirlik - Perl web'de harika çalışıyor. UNIX'de harika çalışıyor. Hatta Windows'ta oldukça iyi çalışıyor. Güvercin delikleri tek bir işleve bağlı değildir. Bu, her şeyi haiz bir esnaf, aynı zamanda (çoğunlukla) her şeyin efendisidir.

  • Küçük bir kodla çok şey yapmak kolaydır - Bana 1K boş bir dosya verin ve bu alanla ilgili her türlü şeyi yazabilirim. Bir Perl tek gömlek bile bir komut satırı borusuna eklemek harika.

  • CPAN - Herhangi bir şey için ihtiyacınız olan her şeyi bulmanın ne kadar iyi olduğunu vurgulayamıyorum. "Bir şey" nedir? Peki, Oracle'dan iPod'a CSV'ye Adabas'tan Yaswi'ye kadar, hayal edebileceğiniz her veritabanı veya veritabanı için DB modülleri ne durumda? Birkaç tam özellikli web sunucusu hakkında nasıl? Excel dosya okuyucusu, SNMP modülü veya hata ayıklama satırları için yorumları okuyan bir modül veya daha hızlı programlamanıza yardımcı olacak modüller hakkında ne düşünüyorsunuz? Şu an yaptığım bir proje, Games :: RolePlay :: MapGen adındaki mevcut bir modülden artan dinamik bir Terraria harita üreteci yazmaktır. .NET asla böyle bir şeye sahip olmaz.

    Ayrıca, herhangi bir modülü CPAN üzerinden kurmak çok kolaydır. Debian'dan al. Doğrudan CPAN'dan yükleyin. Bağımlılıkların çözümünde apt-get kadar iyi bir iş çıkarır. Sysadmin'e X modülünü CPAN'dan yüklemesini söylemekte hiçbir sorunum yok çünkü bu sadece basit bir liner komutu.

Evet, kusurları var ve evet, ona karşı önyargılıyım, ama muhtemelen olumsuzları çok defa duydunuz. Pozitiflere ağır basmazlar, uzun bir vuruşta değil.


14
-1, diğer dillerin, CPAN’dan daha iyi olmasa da iyi araçlara sahip olduklarını tanımadıkları için. Örneğin Maven Merkezi Java? CPAN'dan daha fazla eseri var ve Proje Nesne Modelinin bağımlılık analizi ile otomatik olarak tanımlandığından Maven eserlerini kurmak için 0 astarlı. Ayrıca Ruby Gems ile daha az deneyimliyim ancak kabaca CPAN'a eşdeğer olduklarına inanıyorum.
mikera

8
PHP'de PEAR var. Ve bu sadece bir web programlama dili değil.
MattBianco

25
Biraz önyargılı olduğunu söyleyemem. Açıkça önyargılısın. Python u hafifçe kullanabildiğinize inanamıyorum, çünkü önemli bir boşluk var ve Larry (kesinlikle burada nesnel bir kaynak değil) yılan yağı ifadesini kullandı. Ve Ruby için hiç iş teklifi yok mu? En son ne zaman iş piyasasını gördünüz? En azından Perl'in kimlik bilgilerini oluşturmaya çalışırken biraz çaba sarfettiniz.
Muhammad Alkarouri

6
-1 Diğer dillerde net bir şekilde önyargılı ve araştırılmamış bir bakış açısı için. Python'un yılan yağı olduğu konusunda hemfikirim ama Ruby == "script kiddie" saçma. Koruduğum herhangi bir sunucuda Ruby tabanlı bir saldırı girişimi hiç görmedim. Çoğunlukla Python. PHP, herhangi bir anlamda kabul edilebilir bir programlama dilidir? Maskaralık. C # hakkındaki yorumlarınız yazma ve / veya nesne yönelimi ile ilgili şaşırtıcı bir saflık göstermektedir. Perl'e sadık kal dostum. Cidden, her zaman Perl'i seveceğim çünkü ilk 'gerçek' programlama dilimdi ve sysadmin görevleri için mükemmeldi, ancak bu cevap kötü değil.
Jason Lewis

8
+1 Hiç sevmediğim (veya nefret ettiğim) her dili ayırt etmek için - tabii ki Perl hariç. :-)
jpaugh

12

Performans perl için tercih nedenlerinden biridir. Python, Ruby veya JVM tabanlı betik dillerinin herhangi biri ile yıldırım hızıyla karşılaştırıldığında.

Bu nedenle, veri madenciliği alanında hiç bir zaman yerini almadığı için, büyük miktardaki veriyi işlemek söz konusu olduğunda tüm diğer (freebie) dilleri daha yavaştır.


6
Bu iddia için destek / kıyaslama sağlayabilir misiniz? Bildiğim kadarıyla Perl ve Ruby / Python için gördüğüm son kriterler, bu sonuncuyu tercih ediyor, esp. ikincisinin alternatif uygulamaları dahil edildiğinde.
Jason Lewis

2
Performans hakkında herhangi bir açıklama, belirli sürümler ve ortamlar alıntılanmadıkça bir genelleme olmalıdır. Pek çok tezgah var - hentenaar.com/serendipity/index.php?/archives/… onlyjob.blogspot.com/2011/03/… oldukça tipik. Haklısın, yakutun son sürümleri oldukça hızlı, ama perl düzenli "performans geliştirme" sürümlerine sahip. LUA her şeyi yener.
James Anderson,

Lua cayır cayır yanıyor.
Jason Lewis

12

Perl'in yeri var. “Kötü itibarı” genellikle farklı bir araçla yapılması gereken şeyleri yapma konusunda size büyük esneklik sağlamasından kaynaklanmaktadır.

Kendinize “Neyi başarmaya çalışıyorum? Bunu sağlamak için uygun araçlar var mı?” Sorusunu sorarsanız. o zaman oradaki yolun bir parçasısın.

Hızlı bir komut dosyası yazıyorsanız, bir komut dosyası dili kullanmak mantıklıdır. Eğer karmaşık bir uygulama oluşturmak istiyorsanız, o zaman Perl'de "yazabilirsin", fakat muhtemelen yazmamalısınız.

Bununla birlikte, sorunuz yeni bir programcı ile ilgili olduğundan, Perl'i şimdilik yalnız bırakmayı önerebilir miyim? Bunun nedeni, daha az esnek bir dilden daha az kötü alışkanlık öğrenmenizdir.


3
Tamam, ancak Python da hızlı bir senaryo oluşturmak için mükemmel bir seçenektir, ancak daha büyük programlar oluşturmak için genişletebilirsiniz. Aynısı Perl için de geçerli değil mi? Bu Python'u Perl'den daha iyi yapar mı?
Bob

@Bob: Sanırım çoğunlukla sizin yazdıklarınız ve zevkleriniz için kullanılır. Bazen python ve tersi olmayan bazı kullanışlı perl kütüphaneleri de vardır.
dagnelies

1
@ Bob: İlk önce pitonu denemesini öneririm, daha noob-dostu. Daha sonra ona Scheme gibi ikinci bir dil olarak tamamen farklı bir dil seçmesini söylerdim.
dagnelies

1
@Bob: .NET çerçevesinin tamamı yalnızca Windows'ta kullanılabilir. Unix / Linux alanında, Perl, kabuk komut dosyalarını değiştirmek, sistem yönetimi yapmak ve pek çok metin işleme içeren bir şey değil, bir çok şey için mükemmel bir dildir. Doğrudan (en son baktım) Python'un biraz yapıya ihtiyaç duyduğu şeyleri yapıyor. Bu genellikle Perl'i daha kötü bir genel programlama dili yapar, ancak daha özel uygulamaları için daha iyidir.
David Thornley

1
@Bob Aslında, bu ilginç bir nokta. Perl, bash sınırlarını zorlayan bir kabuk betiğiniz varsa gerçekten kullanışlıdır. Perl onu kolayca barındırıyor, çünkü komutların çoğunun etrafına geri adım atabiliyorsunuz ve hala çalışıyor.
Stephen Gross

12

Python'a yerleşmesinden etkilenmiştim - blok yapı “ne görüyorsanız onu alırsınız” - ve bunun neden buna neden olan insanlar olduğunu anlamıyorum. Bence bu iyi bir fikirdi.

Yine de Perl'e geri döndüm. Sadece pratik bir araç olarak düşünülmüş daha iyi görünüyor. Bilgisayar bilimi teorisinde, Python ve Ruby "daha iyi" dir. Ama ben gerçek dünyada çalışıyorum.

Ruby ve Python üniversiteden yeni çıkmış çocuklar arasında daha şık. Facebook'taki programcıların çoğu güncel modayı takip edecek ve Ruby ya da Python ile gidecek. Orijinal gönderi bunu gösteriyor: “Hala popüler mi?” İle “Buna değer mi?”

Facebook dünyasında Perl’in “popüler” olup olmadığını ne bilmiyorum ne de umursuyorum. Muhtemelen, çok başarılı olan insanlar arasında en çok kullanılan senaryo dilidir, bu çok farklı bir şeydir. En sevdikleri dilin CPAN ile karşılaştırılabilir bir kaynağı olduğunu düşünen yorumcuların bazıları, CPAN'ın ne kadar geniş ve derin olduğu konusunda hiçbir fikre sahip değil.


5
Önemli boşluk, korkunç bir fikir. Her zaman öyleydi, her zaman olacak. Olduğu söyleniyor, Ruby'yi mantıklı bir yerde kullanmama rağmen, sysadmin görevleri için Ruby'de yeniden yazmak için hiçbir nedenim olmayan birkaç Perl betiğim var. Neden? Güzel çalışıyorlar ve Perl'in tatlı yerinde. Neden daha fazla iş yarattın?
Jason Lewis

1
İnsanları doğru girintiye zorlamak, dil ne olursa olsun iyi bir fikirdir. Daha iyi diller (Python gibi) yalnızca daha fazla güç uygular.
Brendan

10

Perl tek kullanımlık araçlar yazmak için dildir. Perl'in az çok kalıcı ve kullanışlı olduğu çeşitli diğer uygulamalar vardır, ancak garip bir şey yapmak için bir kabuk komutu yoksa, eğer bir garip soketten bazı verileri almak için bir saplamaya ihtiyacınız varsa, bir günlük dosyasına veya Sunucudan birkaç görüntü çekmeniz gerekiyorsa veya web sayfası şablonlarınızın tümü aynı türde bir hata içeriyorsa ve hepsini düzeltmek istiyorsanız - veritabanını ve bazı içeriği SQL erişimi dışında olacak şekilde ayıklamanız gerekir. 10 dakikalık bir Perl betiği üzerinden gitmek yoludur.

Aynı şeyi Shell'e yazmak muhtemelen mümkün olacak, ancak kabuk sözdiziminin tuhaf uyarıları nedeniyle daha uzun sürecek ve çok daha zor olabilir. Bunu C ++, C #, Java gibi herhangi bir "profesyonel" dilde yazmak, karşılaştırmaya göre yaklaşık bir saat sürecektir. Bunu Python, Ruby veya PHP gibi rakip bir betik dilinde yazmak uygun bir alternatiftir ve yazması% 20 daha uzun sürecektir.

Evet, diğer dillerdeki programlar daha bakımlı ve okunması kolay olacaktır. Ama ŞİMDİ bir çözüme ihtiyacınız varsa, Perl gitmek için yoludur.


8

"CPAN'a en son yüklenenler" - sayfasına göz atın . Her gün> 20 yeni modül ya da güncellenmiş modül yükleniyor. Ortalama günlük yükleme sayısının yavaş ama sürekli arttığını düşünüyorum. Bu hareketlilik, ölmekte olan bir dilin işareti midir? Hayır!

Bazı önemli modüllerin (örneğin web programlaması için veya RDBMS sürücülerine arayüzler) yıllarca nasıl korunup geliştirildiğini her zaman etkiliyor. Genellikle asıl yazar veya yeni bakanlar tarafından. Genellikle bu çok olgun bir kod yarattı.

Bir modülün CPAN'a girmesi için, yazarların geriye dönük uyumluluğunu (eski perl sürümleriyle) ve platform bağımsızlığını korumak için çok uzun bir yol kat etmesi teşvik edilmektedir. Bkz. Örneğin http://matrix.cpantesters.org/?dist=DBI (DBI = veritabanı arayüzü, soyutlama katmanı)

Aynı zamanda dilin kendisi: 5.10, 5.12, 5.14'ten beri dile eklenen tüm yeni özelliklerden biraz şaşırdım. Yeni özelliklerden yararlanmayı öğrenmedim. Perl benim için çok hızlı gelişiyor!


7

90'lı yıllarda sistem yönetimi yaparken Perl 4 ve 5 öğrendim. Bugün Java programlama yapıyorum (Perl'i çağırmak genellikle istenmiyor) ve geliştirme bilgisayarımda Perl'i yine de kullanıyorum. Bu genellikle sadece Perl'deki normal ifadelerin ve Perl'deki metin ayrıştırma onelineerlarının yapıştıran yapılarının bir komut satırında yapılmasını çok kolaylaştırdığı günlük dosyalarında veri incelemesi yapmak içindir.

Temelde bugün onu steroidlerin awk olarak kullanıyorum. Bunun için mükemmel.

Perl'in özelliklerinden biri de hemen hemen her şeyi yapmanın birden fazla yolu olması. Bu, sizin düşünme tarzınıza uygun olanı seçmenize olanak tanır - bu sadece bir ya da iki kişiyi bir araya getirirken harikadır, fakat diğer halkları Perl kodunu anlamak zorunda kaldıklarında çok iyi değildir. kendi düşünce tarzlarına uyar .

Perl'i, metin dosyalarınızı gözden geçirmenize yardımcı olacak normal ifadelerin neler yapabileceğine odaklanırsanız öğrenmek isteyebileceğiniz çok faydalı bir araç olarak düşünürdüm. Nesnelerle yapılacak her şeyden uzak durun.


Yani, hızlı betiklerin metni işlemesi için çoğunlukla yararlı olduğunu söyler misiniz?
Bob

Bence evet, o zaman gerçekten, gerçekten çok iyi. Başka şeyler de yapabilir, ancak bunlar iyi pişmiş değil.

1
Perl, metni normal ifadeleriyle işlemede çok iyi olsa da, Python veya Ruby'yi (veya belki PHP'yi) biliyorsanız, bunun üzerinden geçmeye gerek yoktur, çünkü normal ifadelerle de çok iyi olduklarını söyleyebilirim. Python biraz daha ayrıntılı olsa da, aynı zamanda kesinlikle daha temiz.
Eric O Lebigot

@EOL, ancak ne Python, Ruby, ne de PHP metin ayrıştırma işleminde kullanılan iskele üzerinde çalışamaz. Örneğin, "-i" seçeneğine bakınız.

@ ThorbjørnRavnAndersen: Bir gömlek için kabul edildi: Python'un onelinerleri (-c seçeneği) gerçekten daha uzun. :)
Eric O Lebigot

7

Bir süre Perl5 gelişimi, 5.8 ve 5.10 sürümleri arasında uzun bir gecikmeye neden olan Perl6'ya odaklanmasından dolayı durgunlaştı. O zamandan beri, topluluk gerçekten Perl5 ve Perl6'nın farklı diller olduğunu ve son zamanlarda çok düzenli yeni sürümler olduğunu fark etmeye başladı.

Perl kısa süre önce Catalyst'i ( Mojolicious'ı tercih etmeme rağmen) kullanarak bir web uygulaması yarışması kazandı ve yeni Modern Perl uygulamalarından bazıları Moose gibi şeylerle Perl'e daha temiz OO fikirleri getirdi .

Bir Perl geliştiricisi olarak benim görüşüme göre Perl, sadece kurumsal ağları bir arada tutan koli bandı değil, aynı zamanda web uygulamalarının yeni sıcaklığındaki bir yer olarak da parlak bir geleceğin yanı sıra büyük bir mirasa sahiptir.


3

Ben uzman programcı değilim. Ama Perl'i öğrenmesi oldukça kolay (deve kitabını kullandım), her zaman bir zevk buldum ve PerlMonks programlama alanındaki en arkadaşça yardım topluluğu. Perl, Ruby ve Python'a işe alım açısından cinsiyet çekiciliğini yitirmiş görünüyor, ancak yalnızca belirli sektörlerde (özellikle web'de).


3

Perl'i biliyorsanız, Microsoft'un Powershell'i öğrenmek daha kolaydır. Powershell'in sözdizimi ile ilgili olarak, perl kökleri yoktur , ancak Powershell Perl dilinden birçok özellik ve kavram almıştır, örneğin, başımın üstünden: $ _ değişkeni, $ ve @ dizeleri / skalar değerleri modülleri isimlendirmek ve depolamak için kuralları ve bir şekilde bir kaçını isimlendirmek için bir şekilde Autoloading.

Öyleyse Perl'i biliyorsanız, kullanışlı olacaktır ve Powershell'i öğrenmek, Powershell'in zihniyetini kavramak veya Powershell deyimini uzun süreli hafızanızda tutmak biraz daha kolaydır. Bazı perl arkaplanları olmadan Powershell ile karşılaşmak muhtemelen biraz daha tuhaf. Sadece söylüyorum.

Elbette, Powershell dili, özellikle .NET dostu olmak üzere yeni şeyler ekledi ve unix komut satırı araçlarıyla "geriye dönük uyumluluk" sağlayan perl işlevlerinden / operatörlerinden hiçbirine devam etmedi.


2

Grant McLean sadece yükler kısa film evrimine dayalı mapofcpan.org CPAN bir harita tarzı görsel bir şekilde sahip zamanla geliştikçe yolu gösteren,. Topluluğun canlılığı hakkında oldukça açıklayıcı. Ölmek değil.

Perl, pek çok efsane yüzünden ve toplumun istemediği ve dünyanın en sıcak programlama dili olmasını sağlamaya çalışmadığı için, kesinlikle kötü bir üne kavuşuyor. Neden bu kadar çok insanın korkunç bir dil olduğuna kesinlikle ikna edildiğini anlamak çok zor. Herhangi bir dilde ürpertici kod yazabilirsiniz. Perl, başka herhangi bir dilde en iyi uygulamaları elde etti, sadece temel felsefeyi yapmanın birden fazla yolunda uygulamalısınız .

Bu kötü şöhret için çok üzücü bir neden görebiliyorum: Uzun süredir Perl topluluklarının web siteleri çok çirkin UI tasarımları aldı ( örneğin perlmonks.org gibi ). Şahsen, bunu gerçekten umursamıyorum , belki de Perl'e geldim, çünkü bu sebepten dolayı: pek çok modaya uygun web sitesi kullanıcı arayüzü değil, araçlara, topluluğa çok daha fazla inancı olan güvenebilirsiniz çünkü denemez olduğundan daha güzel ol. Ancak, kaliteli araçlar görünüme odaklanmamanız gerektiği anlamına gelmez ve sonunda bakıma dikkat etmemeniz bir tür hata olur.

Örneğin, bir arkadaşım (daha moda dilleri seven), şu anki Perl6 logosunun korkunç olduğunu ve genç eti Perl'e çekmenin bir sorun olacağını söyledi. Parlak bir taş veya diğer iyi tasarlanmış bir logodan çok daha fazla sorun .

Bence popüler olmamanın çok üzücü bir nedeni, ama dünyayı yöneten şey bu.


Logonuzdaki detaylara dikkat göstermeyecekseniz, neden dilinizin daha derin detaylarında detaylara dikkat edeceğinizi varsaymalıyım? Sadece logo kötü görünmüyor, kötü logo da şeylerin sunulmasına değer vermeyen bir kültürün semptomatik olduğunu hissediyor ve bu da "sadece dil yaz" şakalarının arkasındaki
klişeyi güçlendiriyor

İnsanların kötü şöhretleri üzerinde çalıştığını duydum. Bu insanlar modern Perl'in savunuculuğu ve test odaklı bir gelişmedir. Builtinperl.com , questub.io gibi web siteleri Perl vakasını göz önünde bulundurmamız gerektiği şeklini değiştiriyor. Ördek Ördek Go da büyük bir başarı, hiç kimse nasıl sunulduğu umurunda değil diyemez. Metacpan.org bile CPAN kullanıcısına (ana Perl gücü) kod, dokümantasyon ve arama modüllerini güzel bir kullanıcı arayüzü ile görüntüleyerek yeni bir deneyim kazandırmanın bir yolunu buldu. Dil logolarına inanmıyorum: C'nin logosu var mı? Dil bir marka değildir.
smonff

1

Perl kesinlikle ölmüyor. Başka hiçbir dilde olduğu gibi hiç bu kadar sinirli olmamıştı.

Doğru olsa da, Perl'in eski bir dil olduğu, değeri CPAN kütüphanesinde bulunan canlı ve üretken bir topluluğa sahiptir. Hiçbir dilin CPAN kadar kapsamlı ve kapsamlı bir kütüphanesi olduğunu sanmıyorum. Hiçbir şey yaklaşmıyor bile. CPAN'da hayal edebileceğiniz her şeyi yapan binlerce modül ve çerçeve bulacaksınız. Bir web sunucusuna mı ihtiyacınız var? HTTP :: Sunucu var. Bağımsız bir veritabanına mı ihtiyacınız var? Muldis var :: DB. İhtiyaçlarınız ne olursa olsun, genellikle ihtiyacınızı karşılayan birkaç modül bulacaksınız, sadece uygulamanıza en uygun olanı seçmelisiniz.

Ruby, Python ve diğer rakiplere gelince, sağlıklı rekabetin Perl için çok büyük bir fayda olduğunu düşünüyorum. Diğer dillerin aldığı her şey Perl topluluğu Perl'de yeniden yazıldı. Örneğin, Ruby Rails'in başarısı üzerine uçarken, Perl, Rails'den çok daha iyi olan Dancer'i aldı.

Perl kesinlikle ölmedi, ne de ölüyor. Etrafında gösterişli hiçbir şey yok, Perl'i karıştırmaktan fayda sağlayacak bir şirket yok, bu yüzden medyanın dikkatini çekmiyor ve her çocuk Perl'i tanımıyor, bu yüzden daha az konuşuluyor.

Asıl gönderinizden bu yana 6 aydan fazla zaman geçti. Hala karar vermediysen, kendine bir iyilik yap ve Perl'i öğren.


0

90'lı yıllardan beri web oyun geliştirme için perl kullanıyorum ve 3 yıllık bir aradan sonra önceki posterle aynı fikirdeyim. Geri döndüm ve bıraktığım yerin üstünde ve ötesinde gelişmiş bir yol buldum.

Ölüyor mu Bir şans değil.

Yararlı mı Onsuz kaybolurdum. Belki bu sadece benim, ama diğer tepkilerden, çok aktif bir canlı olduğunu söyleyebilirim.


-6

PHP'deki profesyonel web deneyimimin çoğunu elde ettim ancak bir geliştirici olarak biraz daha zorlayıcı bir hale geldikçe, pek çok görev PHP'nin yapamadığı ya da kaba bir şekilde verimsiz bir şekilde yaptığı gibi. Ellerimi fırlatabilirdim ama bunun yerine (google sayesinde) kendimi ssh oturumlarında libreoffice, ffmpeg, PHP için post-post fonksiyonlarını yazmak için kullanmaya başladım. PERL için doğru gitmeden önce asla kullanmam .. çoğunlukla Perl LAMP yığınının altında mükemmel durur.

(1) tüm LAMP sunucularına önceden kurulmuş veya en azından yeni bir rpm'ye sahip. (2) size çok zaman kazandırmak için harika bir CPAN deposu var. (3) apache'de çalışan PHP'nin başarısız olduğu görevleri gerçekleştirmek için daha hızlı / daha güvenli. (4) PHP'ye çok benzer ve öğrenmesi kolay.

PHP ile fikirleri karıştırın, istediğiniz kadar BASH kullanarak PERL ile pişirin, MySQL'e göre çevirip ardından HTML5 ve bir jQuery çizgisiyle servis yapın. Bu harika bir tarif.


1
Bu ifadeleri destekleyecek bir şey var mı?
Austin Henley
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.