•  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Python(비교)

r7 vs r6
1
OK10님 ㅎㅎ 자비로우신 위키 관리자 OK10님 씨밸러마 슬러가드가 마디 할게 무고한 유저, IP 라레나 시키소명 각하고 소명권 박탈하니깐 좋냐? 씹새끼야? 엄마가 없고 장애에다 병신새끼 빨리 부엉이바위 운지나해 좆같이 생긴법자 알파위키 판리자 OK10 씨발놈 똥개새끼야 개새끼야?!?!?!?! (레나 당한 무고한 희생자들: OK10 똥개새끼야~!)
1
[[분류:프로그래밍 언어]]
2
[목차]
3
== 개요 ==
4
[[https://www.python.org|이썬]]은 귀도 로섬에 의해 1991년에 발표된 인터프리터 방식의 프로그래밍 언어다. 영어와 비슷해서 쉬운 특유의 문법과 그로 인해 세계의 개발자들로부터 만들어진 수많은 패키지들 덕분사용할 있는 용도가 궁무진해져 2010년대 중반부터 주류 프로그래밍 언어로 서게 되었다.
25
6
== 장단점 ==
7
* 장점
8
* 빠른 개발속도
9
* 파이썬의 아이덴티티. 높은 생산성은 그 무엇과도 비교할 수 없는 파이썬만의 특징이다. 전 세계의 모든 프로그래밍 언어 중에서 파이썬 정도의 낮은 난이도를 가지면서, 범용성을 갖추고, 파이썬 수준의 프로그램 개발 속도를 따라잡을 수 있는 언어가 없다. 파이썬으로 만든 프로그램을 같은 객체 지향 프로그래밍 언어인 Java나 C++로 만들려는 순간 숨이 턱 막힐 정도. 이런 언어들을 사용하려면 설계부터 난감해진다.
10
* 거대한 생태계
11
* 파이썬으로 무언가를 하고 싶어지면 그걸 하기 위한 패키지는 인터넷 어딘가에는 반드시 존재한다. 사실상 못 하는 것이 없다. 웹사이트 서버를 구현하려고 하면 Python Web Framework를 쳐보자(Django, Flask 등). 기계학습 알고리즘을 쓰고 싶다면 python machine learning이라 검색하자(scikit-learn). 얼굴 인식을 코드 몇 줄로 할 수도 있다(OpenCV). 기본적으로 설치되는 모듈인 tkinter 모듈을 이용하면 간단한 GUI 프로그래밍을 할 수 있다. 게임도 만들 수 있다(Pygame). 비주얼 노벨도 만들 수 있다. 웹사이트 크롤링도 할 수 있다.
12
* 교육의 편의성
13
* 파이썬은 위의 특징 때문에 교육용 프로그래밍 언어로 각광받고 있다. 한국, 미국의 여러 대학교 프로그래밍 교육들은 개론 수업 언어를 C, C++나 Java에서 파이썬으로 옮겨가는 추세다.
14
15
* 단점
16
* 느린 실행 속도
17
* 우선 기본적으로 가장 아쉬운 점은 속도이다. 한 논문에 따르면, CLBG에서 제시한 10개의 벤치마킹을 돌려본 결과 파이썬은 C에 비해 71.90배의 시간, 2.80배의 메모리, 75.88배의 에너지를 더 소모한다고 한다.
18
* 느린 속도를 보완하기 위해서 보통 여러 가지 방법이 동원된다. 기본적으로는 파이썬 내장 모듈을 사용해서 멀티쓰레딩이나 멀티프로세싱을 구현한다. Scipy나 Numpy와 같은 모듈의 고속 계산 함수를 꺼내 쓰기도(Vectorize) 한다. 더 나아가서는 속도가 빠른 C와 같은 언어를 래핑(Wrapping)하여 작성하기도 한다. 전문적으로 개발할 때는 외부 패키지에 의존하지 않고 직접 작성한 코드에서 고속화를 하기 위해 자연스럽게 더 높은 난이도의 언어를 혼합해서 사용하게 된다. 이 경우 파이썬은 논리적인 부분을 담당하고, 래핑된 다른 언어는 반복 연산을 담당하게 된다. 대표적인 예시로 Numba나 Cython같은 제3자 솔루션을 적용하기도 하며, 흔히 인공지능 용도로 사용되는 Python 라이브러리인 TensorFlow 는 C++ 로 작성되었다. Python 을 이용하면 TensorFlow 를 '사용' 만 할 수 있을뿐이다, TensorFlow 의 로직 자체를 수정 및 커스텀 하기 위해선 반드시 C++ 코드에 손을 대야 한다.
19
* 일반 사용자에게의 배포
20
* 파이썬은 프로그래머가 곧 자기가 만든 프로그램의 이용자가 되기 위해 사용되며 발달해 왔기 때문에, 긴 역사에도 불구하고 일반 사용자에게 배포를 하는 과정이 간접적이고 복잡하며, 파편화되어 발달이 덜 되어 있다. 그나마 '파이썬 프로그래머'들에게 '파이썬 프로그래머'가 배포를 하는 방식은 몇 가지가 있으나, '순수한 사용자' 에게 '(파이썬으로 만든)기능'을 전달하는 수단에 있어서는 다른 언어들에선 상상하기 어려울 정도로 원시적인 측면이 있다.