[파이썬] 파이썬 역사와 파이썬 다움이란.
Data Analysis/Python

[파이썬] 파이썬 역사와 파이썬 다움이란.

그래서, 파이썬이 뭔가요? 

1989년 12월 네덜란드 컴퓨터 과학자 귀도 반 로섬은 여러 프로그래밍 언어들의 한계로 인해 괴로워 하다 크리스마스 프로젝트로 새로운 언어를 직접 만들어보기로 결심했다.

그가 생각한 언어의 원칙은 간단했다.

1. 읽기 쉬워야한다. 중괄호 보다는 깔끔한 인덴트 처리

2. 사용자가 원하는 모듈 패키지를 만들 수 있어야 하고, 다른 프로그램에서도 이를 사용할 수 이어야 한다.

3. 약간 독특하고 신비한 이름을 갖고 이어야한다.

이 세가지는 파이썬을 만들때 핵심 규칙으로 30년이 지난 지금 발전하여 여러 행태로 우리가 사용하고 있다. 예로 2번 같은 경우 지금 우리가 모듈 관리를 위해 사용하는 PIP 명령어로 발전하여 보다 쉽게 모듈을 관리할 수 있게 도와주고 있다.

파이썬 이름은 좀 신기했는데, 여태껏 난 파이썬의 이름이 뱀(snake)를 따서 만들어졌다고 생각했다. 하지만, 알아보니 70년대 세계를 풍미한 영국의 코미디 그룹 몬티 파이썬의 이름을 따서 붙였다고 한다.

 

파이썬 다움이란

영어, 중국어, 한국어 같은 언어와 마친가지로 프로그래밍 언어 또한 각각 특징과 철학이 있다. 나 같은 경우 프로그래밍 언어를 실제 언어와 비유할때 이렇게 설명한다. 일단, C, C++의 경우 프랑스어와 비슷하다. 오래된 언어로 문법이 굉장히 어렵다. 프랑스어 동사의 경우 성별/복수에 따라 동사 하나의 변형 형태가 다양하다. 이처럼 오래된 언어일수록 문법의 복잡함이 있다. JAVA의 경우 영어이다. 우린 일상에서 어느 형태로든 영어를 접하게 된다. 내가 중국어 특기자로 회사/학교에 들어갔어도, 영어를 따로 공부하는 이유는 영어가 그만큼 전세계 공용어이기 때문이다. JAVA가 딱 그렇다. JAVA를 모르고 개발을 할 수 있지만, 언제 어느 형태로서든 JAVA는 한번쯤 접하게 된다. Java 또한 장단점이 있지만, 지금까지 대다수의 프로그램이 JAVA로 개발되었고 그만큼 안정성을 보장한다. Python의 경우 난 중국어로 비유한다. 공용어를 위협할만한 신흥 강자로 떠오르는 언어. 그게 바로 파이썬이다. 특히 최근 인공지능, 머신러닝 분야에서 선호하는 언어로 배우는 사람이 늘어나고 있다.

그렇다면 파이썬 다움이란 무엇일까? 어떻게 프로그래밍을 하면서 다른 언어들과는 다른 파이썬만 갖고 있는 매력이 있을까?

팀소트 알고리즘을 만든 팀 피터스가 정의한 내용을 보면 Pyhon Way(파이썬 다운 방식)에 대해 이렇게 정의하고 있다.

 

>>>import this
The zen of python, by Tim Peters

아름다움이 추함보다 좋다
명시가 암시보다 좋다.
단순함이 복잡함보다 좋다.
복잡함이 꼬인 것보다 좋다.
수평이 계층보다 좋다.
여유로운 것이 밀집한 것보다 좋다.
가독성은 중요하다.
특별한 경우라는 것은 규칙을 어겨야 할 정도로 특별한 것이 아니다.

허나 실용성은 순수성을 이긴다.
오류는 절대 조용히 지나가지 않는다
명시적으로 오류를 감추려는 의도가 아니라면.
모호함을 앞에 두고, 이를 유추하겠다는 유혹을 버려라.
어떤 일에든 명확한 - 바람직하며 유일한 - 방법이 존재한다.
...

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one— and preferably only one —obvious way to do it.

'Data Analysis > Python' 카테고리의 다른 글

[파이썬] 람다 표현식(Lambda Expression)  (0) 2020.10.12