Python ve Perl Tartışmasına Derinlemesine Dalın - Python veya Perl'i Ne Öğrenmeliyim?


Genellikle yeni bir programlama dili tanıtıldığında, sektördeki bazı dahi beyinler arasında, dilin halihazırda köklerini yaymakta olan dille karşılaştırıldığı bir tartışma başlar. BT endüstrisinde sıklıkla bir tür söylenti yayılıyor ve yeni olan, genellikle özellikler, sözdizimi veya çekirdek CPU ve GC zamanı ve diğerleri de dahil olmak üzere bellek yönleri olsun, her açıdan kendi türünün mevcut olanı ile karşılaştırılıyor.

Java ile C#, C++ vb. arasındaki tartışma da dahil olmak üzere bu tür vakaların pek çok örneği geçmişten alınıp incelenebilir. Bu konuda oldukça dikkat çeken bir durum da kısa sürede birbiri ardına ortaya çıkan iki dil (Python ve Perl) arasındaki tartışmaydı.

Oysa Python başlangıçta ABC dilinin devamı olarak, ona adını veren yazar için yalnızca bir "hobi" programlama projesi (Unix/C korsanlarını cezbedecek) olarak icat edildi. en büyük yıldızı Monty Python'un serisi.

Önerilen Okuma: Linux'ta Python Programlamaya ve Komut Dosyasına Başlarken

Perl, rapor işlemeyi kolaylaştırmayı amaçlayan bir Unix kodlama dili olarak neredeyse 2 yıl kadar önceydi. C, awk, sed ve kabuk betiği dahil birçok dilin birleşiminin bir karışımıydı.

Dikkat edilmesi gereken nokta, farklı niyetlerle evrilen bu dillerin sürekli olarak karşılaştırılıyor olması, bu da beni araştırıp nedenlerini anlamaya yöneltti. Bunlardan önemli olanlarını aşağıda sıralıyorum:

  1. Her ikisi de Unix İşletim Sistemini hedef aldı; biri bilgisayar korsanları için, diğerleri ise raporları işlemek için.
  2. Her ikisi de nesne yönelimlidir (Python daha fazladır) ve yorumlanır; biri kodlama söz konusu olduğunda güçlü bir şekilde yazılmış ve açıktır, örneğin Python, ve diğeri bir bloğu temsil etmek için parantezlerle çirkin yazmaya izin verir, yani Perl
  3. Perl'ün tek bir görevi yapmanın birçok yolu varken Python'un işleri yapmanın tek ve tek bir yoluna odaklandığını söylediğimizde her ikisi de prensipte birbirine zıttır.

Python vs Perl – Karşılaştırılan Özellikler

Bu tartışmanın derinliklerine inelim ve bu iki dilin birbirinden farklı olduğu genel yönleri bulmaya çalışalım. Ayrıca sektörde duyulan “Python, eğitim tekerlekleri olan Perl'dür” veya “Python, Perl'e benzer ancak farklıdır” gibi birçok klişenin doğruluğunun kaynağını bulmaya çalışalım. güçlü> ”böylece bu hiç bitmeyen tartışmaya doğru bir çözüm bulmaya çalışabiliriz.

1. Python'un Temiz ve Perl'ün Karmaşık Sözdizimi Karşılaştırması

Kod okunabilirliği söz konusu olduğunda Python, Perl'e göre büyük bir avantaja sahiptir. Python'un kodu, yıllar sonra kod okurken bile Perl'in kodundan çok daha anlaşılırdır.

Kod bloğunu temsil eden girinti ve doğru yapılanma sayesinde Python'un kodu çok daha temizdir. Öte yandan Perl, sözdizimini  C gibi çeşitli programlama dillerinden, kabuk komut dosyasından ve hatta düzenli ifadeler söz konusu olduğunda awk ve sed filtrelerinden ödünç alır.

Önerilen Okuma: Günlük Linux Sistem Yönetimi Görevleri için 15 Yararlı 'sed' Komutu

Bunun dışında, bir kod bloğunu temsil eden '{' ve '}' ve her satırın sonuna gereksiz ';' eklenmesiyle Perl'deki kod, Çirkin senaryolara izin verdiği için aylar ya da yıllar sonra okursanız anlamakta zorluk çekiyorsunuz.

