Wyszukiwanie w witrynie

Zagłęb się w debatę na temat Pythona i Perla — czego powinienem się nauczyć Pythona czy Perla?


Często, gdy wprowadzany jest nowy język programowania, wśród niektórych genialnych umysłów w branży rozpoczyna się debata, podczas której porównuje się ten język z tym, który już szerzył swoje korzenie. W branży IT często rozprzestrzenia się pewien szum, a nowy jest często porównywany pod każdym względem, może to być funkcja, składnia lub podstawowe aspekty procesora i pamięci, w tym czas GC i tak dalej, z istniejącym jedynym w swoim rodzaju.

Wiele przykładów takich przypadków można wykorzystać i zbadać z przeszłości, w tym debatę pomiędzy Java a C#, C++itp. Jednym z takich przypadków, który wzbudził duże zainteresowanie, była debata pomiędzy dwoma językami, które pojawiły się jeden po drugim w krótkim czasie, tj. Python i Perl.

Podczas gdy Python został początkowo wynaleziony jako następca języka ABC jedynie jako „hobby” projekt programistyczny (który przyciągnął hakerów Unix/C) dla autora, który nazwał go na cześć serial o swojej największej gwieździe Monty Pythonie.

Sugerowana lektura: Pierwsze kroki z programowaniem i tworzeniem skryptów w języku Python w systemie Linux

Perl był prawie dwa lata wcześniej językiem skryptowym Uniksa, którego zadaniem było ułatwienie przetwarzania raportów. Była to mieszanka wielu języków, w tym C, awk, sed i skryptu powłoki.

Warto zauważyć, że te języki, które wyewoluowały z różnych zamiarów, są stale porównywane, co skłoniło mnie do przestudiowania i znalezienia powodów, z których kilka ważnych wymieniono poniżej:

  1. Obydwa atakowały system operacyjny Unix, jeden przeznaczony dla hakerów, a drugi w celu przetwarzania raportów.
  2. Obydwa są zorientowane obiektowo (bardziej w Pythonie) i interpretowane, przy czym jeden jest silnie wpisany i przejrzysty, jeśli chodzi o kodowanie, np. Python, a drugi pozwala na brzydkie pisanie z nawiasami klamrowymi reprezentującymi blok, tj. Perl
  3. Obydwa są w zasadzie przeciwne, gdy mówimy, że Perl ma wiele sposobów wykonywania jednego zadania, podczas gdy Python koncentruje się na jednym i tylko jednym sposobie robienia rzeczy.

Python kontra Perl – porównanie funkcji

Zagłębmy się w tę debatę i spróbujmy zrozumieć ogólne aspekty, w których te dwa języki różnią się od siebie. Spróbujmy też znaleźć źródło prawdy w wielu kliszach, które można usłyszeć w branży, mówiąc: „Python to Perl z kółkami treningowymi” lub „Python jest podobny do Perla, ale inny ”, abyśmy mogli spróbować znaleźć dokładne rozwiązanie tej niekończącej się debaty.

1. Czysta składnia Pythona a złożona składnia Perla

Python ma ogromną przewagę nad Perlem, jeśli chodzi o czytelność kodu. Kod Pythona jest o wiele bardziej przejrzysty i zrozumiały niż kod Perla, nawet jeśli czyta się go po latach.

Dzięki wcięciu reprezentującym blok kodu i odpowiedniej strukturze kod Pythona jest znacznie czystszy. Z drugiej strony Perl zapożycza swoją składnię z różnych języków programowania, takich jak  C, skrypty powłoki, a nawet filtry awk i sed, jeśli chodzi o wyrażenia regularne.

Sugerowana lektura: 15 przydatnych poleceń „sed” do codziennych zadań administracyjnych systemu Linux

Poza tym, gdy '{' i '}' reprezentują blok kodu i niepotrzebne dodanie ';' na końcu każdej linii, kod w Perlu może stać się problem do zrozumienia, jeśli czytasz go po miesiącach lub latach, ze względu na to, że dopuszcza brzydkie napisy.

2. Wbudowana obsługa wyrażeń regularnych i operacji w systemie operacyjnym w języku Perl w porównaniu z obsługą Pythona przez strony trzecie

Język Perl zapożycza swoją składnię z C i innych poleceń UNIX, takich jak sed, awkitp. dzięki czemu ma potężną i wbudowaną obsługę wyrażeń regularnych bez importowania modułów innych firm.

Ponadto Perl może obsługiwać operacje systemu operacyjnego za pomocą wbudowanych funkcji. Z drugiej strony Python ma biblioteki innych firm dla obu operacji, tj. re dla regex i os, sys dla operacji na os, które muszą należy upewnić się przed wykonaniem takich operacji.

Operacje wyrażeń regularnych w Perlu mają składnię podobną do „sed”, co ułatwia nie tylko operacje wyszukiwania, ale także zamianę, podstawienie i inne operacje na ciągu znaków, które można wykonać łatwo i szybciej niż w Pythonie, o czym trzeba wiedzieć i pamiętaj o funkcjach, które odpowiadają potrzebom.

Przykład: Rozważmy program do wyszukiwania cyfry w ciągu w Perlu i Pythonie.

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

Widzisz, że składnia Perla jest bardzo prosta i zainspirowana poleceniem sed, które wykorzystuje składnię Pythona, która importuje moduł „re” strony trzeciej.

3. Zaawansowane programowanie OO w Pythonie a jednowierszowe programy w Perlu

Jedną z funkcji, w której Python przyćmiewa Perl, jest zaawansowane programowanie OO. Python posiada rozbudowaną obsługę programowania obiektowego z czystą i spójną składnią, podczas gdy obiekt OOP w Perlu jest nieaktualny, gdy pakiet jest używany jako substytut na zajęcia.

