Vyhledávání na webu

Ponořte se hluboko do diskuse Python vs Perl – Co bych se měl naučit Python nebo Perl?


Často, když je představen nový programovací jazyk, začíná debata mezi některými geniálními mozky v oboru, kde je jazyk srovnáván s jazykem, který již šíří své kořeny. V IT průmyslu se často šíří jakýsi rozruch a ten nový je často srovnáván ve všech aspektech, ať už se jedná o funkce, syntaxi nebo jádro CPU a paměti včetně času GC a všeho, se stávajícím svého druhu.

Mnoho příkladů takových případů lze vyzvednout a prozkoumat z minulosti, včetně debaty mezi Java a C#, C++ atd. Jedním z takových případů, který vzbudil značnou pozornost, byla debata mezi dvěma jazyky, které vyšly jeden po druhém v krátkém období, tj. Python a Perl.

Zatímco Python byl původně vynalezen jako nástupce jazyka ABC pouze jako „hobby“ programovací projekt (který by přitahoval Unix/C hackery) pro autora, který jej pojmenoval po série jeho největší hvězdy Monty Python.

Doporučená četba: Začínáme s programováním a skriptováním v Pythonu v Linuxu

Perl byl téměř o 2 roky dříve jako skriptovací jazyk Unix, jehož cílem bylo usnadnit zpracování zpráv. Byla to směs kombinace mnoha jazyků včetně C, awk, sed a skriptu shell.

Věc, která stojí za zmínku, je, že tyto jazyky, které se vyvinuly s různými záměry, jsou neustále srovnávány, což mě přimělo studovat a zjistit důvody, z nichž některé důležité jsou uvedeny níže:

  1. Oba byly zaměřeny na operační systém Unix, jeden pro hackery a další pro zpracování zpráv.
  2. Oba jsou objektově orientované (Python je více) a interpretovány, přičemž jeden je silně napsaný a jasný, pokud jde o kódování, tj. Python, a druhý umožňuje ošklivé psaní se závorkami pro reprezentaci bloku, tj. Perl
  3. Oba jsou v zásadě opačné, když říkáme, že Perl má mnoho způsobů, jak dělat jeden úkol, zatímco python se zaměřuje na jeden a pouze jeden způsob, jak dělat věci.

Python vs Perl – porovnání funkcí

Pojďme se ponořit hluboko do této debaty a pokusit se zjistit celkové aspekty, kde se tyto dva jazyky od sebe liší. Pokusme se také zjistit zdroj pravdy pro mnoho klišé, která lze v tomto odvětví slyšet: „Python je Perl s cvičnými kolečky“ nebo „Python je podobný Perlu, ale je jiný “, abychom se mohli pokusit a uzavřít přesným řešením této nekonečné debaty.

1. Python's Clean vs Perl's Complex Syntax

Python má oproti Perlu obrovskou výhodu, pokud jde o čitelnost kódu. Kód Pythonu je mnohem srozumitelnější než kód Perlu, a to i při čtení kódu po letech.

Díky odsazení představujícím blok kódu a správnému strukturování je kód Pythonu mnohem čistší. Na druhou stranu si Perl půjčuje svou syntaxi z různých programovacích jazyků, jako je C, skriptování shellu a dokonce i filtry awk a sed, pokud jde o regulární výrazy.

Doporučená četba: 15 užitečných příkazů „sed“ pro každodenní úlohy správy systému Linux

Kromě toho s '{' a '}' představujícími blok kódu a zbytečným přidáním ';' na konci každého řádku by se kód v Perlu mohl stát problém pochopit, pokud ji čtete po měsících nebo letech, protože obsahuje ošklivé skriptování.

2. Vestavěná podpora Perlu vs. Python 3rd Party Regex a operační podpora OS

Jazyk Perl si vypůjčuje svou syntaxi z C a dalších příkazů UNIX, jako jsou sed, awk, atd. díky čemuž má tak výkonnou a vestavěnou podporu regulárních výrazů bez importu modulů třetích stran.

Perl také zvládne operace operačního systému pomocí vestavěných funkcí. Na druhou stranu Python má knihovny třetích stran pro obě operace, tj. re pro regex a os, sys pro operace operačního systému, které potřebují zajistit před provedením takových operací.

Operace s regulárním výrazem v Perlu mají syntaxi podobnou 'sed, což usnadňuje nejen vyhledávací operace, ale také operace nahrazování, nahrazování a další operace s řetězcem lze provádět snadno a rychle než python, kde člověk potřebuje vědět a pamatujte na funkce, které uspokojí potřeby.

Příklad: Představte si program pro hledání číslice v řetězci v Perlu a Pythonu.

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

Vidíte, že syntaxe Perlu je velmi snadná a inspirovaná příkazem sed, který využívá výhody syntaxe Pythonu, která importuje modul třetí strany ‘re‘.

3. Pokročilé OO programování v Pythonu vs. Perl's One-Liners

Jednou funkcí, kde Python zastiňuje Perl, je jeho pokročilé OO programování. Python má rozsáhlou podporu objektově orientovaného programování s čistou a konzistentní syntaxí, zatímco objekt OOP v Perlu je zastaralý, když se balíček používá jako náhrada. pro třídy.

