웹사이트 검색

Python 대 Perl 토론에 대해 자세히 알아보기 - Python 또는 Perl을 무엇을 배워야 합니까?


종종 새로운 프로그래밍 언어가 도입되면 업계의 일부 천재들 사이에서 언어를 이미 뿌리를 내리고 있는 언어와 비교하는 논쟁이 시작됩니다. IT 산업에 일종의 소문이 퍼지는 경우가 많으며 새로운 것은 기능, 구문 또는 GC 시간 등을 포함한 핵심 CPU 및 메모리 측면 등 모든 측면에서 기존 것과 비교되는 경우가 많습니다.

JavaC#, C++ 등 간의 논쟁을 포함하여 이러한 사례의 많은 예를 과거에서 선택하고 조사할 수 있습니다. 상당한 관심을 끌었던 사례 중 하나는 짧은 기간에 차례로 나온 두 언어, 즉 PythonPerl 사이의 논쟁이었습니다.

Python은 처음에 ABC 언어의 후속으로 단지 "취미" 프로그래밍 프로젝트(Unix/C 해커의 관심을 끌 것임)로 발명된 반면, Python의 이름을 따서 명명한 작성자는 그의 가장 큰 스타 Monty Python 시리즈입니다.

권장 읽기: Linux에서 Python 프로그래밍 및 스크립팅 시작하기

Perl은 약 2년 전에 보고서 처리를 더 쉽게 만들기 위한 Unix 스크립트 언어였습니다. C, awk, sed, 쉘 스크립트 등 다양한 언어의 조합이었습니다.

주목할 만한 점은 서로 다른 의도로 진화한 이러한 언어들이 지속적으로 비교되고 있다는 점이며, 이를 통해 연구하고 그 이유를 파악하게 되었으며 그 중 몇 가지 중요한 사항을 다음과 같이 나열했습니다.

  1. 둘 다 유닉스 운영 체제를 표적으로 삼았는데, 하나는 해커용이고 다른 하나는 보고서 처리용입니다.
  2. 둘 다 객체 지향적이며(Python이 더 많음) 해석됩니다. 하나는 코딩과 관련하여 강력하게 유형이 지정되고 명확하며(예: Python), 다른 하나는 블록을 표시하기 위해 중괄호를 사용하여 보기 흉한 유형을 허용합니다(예: Perl).
  3. Perl은 단일 작업을 수행하는 여러 가지 방법이 있는 반면 Python은 작업을 수행하는 단 하나의 방법에만 집중한다고 말할 때 둘 다 원칙적으로 반대입니다.

Python과 Perl – 기능 비교

이 논쟁에 대해 자세히 알아보고 이 두 언어가 서로 구별되는 전반적인 측면을 파악해 보겠습니다. 또한 업계에서 “Python은 보조바퀴가 달린 Perl이다” 또는 “Python은 Perl과 비슷하지만 다르다”라고 들을 수 있는 많은 진부한 말의 진실의 근원을 찾아보도록 하겠습니다. Strong> ”을 통해 우리는 이 끝나지 않는 논쟁에 대한 정확한 해결책을 시도하고 결론을 내릴 수 있습니다.

1. Python의 Clean과 Perl의 복잡한 구문

Python은 코드 가독성 측면에서 Perl에 비해 큰 이점을 가지고 있습니다. Python의 코드는 몇 년이 지나서 코드를 읽어도 Perl의 코드보다 이해하기가 훨씬 더 명확합니다.

코드 블록을 나타내는 들여쓰기와 적절한 구조화를 통해 Python의 코드는 훨씬 더 깔끔해졌습니다. 반면에 Perl은  C, 셸 스크립팅, 정규 표현식의 경우 awk 및 sed 필터와 같은 다양한 프로그래밍 언어에서 구문을 차용합니다.

권장 읽기: 일상적인 Linux 시스템 관리 작업에 유용한 15가지 'sed' 명령