Sugerowana lektura: Pierwsze kroki z Pythonem Django Web Framework

Ponadto pisanie kodu OO w Perlu znacznie zwiększy jego złożoność, co ostatecznie sprawi, że kod będzie trudny do zrozumienia, nawet podprogramy w Perlu są bardzo trudne do zaprogramowania i ostatecznie trudne do zrozumienia później.

Z drugiej strony Perl jest najlepszy ze względu na jednowierszowe linijki, których można używać w wierszu poleceń do wykonywania różnych zadań. Ponadto kod Perla może ostatecznie wykonywać różne zadania w mniejszej liczbie wierszy kodu niż Python.

Przykład krótkiego kodu obu języków, który podkreśla zdolność Perla do zrobienia więcej przy mniejszym LOC:

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 “$_”; } 

Plusy i minusy – Python kontra Perl

W tej sekcji omówimy zalety i wady Pythona i Perla.

ZALETY Pythona:

  1. Ma przejrzystą i elegancką składnię, co czyni ten język doskonałym wyborem jako pierwszy język programowania dla nowicjuszy, którzy chcą mieć praktyczną znajomość dowolnego języka programowania.
  2. Ma bardzo zaawansowane i nieodłączne programowanie OO, także programowanie wątków w Pythonie jest znacznie lepsze niż Perl.
  3. Istnieje wiele obszarów zastosowań, w których preferowany jest Python, a nawet przewyższa Perl. Na przykład: Perl jest preferowany do pisania skryptów CGI, ale obecnie języki skryptowe Pythona i języki podobne do web2py sieci Web stają się coraz bardziej popularne i cieszą się ogromnym zainteresowaniem branży.
  4. Zawiera kilka opakowań SWIG dla różnych języków programowania, takich jak CPython, IronPython i Jython, a ich rozwój poprzedzał rozwój opakowań SWIG dla Perla.
  5. Kod Pythona jest zawsze dobrze wcięty oraz łatwy do odczytania i zrozumienia, nawet jeśli czytasz kod kogoś innego lub nawet swój kod po latach.
  6. Python jest dobry do różnych zastosowań, takich jak Big Data, Infra Automation, Uczenie maszynowe, NLPitp. ogromne wsparcie aktywnych społeczności ze względu na bycie Open Source.

WADY Pythona:

  1. Istnieje kilka obszarów, w których wykonanie w Pythonie jest zwykle wolniejsze niż w Perlu, w tym regex i operacje oparte na ciągach znaków.
  2. Czasami trudno jest uzyskać typ zmiennej w Pythonie, ponieważ w przypadku bardzo dużego kodu trzeba przejść do końca, aby uzyskać typ zmiennej, który staje się gorączkowy i złożony.

ZALETY Perla:

  1. Perl ma potężne jednowierszowe instrukcje, a nawet zapewnia składnię podobną do systemu UNIX, której można używać w wierszu poleceń do wykonywania różnych zadań, ma również wpływ na Unix i jego programowanie w wierszu poleceń, więc integruje w swoim kodowaniu wiele poleceń inspirowanych systemem UNIX.
  2. Perl jest znany ze swoich potężnych operacji regex i porównywania ciągów znaków, ponieważ ma na niego wpływ sed i awk, podobnie jak potężne narzędzia UNIX. W przypadku operacji wyrażeń regularnych i ciągów znaków, takich jak podstawianie, dopasowywanie, zastępowanie, Perl przewyższa Pythona, co wymagałoby kilku linijek kodu, aby osiągnąć To samo. Również wiele operacji we/wy na plikach, obsługa wyjątków odbywa się szybciej w Perlu.
  3. Jeśli chodzi o język do generowania raportów, Perl zawsze cieszył się sławą od czasu jego wprowadzenia, jako jeden z głównych powodów, dla których autor opracował język taki jak Perl do generowania raportów.
  4. Wiele obszarów zastosowań, w których Perl znajduje swoje zastosowanie, to programowanie sieciowe, administracja systemem, skrypty CGI (tutaj Python pokonuje Perla za pomocą Django i web2py), itp.
  5. Typ zmiennej łatwo jest zidentyfikować po symbolach używanych przed nimi przez Perl, np.: „@” identyfikuje tablice, a „%” identyfikuje skróty.

WADY Perla:

  1. Perl ma bardzo złożony kod, który sprawia, że jest trudny do zrozumienia dla nowicjusza. Podprogramy, a nawet inne symbole, takie jak: „$`”, „$&” itp. są trudne do zrozumienia i zaprogramowania dla mniej doświadczonego programisty. Ponadto kod Perla po odczytaniu byłby trudny i skomplikowany do zrozumienia, chyba że masz doświadczenie w zakresie jakości.
  2. OO Programowanie w Perlu jest nieco przestarzałe, ponieważ nigdy nie było znane z programowania OO, a wiele operacji, takich jak wątki, jest również mniej wyraźnych w Perlu.

Wniosek

Jak widać powyżej, gdzie oba języki są dobre pod względem aplikacji, na które są przeznaczone, Python ma pewną przewagę nad Perlem jako pierwszy wybór dla nowicjusza ze względu na jego czysty i łatwy do zrozumienia kod, podczas gdy z drugiej strony Perl przewyższa Pythona, jeśli chodzi o operacje manipulacji ciągami znaków i niektóre zaawansowane, jednowierszowe instrukcje dla UNIX-a, takie jak system operacyjny i różne inne operacje, z których jest znany.

Ostatecznie wszystko zależy od konkretnego obszaru, na który kierujesz reklamy. Wszystkie Twoje komentarze na temat tego artykułu są mile widziane i prosimy Cię o wyrażenie opinii na ten temat, jeśli według Ciebie zwycięży Python lub Perl.