Doporučená četba: Začínáme s webovým rámcem Python Django

Také psaní kódu OO v Perlu přidá mnohem více složitosti kódu, což by nakonec znesnadnilo pochopení kódu, dokonce i podprogramy v Perlu je velmi obtížné programovat a později je bude obtížné pochopit.

Na druhou stranu, Perl je nejlepší pro své jednolinky, které lze použít na příkazovém řádku pro provádění různých úkolů. Také kód v Perlu může nakonec dělat různé úkoly v méně řádcích kódu než python.

Příklad zkráceného kódu obou jazyků, který zdůrazňuje schopnost Perlu dělat více za méně 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 “$_”; } 

Klady a zápory – Python vs Perl

V této části probereme výhody a nevýhody Pythonu a Perlu.

Výhody Pythonu:

  1. Má čistou a elegantní syntaxi, díky které je tento jazyk skvělou volbou jako první programovací jazyk pro nováčky, kteří chtějí mít prakticky jakýkoli programovací jazyk.
  2. Má velmi pokročilé a vlastní programování OO, také programování vláken v Pythonu je mnohem lepší než Perl.
  3. Existuje mnoho oblastí použití, kde je preferován Python, a dokonce překonává Perl. Jako: Perl je preferován pro skriptování CGI, ale v současné době jsou skriptovací jazyky pro Python Django a web2py podobné webovým skriptovacím jazykům stále populárnější a v tomto odvětví jsou velmi přitažlivé.
  4. Má několik obalů SWIG pro různé programovací jazyky jako CPython, IronPython a Jython a vývoj těchto předcházel vývoj obalů SWIG pro Perl.
  5. Kód Pythonu je vždy dobře odsazený a snadno čitelný a srozumitelný, i když po letech čtete kód někoho jiného nebo dokonce svůj kód.
  6. Python je vhodný pro různé aplikace, jako je Big Data, Infra Automation, Machine Learning, NLP, atd. obrovská podpora aktivních komunit, protože je Open Source.

Nevýhody Pythonu:

  1. Existuje několik oblastí, kde je provádění v Pythonu obvykle pomalejší než v Perlu, včetně regex a operací založených na řetězcích.
  2. Někdy je obtížné získat typ proměnné v Pythonu, protože v případě velmi velkého kódu musíte jít až na konec, abyste získali typ proměnné, která je hektická a složitá.

Perl PRO:

  1. Perl má výkonné jednolinky a dokonce zajišťuje syntaxi podobnou UNIXovému potrubí, kterou lze použít na příkazovém řádku k provádění různých úkolů, také je ovlivněn Unixem a jeho programováním z příkazového řádku, takže do svého kódování integruje mnoho příkazů ovlivněných UNIXem.
  2. Perl je známý svými výkonnými operacemi regex a porovnávání řetězců, protože je ovlivněn výkonnými nástroji UNIX, jako jsou sed a awk. V případě operací s regulárním výrazem a řetězci, jako je substituce, párování, nahrazení, Perl překonává python, což by vyžadovalo několik řádků kódu k dosažení stejný. Také mnoho souborových I/O operací, zpracování výjimek se v Perlu provádí rychleji.
  3. Pokud jde o jazyk pro generování zpráv, Perl byl od svého zavedení vždy známý jako jeden z hlavních důvodů, proč autor vyvinul jazyk, jako byl Perl pro generování zpráv.
  4. Mnoho aplikačních oblastí, kde Perl nachází své využití, jsou Network Programming, Administrace systému, CGI Scripting (zde Python překonává Perl s Django a web2py), atd.
  5. Je snadné identifikovat typ proměnné se symboly, které Perl používá před nimi, jako: ‘@’ identifikuje pole a ‘%’ identifikuje hashe.

Nevýhody Perlu:

  1. Perl má velmi složitý kód, který ztěžuje pochopení pro nováčka. Podprogramy a dokonce i další symboly jako: ‘$`‘, ‘$&‘ atd. jsou pro méně zkušeného programátora těžko pochopitelné a programovatelné. Také kód v Perlu při čtení by bylo obtížné a složité na pochopení, pokud nemáte kvalitní zkušenosti.
  2. OO Programování v Perlu je trochu zastaralé, protože nikdy nebylo známé pro OO programování a mnoho operací, jako je závitování, je v Perlu také méně výrazné.

Závěr

Jak je vidět výše, kde jsou oba jazyky dobré, pokud jde o aplikace, na které cílí, Python má oproti Perlu jako první volbu pro nováčka díky svému čistý a snadno srozumitelný kód, zatímco na druhou stranu Perl předčí Python, pokud jde o operace manipulace s řetězci a některé pokročilé jednolinky pro UNIX jako OS a různé další operace, kterými je známý.

Takže nakonec záleží na konkrétní oblasti, na kterou cílíte. Všechny vaše komentáře k tomuto článku jsou vítány a chtěl bych vás požádat, abyste poskytli své názory na téma, pokud podle vás vyhraje Python nebo Perl.