Поиск по сайту:

Погрузитесь глубже в дебаты о Python и Perl — что мне следует изучать Python или Perl?


Часто, когда появляется новый язык программирования, среди гениальных умов отрасли завязываются дебаты, в ходе которых этот язык сравнивают с тем, который уже пустил свои корни. В ИТ-индустрии часто распространяется своего рода шумиха, и новое часто сравнивают по каждому аспекту, будь то функции, синтаксис или аспекты ядра ЦП и памяти, включая время GC и все такое, с существующим аналогом.

Можно взять и исследовать множество примеров таких случаев из прошлого, включая дебаты между Java и C#, C++ и и т. д. Одним из таких случаев, который привлек значительное внимание, была дискуссия между двумя языками, которые возникали один за другим в течение короткого периода времени, то есть Python и Perl.

Принимая во внимание, что Python изначально был изобретен как преемник языка ABC просто как проект программирования «хобби» (который привлек хакеров Unix/C) для автора, который назвал его в честь сериал о его самой большой звезде Монти Пайтон.

Рекомендуется к прочтению: Начало работы с программированием на Python и написанием сценариев в Linux

Perl появился примерно двумя годами ранее как язык сценариев Unix, предназначенный для упрощения обработки отчетов. Это была смесь многих языков, включая C, awk, sed и сценарии оболочки.

Стоит отметить, что эти языки, которые развились с разными намерениями, постоянно сравниваются, что заставило меня изучить и выяснить причины, некоторые важные из которых перечислены ниже:

  1. Оба нацелены на операционную систему Unix: один предназначен для хакеров, а другой — для обработки отчетов.
  2. Оба являются объектно-ориентированными (в большей степени Python) и интерпретируются, причем один из них строго типизирован и понятен, когда дело доходит до кодирования, например Python, а другой позволяет уродливо печатать с фигурными скобками для представления блока, например Perl.
  3. Оба подхода в принципе противоположны, когда мы говорим: Perl имеет множество способов выполнения одной задачи, тогда как Python фокусируется на одном и только одном способе выполнения.

Python против Perl – сравнение возможностей

Давайте углубимся в эту дискуссию и попытаемся выяснить общие аспекты, в которых эти два языка отличаются друг от друга. Кроме того, давайте попробуем выяснить источник истины для многих клише, которые можно услышать в отрасли: «Python — это Perl с обучающими колесами» или «Python похож на Perl, но отличается». Strong> », чтобы мы могли попытаться найти точное решение этой бесконечной дискуссии.

1. Чистый синтаксис Python против сложного синтаксиса Perl

Python имеет огромное преимущество перед Perl, когда дело касается читаемости кода. Код Python намного понятнее, чем код Perl, даже если читать код спустя годы.

Благодаря отступам, представляющим блок кода, и правильному структурированию, код Python становится намного чище. С другой стороны, Perl заимствует свой синтаксис из различных языков программирования, таких как  C, сценарии оболочки и даже фильтры awk и sed, когда дело касается регулярных выражений.

Рекомендуется к прочтению: 15 полезных команд sed для ежедневных задач системного администрирования Linux

Кроме того, если '{' и '}' представляют блок кода и ненужное добавление ';' в конце каждой строки, код в Perl может стать проблема, которую трудно понять, если вы прочитаете ее спустя месяцы или годы, из-за того, что в ней допускаются уродливые сценарии.

2. Встроенные в Perl vs Python сторонние регулярные выражения и поддержка операций ОС

Язык Perl заимствует свой синтаксис у C и других команд UNIX, таких как sed, awk и и т. д. благодаря чему он имеет мощную встроенную поддержку регулярных выражений без импорта каких-либо сторонних модулей.

Кроме того, Perl может обрабатывать операции ОС с помощью встроенных функций. С другой стороны, Python имеет сторонние библиотеки для обеих операций, например, re для regex и os, sys для операций ОС, которые необходимо перед выполнением таких операций.

Операции регулярных выражений Perl имеют синтаксис, подобный 'sed', который упрощает не только операции поиска, но также замену, замену и другие операции со строкой, которые можно выполнять легко и быстро, чем Python, где человеку нужно знать и помните функции, которые удовлетворяют потребности.

Пример. Рассмотрим программу поиска цифры в строке в Perl и Python.

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

Вы видите, что синтаксис Perl очень прост и вдохновлен командой sed, которая имеет преимущества перед синтаксисом Python, который импортирует сторонний модуль ’re’.

3. Продвинутое объектно-ориентированное программирование на Python и однострочники на Perl

Одной из особенностей, в которой Python затмевает Perl, является его расширенное OO программирование. Python имеет обширную поддержку объектно-ориентированного программирования с чистым и согласованным синтаксисом, в то время как объект OOP в Perl устарел, и в качестве замены используется пакет. для занятий.

