•  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
1. 개요2. 장단점

1. 개요[편집]

파이선은 1991년에 발표된 인터프리터 방식의 프로그래밍 언어다. 영어와 비슷해서 읽고 쓰기 쉬운 특유의 문법과 그로 인해 전 세계의 개발자들로부터 만들어진 수많은 패키지들 덕분에 사용할 수 있는 용도가 무궁무진해져 2010년대 중반부터 주류 프로그래밍 언어로 올라서게 되었다.

2. 장단점[편집]

  • 장점
    • 빠른 개발속도
      • 파이썬의 아이덴티티. 높은 생산성은 그 무엇과도 비교할 수 없는 파이썬만의 특징이다. 전 세계의 모든 프로그래밍 언어 중에서 파이썬 정도의 낮은 난이도를 가지면서, 범용성을 갖추고, 파이썬 수준의 프로그램 개발 속도를 따라잡을 수 있는 언어가 없다. 파이썬으로 만든 프로그램을 같은 객체 지향 프로그래밍 언어인 Java나 C++로 만드려는 순간 숨이 턱 막힐 정도. 이런 언어들을 사용하려면 설계부터 난감해진다.
    • 거대한 생태계
      • 파이썬으로 무언가를 하고 싶어지면 그걸 하기 위한 패키지는 인터넷 어딘가에는 반드시 존재한다. 사실상 못 하는 것이 없다. 웹사이트 서버를 구현하려고 하면 Python Web Framework를 쳐보자(Django, Flask 등). 기계학습 알고리즘을 쓰고 싶다면 python machine learning이라 검색하자(scikit-learn). 얼굴 인식을 코드 몇 줄로 할 수도 있다(OpenCV). 기본적으로 설치되는 모듈인 tkinter 모듈을 이용하면 간단한 GUI 프로그래밍을 할 수 있다. 게임도 만들 수 있다(Pygame). 비주얼 노벨도 만들 수 있다. 웹사이트 크롤링도 할 수 있다.
    • 교육의 편의성
      • 파이썬은 위의 특징 때문에 교육용 프로그래밍 언어로 각광받고 있다. 한국, 미국의 여러 대학교 프로그래밍 교육들은 개론 수업 언어를 C, C++나 Java에서 파이썬으로 옮겨가는 추세다.
  • 단점
    • 느린 실행 속도
      • 우선 기본적으로 가장 아쉬운 점은 속도이다. 한 논문에 따르면, CLBG에서 제시한 10개의 벤치마킹을 돌려본 결과 파이썬은 C에 비해 71.90배의 시간, 2.80배의 메모리, 75.88배의 에너지를 더 소모한다고 한다.
      • 느린 속도를 보완하기 위해서 보통 여러 가지 방법이 동원된다. 기본적으로는 파이썬 내장 모듈을 사용해서 멀티쓰레딩이나 멀티프로세싱을 구현한다. Scipy나 Numpy와 같은 모듈의 고속 계산 함수를 꺼내 쓰기도(Vectorize) 한다. 더 나아가서는 속도가 빠른 C와 같은 언어를 래핑(Wrapping)하여 작성하기도 한다. 전문적으로 개발할 때는 외부 패키지에 의존하지 않고 직접 작성한 코드에서 고속화를 하기 위해 자연스럽게 더 높은 난이도의 언어를 혼합해서 사용하게 된다. 이 경우 파이썬은 논리적인 부분을 담당하고, 래핑된 다른 언어는 반복 연산을 담당하게 된다. 대표적인 예시로 Numba나 Cython같은 제3자 솔루션을 적용하기도 하며, 흔히 인공지능 용도로 사용되는 Python 라이브러리인 TensorFlow 는 C++ 로 작성되었다. Python 을 이용하면 TensorFlow 를 '사용' 만 할 수 있을뿐이다, TensorFlow 의 로직 자체를 수정 및 커스텀 하기 위해선 반드시 C++ 코드에 손을 대야 한다.
    • 일반 사용자에게의 배포
      • 파이썬은 프로그래머가 곧 자기가 만든 프로그램의 이용자가 되기 위해 사용되며 발달해 왔기 때문에, 긴 역사에도 불구하고 일반 사용자에게 배포를 하는 과정이 간접적이고 복잡하며, 파편화되어 발달이 덜 되어 있다. 그나마 '파이썬 프로그래머'들에게 '파이썬 프로그래머'가 배포를 하는 방식은 몇 가지가 있으나, '순수한 사용자' 에게 '(파이썬으로 만든)기능'을 전달하는 수단에 있어서는 다른 언어들에선 상상하기 어려울 정도로 원시적인 측면이 있다.