Ponořte se hluboko do Pythonu Vs Perl debata - Co bych se měl naučit Python nebo Perl?

  • Ronald Ferguson
  • 0
  • 2244
  • 360

Když se představí nový programovací jazyk, často začíná debata mezi některými geniálními mysliteli v tomto odvětví, 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ý se často porovnává v každém aspektu, ať už jde o funkce, syntaxi nebo základní aspekty CPU a paměti, včetně času GC a všech, s existujícím druhem.

Mnoho příkladů takových případů lze zachytit a vyšetřit z minulosti, včetně debaty mezi nimi Jáva a C#, C++, atd. Jedním z takových případů, který přitáhl značnou pozornost, byla debata mezi dvěma jazyky, která vyšla jeden po druhém v krátkém rozpětí, tj.. Krajta a Perl.

Zatímco Krajta byl původně vynalezen jako nástupce jazyka ABC pouze jako „hobby”Programovací projekt (který by přilákal hackery Unix / C) pro autora, který jej pojmenoval podle série své největší hvězdy Monty python.

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

Perl byl téměř téměř o 2 roky dříve jako unixový skriptovací jazyk, který měl usnadnit zpracování zpráv. Byla to kombinace kombinace mnoha jazyků včetně C, awk, sed a shell skript.

Věc, která stojí za zmínku, je, že tyto jazyky, které se vyvinuly z různých záměrů, jsou neustále porovná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 tím více) a interpretovány, přičemž jeden je silně napsaný a jasný, pokud jde o kódování, tj. Python, a další umožňují 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 jediný způsob, jak dělat věci.

Python vs Perl - porovnání funkcí

Pojďme se ponořit hlouběji do této debaty a pokusme se přijít na celkové aspekty, kde se tyto dva jazyky od sebe liší. Pokusme se také zjistit zdroj pravdy pro mnoho klišé, které lze slyšet v průmyslu a říkat „Python je Perl s tréninkovými koly“Nebo„Python je podobný Perlu, ale jiný„Abychom se mohli pokusit uzavřít přesné řešení 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. Pythonův kód je mnohem srozumitelnější než Perl, i když čtete kód po letech.

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

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

Kromě toho s '' a '' představující blok kódu a zbytečné přidávání ';' na konci každého řádku by se kód v Perlu mohl stát problémem pochopit, pokud si jej přečtete po měsících nebo letech kvůli jeho povolenému ošklivému skriptování.

2. Perl's Built-in Vs Python's 3rd Party Regex and OS Operations Support

Perlský jazyk si vypůjčuje svou syntaxi C a další UNIX příkazy jako sed, awk, atd., díky čemuž má silnou a integrovanou podporu regexu bez importu modulů třetích stran.

Taky, Perl může zpracovávat operace OS pomocí vestavěných funkcí. Na druhou stranu, Krajta má knihovny třetích stran pro obě operace, tj. re pro regulární výraz a os, sys pro operace os, které je třeba zajistit před provedením těchto operací.

Perlovy regexové operace majísed`` jako syntaxe, která usnadňuje nejen vyhledávací operace, ale také nahrazuje, nahrazuje a jiné operace na řetězci lze provádět snadno a rychle než python, kde člověk potřebuje znát a pamatovat si funkce, které uspokojují potřebu.

Příklad: Zvažte program, který hledá číslici v řetězci v Perlu a Krajta.

Krajta
Import re str = 'hello0909there' result = re.findall ('\ d +', str) výsledek tisku 
Perl
$ string = 'hello0909there'; $ string = ~ m / (\ d +) /; vytisknout „$ & \ n“ 

Vidíte syntaxi pro Perl je snadné a inspirované příkazem sed, který využívá výhod Pythonův syntaxe, která importuje modul třetí strany 're'.

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

Jedna funkce, kde Krajta zastíní Perl je jeho pokročilý OO programování. Krajta má rozsáhlou podporu objektově orientovaného programování s čistou a konzistentní syntaxí, zatímco objekt OOP v Perl zastaralé, pokud se balíček používá jako náhrada za výuku.

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

Také psaní OO kód v Perlu přidá kódu mnohem větší složitost, což by nakonec ztížilo pochopení kódu, dokonce i podprogramy v Perlu jsou velmi obtížně programovatelné a nakonec těžko pochopitelné později.