Рекомендуется к прочтению: Начало работы с Python Django Web Framework

Кроме того, написание кода OO на Perl значительно усложнит код, что в конечном итоге затруднит его понимание; даже подпрограммы в Perl очень сложно программировать и, в конечном итоге, их будет трудно понять позже.

С другой стороны, Perl лучше всего подходит для однострочных программ, которые можно использовать в командной строке для выполнения различных задач. Кроме того, код Perl в конечном итоге может выполнять различные задачи, используя меньше строк кода, чем Python.

Пример короткого кода обоих языков, который подчеркивает способность Perl делать больше с меньшими затратами 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 “$_”; } 

Плюсы и минусы — Python против Perl

В этом разделе мы обсудим плюсы и минусы Python и Perl.

ПЛЮСЫ Python:

  1. Он имеет чистый и элегантный синтаксис, что делает этот язык отличным выбором в качестве первого языка программирования для новичков, которые хотят освоить любой язык программирования.
  2. Имеет очень продвинутое и неотъемлемое OO программирование, а также программирование потоков на Python намного лучше, чем Perl.
  3. Существует множество областей приложений, где Python предпочтительнее, и даже он превосходит Perl. Например: Perl предпочтительнее для сценариев CGI, но в настоящее время языки веб-сценариев Python Django и web2py становятся все более популярными и пользуются огромной популярностью в отрасли.
  4. Имеет несколько оболочек SWIG для разных языков программирования, таких как CPython, IronPython и Jython, и их разработка предшествовала разработке. оберток SWIG для Perl.
  5. Код Python всегда имеет хорошие отступы, его легко читать и понимать, даже если вы читаете чужой код или даже свой код спустя годы.
  6. Python хорош для различных приложений, таких как Большие данные, Инфра-автоматизация, Машинное обучение, НЛП и т. д. огромная поддержка активных сообществ из-за открытого исходного кода.

МИНУСЫ Python:

  1. Есть несколько областей, где выполнение в Python обычно медленнее, чем в Perl, включая регулярные выражения и строковые операции.
  2. Иногда бывает сложно определить тип переменной в Python, например, в случае очень большого кода вам придется идти до конца, чтобы получить тип переменной, который становится беспокойным и сложным.

Перл ПЛЮСЫ:

  1. Perl имеет мощные однострочники и даже обеспечивает синтаксис, подобный UNIX, который можно использовать в командной строке для выполнения различных задач. Кроме того, на него влияет Unix и его программирование командной строки, поэтому он интегрирует в свой код множество команд, находящихся под влиянием UNIX.
  2. Perl известен своими мощными операциями регулярных выражений и сравнения строк, поскольку на него влияют sed и awk, такие как мощные инструменты UNIX. В случае регулярных выражений и операций со строками, таких как подстановка, сопоставление, замена, Perl превосходит Python, которому для достижения нужного результата потребовалось бы несколько строк кода. такой же. Кроме того, многие операции ввода-вывода с файлами и обработка исключений в Perl выполняются быстрее.
  3. Когда дело доходит до языка генерации отчетов, Perl всегда пользовался известностью с момента его появления, поскольку это была одна из основных причин, по которой автор разработал язык, подобный Perl, для генерации отчетов.
  4. Многие области приложений, где Perl находит свое применение, — это Сетевое программирование, Системное администрирование, Сценарии CGI (здесь Python превосходит Perl с помощью Django и web2py), и т. д.
  5. Тип переменной легко определить по символам, которые Perl использует перед ними, например: ’@’ идентифицирует массивы, а ’%’ идентифицирует хэши.

Минусы Перла:

  1. Perl имеет очень сложный код, который сложно понять новичку. Подпрограммы и даже другие символы, такие как: ’$`’, ’$&’ и т. д., сложны для понимания и программирования менее опытному программисту. Кроме того, код Perl при чтении будет трудным и сложным для понимания, если у вас нет качественного опыта.
  2. OO Программирование на Perl немного устарело, поскольку оно никогда не было известно для OO программирования, а многие операции, такие как обработка потоков, также менее выражены в Perl.

Заключение

Как видно выше, оба языка хороши с точки зрения целевых приложений, Python имеет некоторое преимущество перед Perl в качестве первого выбора для новичка из-за его чистый и простой для понимания код, тогда как, с другой стороны, Perl превосходит Python, когда дело доходит до операций манипулирования строками и некоторых продвинутых однострочных строк для UNIX, таких как ОС, и различных других операций, которыми он известен.

Итак, в конце концов, все зависит от конкретной области, на которую вы нацелены. Все ваши комментарии к этой статье приветствуются, и мы просим вас высказать свое мнение по этой теме, если, по вашему мнению, Python победит или Perl.