이 외에도 '{' 및 '}'는 코드 블록을 나타내고 각 줄 끝에 ';'를 불필요하게 추가하면 Perl의 코드는 다음과 같이 될 수 있습니다. 추악한 스크립트를 허용하기 때문에 몇 달 또는 몇 년 후에 읽으면 이해해야 할 문제입니다.

2. Perl의 내장 대 Python의 타사 정규식 및 OS 운영 지원

Perl 언어는 Csed, awk 등과 같은 기타 UNIX 명령에서 구문을 차용합니다. 그로 인해 타사 모듈을 가져오지 않고도 강력하고 내장된 정규식 지원 기능을 사용할 수 있습니다.

또한 Perl은 내장된 기능을 사용하여 OS 작업을 처리할 수 있습니다. 반면, Python에는 두 작업을 위한 타사 라이브러리가 있습니다. 즉, 정규식의 경우 re, os 작업의 경우 os, sys는 다음과 같습니다. 그러한 작업을 수행하기 전에 확인하십시오.

Perl의 정규식 연산에는 'sed'와 같은 구문이 있어 검색 작업뿐만 아니라 문자열에 대한 바꾸기, 대체 및 기타 작업을 사람이 알아야 하는 Python보다 쉽고 빠르게 수행할 수 있습니다. 그리고 필요에 맞는 기능을 기억하세요.

예: PerlPython 문자열에서 숫자를 검색하는 프로그램을 생각해 보세요.

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

Perl의 구문은 훨씬 쉽고 타사 모듈 're'를 가져오는 Python 구문보다 이점을 활용하는 sed 명령에서 영감을 받았습니다.

3. Python의 고급 OO 프로그래밍과 Perl의 One-Liners

PythonPerl을 압도하는 기능 중 하나는 고급 OO 프로그래밍입니다. Python은 깨끗하고 일관된 구문으로 광범위한 객체 지향 프로그래밍을 지원하는 반면 Perl의 객체 OOP는 패키지가 대체로 사용되는 구식입니다. 수업을 위해.

권장 읽기: Python Django 웹 프레임워크 시작하기

또한 Perl에서 OO 코드를 작성하면 코드가 훨씬 더 복잡해져서 결국 코드를 이해하기 어렵게 됩니다. 심지어 Perl의 서브루틴도 프로그래밍하기가 매우 어렵고 결국 나중에 이해하기도 어렵습니다.

반면, Perl은 다양한 작업을 수행하기 위해 명령줄에서 사용할 수 있는 단일 라이너에 가장 적합합니다. 또한 Perl 코드는 결국 Python보다 더 적은 코드 줄로 다양한 작업을 수행할 수 있습니다.

더 적은 LOC에서 더 많은 작업을 수행할 수 있는 Perl의 능력을 강조하는 두 언어의 단축 코드 예:

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의 장점과 단점에 대해 논의하겠습니다.

파이썬 장점:

  1. 이 언어는 깨끗하고 우아한 구문을 갖추고 있어 모든 프로그래밍 언어를 직접 다루려는 초보자를 위한 첫 번째 프로그래밍 언어로서 탁월한 선택입니다.
  2. 매우 발전된 고유한 OO 프로그래밍을 갖추고 있으며, Python의 스레드 프로그래밍도 Perl보다 훨씬 좋습니다.
  3. Python이 선호되고 심지어 Perl보다 성능이 뛰어난 응용 분야가 많이 있습니다. 좋아요: Perl은 CGI 스크립팅에 선호되지만 요즘에는 Python의 Django와 web2py 같은 웹 스크립팅 언어가 점점 인기를 얻고 있으며 업계에서 큰 매력을 느끼고 있습니다.
  4. CPython, IronPythonJython과 같은 다양한 프로그래밍 언어에 대한 여러 SWIG 래퍼가 있으며 이들 래퍼의 개발이 개발보다 앞서 있습니다. Perl용 SWIG 래퍼.
  5. Python 코드는 항상 들여쓰기가 잘되어 있어 다른 사람의 코드를 읽거나 심지어 몇 년이 지난 후 자신의 코드를 읽는 경우에도 읽고 이해하기 쉽습니다.
  6. Python은 빅 데이터, 인프라 자동화, 기계 학습, NLP 등과 같은 다양한 애플리케이션에 적합합니다. 오픈 소스이기 때문에 활발한 커뮤니티의 엄청난 지원을 받습니다.