2. Perl'ün Yerleşik ve Python'un 3. Taraf Regex ve İşletim Sistemi Operasyonları Desteği

Perl dili söz dizimini C'den ve sed, awk vb. gibi diğer UNIX komutlarından alır. Bu nedenle herhangi bir üçüncü taraf modülünü içe aktarmadan çok güçlü ve yerleşik normal ifade desteğine sahiptir.

Ayrıca Perl, yerleşik işlevleri kullanarak işletim sistemi işlemlerini gerçekleştirebilir. Öte yandan, Python'da hem işlemler için (yani regex için re) hem de işletim sistemi işlemleri için os, sys için gereken üçüncü taraf kitaplıkları bulunur. Bu tür işlemleri yapmadan önce emin olun.

Perl'ün regex işlemleri 'sed' benzeri bir sözdizimine sahiptir, bu sadece arama işlemlerini değil aynı zamanda bir dize üzerindeki değiştirme, yerine koyma ve diğer işlemleri de kişinin bilmesi gereken Python'dan daha kolay ve hızlı bir şekilde yapılmasını kolaylaştırır. ve ihtiyaca cevap veren işlevleri hatırlayın.

Örnek: Perl ve Python'da dizedeki bir rakamı arayan bir program düşünün.

Import re
str = ‘hello0909there’
result = re.findall(‘\d+’,str)
print result
$string =  ‘hello0909there’;
$string =~ m/(\d+)/;
print “$& \n”

Perl sözdiziminin çok kolay olduğunu ve 're' üçüncü taraf modülünü içe aktaran Python sözdizimine göre avantaj sağlayan sed komutundan ilham aldığını görüyorsunuz.

3. Python'un Gelişmiş OO Programlaması ile Perl'ün Tek Satır Programlaması Karşılaştırması

Python'un Perl'i gölgede bıraktığı özelliklerden biri de gelişmiş OO programlamasıdır. Python, temiz ve tutarlı söz dizimi ile kapsamlı nesne yönelimli programlama desteğine sahiptir; buna karşın Perl'deki OOP nesnesi, paketin yerine kullanıldığı durumlarda güncelliğini yitirmiştir sınıflar için.

Önerilen Okuma: Python Django Web Çerçevesine Başlarken

Ayrıca, Perl'de OO kodunu yazmak, koda çok daha fazla karmaşıklık katacaktır; bu da sonunda kodun anlaşılmasını zorlaştıracaktır; hatta Perl'deki alt yordamların programlanması çok zordur ve daha sonra anlaşılması da zorlaşır.

Öte yandan Perl, çeşitli görevleri gerçekleştirmek için komut satırında kullanılabilecek tek satırlık satırları nedeniyle en iyisidir. Ayrıca Perl kodu sonunda çeşitli görevleri python'a göre daha az kod satırıyla gerçekleştirebilir.

Perl'ün daha az LOC ile daha fazlasını yapma yeteneğini vurgulayan her iki dilin kısa kod örneği:

try:
with open(“data.csv”) as f:
for line in f:
print line,
except Exception as e:
print "Can't open file - %s"%e
open(FILE,”%lt;inp.txt”) or die “Can’t open file”;
while(<FILE>) {
print “$_”; } 

Artıları ve Eksileri – Python vs Perl

Bu bölümde Python ve Perl'ün Artılarını ve Eksilerini tartışacağız.

Python'un AVANTAJLARI:

  1. Temiz ve zarif bir sözdizimine sahip olması, bu dili, herhangi bir programlama dilini uygulamalı olarak öğrenmek isteyen acemiler için ilk programlama dili olarak mükemmel bir seçim haline getiriyor.
  2. Çok gelişmiş ve doğal OO Programlamaya sahiptir, ayrıca Python'da iş parçacığı programlama Perl'den çok daha iyidir.
  3. Python'un tercih edildiği birçok uygulama alanı var ve hatta Perl'den daha iyi performans gösteriyor. Beğen: CGI komut dosyası oluşturma için Perl tercih edilir, ancak günümüzde Python'un Django ve web2py benzeri web komut dosyası yazma dilleri daha popüler hale geliyor ve sektörde büyük ilgi görüyor.
  4. CPython, IronPython ve Jython gibi farklı programlama dilleri için çeşitli SWIG sarmalayıcıları vardır ve bunların geliştirilmesi, geliştirmeden önce yapılmıştır Perl için SWIG sarmalayıcıları.
  5. Python kodu her zaman iyi girintilidir ve başka birinin kodunu veya hatta kendi kodunuzu yıllar sonra okusanız bile okunması ve anlaşılması kolaydır.
  6. Python, Büyük Veri, Altyapı Otomasyonu, Makine Öğrenimi, NLP vb. gibi çeşitli uygulamalar için iyidir. Açık Kaynak olması nedeniyle aktif toplulukların büyük desteği.