Na druhou stranu je Perl nejlepší pro své jednorázové linky, které lze použít na příkazovém řádku pro provádění různých úkolů. Perl kód také může nakonec dělat různé úkoly v menším počtu řádků kódu než python.

Krátký příklad obou jazyků, který zdůrazňuje schopnost Perlu dělat více za méně LOC:

Krajta
zkuste: s otevřeným („data.csv“) jako f: pro řádek ve f: tisknout řádek, kromě Výjimky jako e: print „Nelze otevřít soubor -% s“% e 
Perl
otevřít (SOUBOR, „% lt; inp.txt“) nebo zemřít „Nelze otevřít soubor“; zatímco() print „$ _“;  

Klady a zápory - Python vs Perl

V této části se budeme zabývat klady a zápory Pythonu a Perlu.

Python PROS:

  1. Má čistou a elegantní syntaxi, díky níž je tento jazyk skvělou volbou jako první programovací jazyk pro nováčky, kteří chtějí mít praktické zkušenosti s jakýmkoli programovacím jazykem.
  2. Má velmi pokročilý a inherentní OO Programování a také programování vláken v Pythonu je mnohem lepší než Perl.
  3. Existuje mnoho aplikačních oblastí, kde je preferován Python, a dokonce překonává Perl. Jako: Perl je preferován pro skriptování CGI, ale dnes je Pythonův Django a web2py jako jsou skriptovací jazyky pro web, jsou stále populárnější a jsou pro toto odvětví velkým lákadlem.
  4. Má několik LOK wrappery pro různé programovací jazyky jako CPython, IronPython a Jython a jejich vývoj předcházel vývoji obalů SWIG pro Perl.
  5. Kód v 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 váš kód.
  6. Python je vhodný pro různé aplikace, jako je Velká data, Infra automatizace, Strojové učení, NLP, atd., má obrovskou podporu 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 regulární výraz a řetězové operace.
  2. Někdy je obtížné získat typ proměnné v Pythonu, jako v případě velmi velkého kódu, musíte jít až do konce, abyste získali typ proměnné, která bude hektická a složitá.

Perl PROS:

  1. Perl má výkonné jednorázové linky a dokonce zajišťuje syntaxi systému UNIX, jako je syntax, kterou lze na příkazovém řádku použít k provádění různých úkolů. Je také 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 systémem UNIX..
  2. Perl je známý pro své silné regulární výraz a operace porovnání řetězců, jak je ovlivněno sed a awk jako mocné UNIXové nástroje. V případě regexu a řetězcových operací jako substituce, vhodný, výměna, nahrazení, Perl překonává python, což by vyžadovalo několik řádků kódu, aby bylo dosaženo stejného. Také mnoho operací I / O souborů, zpracování výjimek se v Perlu provádí rychleji.
  3. Pokud jde o jazyk pro generování zpráv, Perl byl vždy slavný od svého zavedení jako jeden z hlavních důvodů, proč autor vyvinul jazyk, jako byl Perl pro generování zpráv.
  4. Mnoho oblastí použití, kde Perl najde své použití, je Síťové programování, Správa systému, Skriptování CGI (zde Python překonává Perl s Django a web2py) atd.
  5. Je snadné identifikovat typ proměnné se symboly, které před nimi Perl používá, například: '@' identifikuje pole a '%' identifikuje hashe.

NEVÝHODY:

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

Závěr

Jak je vidět výše, kde jsou oba jazyky dobré z hlediska aplikací, na které cílí, Krajta má oproti tomu trochu výhodu Perl jako první volba pro nováčka díky čistému a snadno srozumitelnému kódu, zatímco na druhou stranu Perl překonává Python, pokud jde o operace manipulace s řetězci a některé pokročilé jednorázové pro UNIX jako OS a různé další operace, o kterých je známo.

Nakonec je to tedy všechno na konkrétní oblasti, na kterou cílíte. Všechny vaše komentáře k tomuto článku jsou vítány a budou vás požádat, abyste poskytli své názory na toto téma, pokud podle vás vyhraje Python nebo Perl.




Zatím žádné komentáře

Sbírka užitečných informací o operačním systému Linux a nových technologiích
Nejnovější články, praktické tipy, podrobné recenze a průvodci. Ve světě operačního systému Linux se budete cítit jako doma