파이썬 단점:

  1. regex 및 문자열 기반 작업을 포함하여 Python의 실행이 일반적으로 Perl의 실행보다 느린 영역은 거의 없습니다.
  2. 매우 큰 코드의 경우에는 변수 유형을 얻으려면 끝까지 가야 하고 복잡해지기 때문에 Python에서 변수 유형을 가져오는 것이 어려운 경우가 있습니다.

펄의 장점:

  1. Perl은 강력한 단일 라이너를 가지고 있으며 다양한 작업을 수행하기 위해 명령줄에서 사용할 수 있는 구문과 같은 UNIX 파이핑을 보장합니다. 또한 Unix와 명령줄 프로그래밍의 영향을 받기 때문에 UNIX에 영향을 받은 많은 명령을 코딩에 통합합니다.
  2. Perl은 강력한 UNIX 도구와 마찬가지로 sedawk의 영향을 받기 때문에 강력한 regex 및 문자열 비교 작업으로 유명합니다. 대체, 일치, 대체와 같은 정규식 및 문자열 작업의 경우 Perl은 Python보다 성능이 뛰어나므로 몇 줄의 코드만 사용하면 됩니다. 같은. 또한 많은 파일 I/O 작업, 예외 처리가 Perl에서 더 빠르게 수행됩니다.
  3. 보고서 생성을 위한 언어에 있어서 Perl은 저자가 Perl과 같은 언어를 개발한 주된 이유 중 하나가 보고서 생성을 위한 것이기 때문에 소개 이후 항상 명성을 얻었습니다.
  4. Perl이 사용되는 많은 응용 분야는 네트워크 프로그래밍, 시스템 관리, CGI 스크립팅입니다(여기서 Python은 Django 및 web2py로 Perl을 극복하고 있습니다). 등.
  5. Perl이 변수 앞에 사용하는 기호를 사용하여 변수 유형을 식별하는 것은 쉽습니다. 예를 들어 '@'는 배열을 식별하고 '%'는 해시를 식별합니다.

펄 단점:

  1. Perl은 초보자가 이해하기 어렵게 만드는 매우 복잡한 코드를 가지고 있습니다. 서브루틴과 '$`', '$&' 등과 같은 기타 기호도 경험이 부족한 프로그래머에게는 이해하기 어렵고 프로그래밍하기 어렵습니다. 또한 Perl 코드를 읽을 때 품질 경험이 없으면 이해하기 어렵고 복잡합니다.
  2. Perl의 OO 프로그래밍은 OO 프로그래밍으로 알려진 적이 없으며 스레딩과 같은 많은 작업도 Perl에서는 덜 두드러지기 때문에 약간 구식입니다.

결론

위에서 볼 수 있듯이 대상 애플리케이션에 따라 두 언어가 모두 우수하다는 점에서 Python은 초보자를 위한 첫 번째 선택으로 Perl에 비해 약간의 이점을 갖습니다. 깨끗하고 이해하기 쉬운 코드인 반면, Perl은 문자열 조작 작업과 OS와 같은 UNIX용 고급 단일 라이너 및 기타 다양한 작업에 있어서 Python보다 성능이 뛰어납니다.

따라서 결국 모든 것은 귀하가 목표로 삼는 특정 영역에 달려 있습니다. 이 기사에 대한 모든 의견을 환영하며 Python이 승리하거나 Perl이 승리한다고 판단되면 주제에 대한 의견을 제시해 주시기 바랍니다.