Python'un EKSİLERİ:

  1. regex ve dize tabanlı işlemler de dahil olmak üzere Python'da yürütmenin genellikle Perl'den daha yavaş olduğu birkaç alan vardır.
  2. Bazen Python'da değişkenin tipini elde etmek zordur, çünkü çok büyük kodlarda, telaşlı ve karmaşık hale gelen bir değişken tipini elde etmek için sonuna kadar gitmeniz gerekir.

Perl'ün AVANTAJLARI:

  1. Perl, güçlü tek satırlık satırlara sahiptir ve hatta çeşitli görevleri gerçekleştirmek için komut satırında kullanılabilen UNIX boruları benzeri sözdizimi sağlar; ayrıca Unix'ten ve onun komut satırı programlamasından etkilenir, bu nedenle UNIX'ten etkilenen birçok komutu kodlamasına entegre eder.
  2. Perl, sed ve awk benzeri güçlü UNIX araçlarından etkilendiğinden, güçlü regex ve dize karşılaştırma işlemleriyle tanınır. Değiştirme, eşleştirme, değiştirme gibi normal ifade ve dize işlemlerinde Perl, birkaç satır kod gerektiren Python'dan daha iyi performans gösterir. Aynı. Ayrıca birçok dosya G/Ç işlemi, istisna yönetimi Perl'de daha hızlı yapılır.
  3. Rapor oluşturmaya yönelik bir dil söz konusu olduğunda Perl, yazarın Perl'ün rapor oluşturmaya yönelik olduğu gibi bir dil geliştirmesinin ana nedenlerinden biri olarak piyasaya sürülmesinden bu yana her zaman ünlü olmuştur.
  4. Perl'ün kullanım alanı bulduğu birçok uygulama alanı Ağ Programlama, Sistem Yönetimi, CGI Komut Dosyası Oluşturma'dır (burada Python, Django ve web2py ile Perl'ün üstesinden gelmektedir), vesaire.
  5. Perl'ün onlardan önce kullandığı sembollerle değişken türünü tanımlamak kolaydır, örneğin: '@' dizileri tanımlar ve '%' karmaları tanımlar.

Perl'in EKSİLERİ:

  1. Perl'ün çok karmaşık bir kodu var ve bu da acemi birinin anlamasını zorlaştırıyor. Alt rutinler ve hatta '$`', '$&' vb. gibi diğer sembollerin anlaşılması ve programlanması daha az deneyimli bir programcı için zordur. Ayrıca, kaliteli bir deneyiminiz olmadığı sürece Perl kodunu okuduğunuzda anlamak zor ve karmaşık olacaktır.
  2. OO Perl'de programlama, OO programlamada hiç bilinmediğinden biraz eskidir ve iş parçacığı oluşturma gibi birçok işlem de Perl'de daha az telaffuz edilir.

Çözüm

Yukarıda görüldüğü gibi, hedefledikleri uygulamalara göre her iki dil de iyi durumdayken Python, yeni başlayanların ilk tercihi olarak Perl'e göre biraz avantajlıdır. temiz ve anlaşılması kolay kod, diğer yandan Perl, dizi manipülasyon işlemleri ve UNIX için işletim sistemi gibi bazı gelişmiş tek satırlık işlemler ve bilinen diğer çeşitli işlemler söz konusu olduğunda Python'dan daha iyi performans gösteriyor.

Yani sonuçta her şey hedeflediğiniz spesifik alana bağlı. Bu makale hakkındaki tüm yorumlarınız memnuniyetle karşılanacaktır ve size göre Python mu yoksa Perl mü kazanırsa konu hakkındaki görüşlerinizi belirtmenizi rica ediyoruz.