[전략_노트]/[전략노트_취업]

[기술] python, 철학

스테판 in US 2021. 8. 23. 01:05

파이썬을 통계에 많이 사용되는 소프트웨어 언어로 유명합니다. 

 

네덜란드 출신의 소프트웨어 엔지니어인 귀도 반 로섬 (Guido van Rossum)이 1989년 지루한 나머지 최초 개발작업을 끝내고, 1991년 정식으로 발표된 discriptive software language로 현재 분석 언어로 1위이고, App/Web 개발언어는 여전히 Javascript/Java 기반에 새로운 버전의 언어가 계속 출현하고 있지요. 

 

데이터 분석, 통계 및 사이언스 분야에서는 파이썬는 무조건 기본이 되고, 다른 언어로 SQL 및 R language 등이 있지만, 파이썬과 같은 강력한 라이브러리와 활용 분야를 갖지는 못하기 때문에, 파이썬은 앞으로도 수십년간 데이터 분석언어의 톱 초이스로 존재할 듯 합니다.

 

추가로, 파이썬의 철학 (Zen of Python) 이라고도 소개되는 다음 글귀는, 실제 1999년 미국 소프트웨어 엔지니어인 Tim Peters가 작성했다고 하는데, 19라인에서 소프트웨어에 대한 철학을 보여주고 있습니다.

 

사실, 파이썬 만을 위한 것이 아니라, 어떤 프로그래밍 언어로 작성하는 소프트웨어라고 할지라도, 아래 표현된 것이 소프트웨어의 철학이 되어야 마땅할 것 입니다.  소프트웨어를 비롯한 공학 분야에서 철학과 미학적 요소를 감안한다 것이 조금은 넌센스 처럼 느껴지지만, 디자인도 미니멀리즘 개념이 있듯이, 당연히 소프트웨어나 하드웨어에도 기본적인 설계사상과 엔지니어의 철학이 있어야 할 것 같습니다.

 

파이썬 철학으로 소개된 문귀는 실제 대학교 철학과에서도 주제로 삼아, 토론과 연구를 한대는 기사도 본 적이 있는데, 학문 간의 경계보다는 크로스오버화 되는 것이 맞는 방향이라고 생각됩니다.

 

• 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.
• 그것을 할 수 있는 분명한 한 가지 방법이 있어야 한다. 그 방법이 유일하다면 더 좋다.

• Although that way may not be obvious at first unless you're Dutch.
• 네덜란드 사람(Guido van Rossum)이 아니라면, 처음에 그 방법이 분명하지 않을 수도 있다.

• Now is better than never.
• 지금 하는 것이 하지 않는 것보다 낫다.

• Although never is often better than right now.
• 비록 하지 않는 것이 종종 지금 당장 하는 것보다 나을지라도.

• If the implementation is hard to explain, it's a bad idea.
• 구현한 것이 설명하기 어렵다면, 그것은 나쁜 아이디어다.

• If the implementation is easy to explain, it may be a good idea.
• 구현한 것이 설명하기 쉽다면, 그것은 좋은 아이디어일 것이다.

• Namespaces are one honking great idea--let's do more of those!
• 네임스페이스는 정말 좋은 아이디어다. 더 많이 사용하자!