A Byte of Python - About Python Python


About Python



파이썬은 단순하면서도 강력한 몇 안되는 언어이다. 프로그래밍하는 언어의 구조와 문법보다 문제를 해결하는데 어떻게 집중할 수 있는지 보면 놀랄 것이다.

파이썬의 공식적 소개는 다음과 같다.
파이썬은 배우기 쉽고 강력한 프로그래밍언어이다. 고레벨 데이터 구조체를 가지며 단순하지만 객체지향 프로그래밍에도 효과적으로 접근한다. 파이썬의 우아한 문법과 동적 타이핑 그리고 인터프리팅은 대부분의 플랫폼에서 스크립팅과 빠른 어플리케이션 개발을 가능케하는 언어이다.

다음 섹션에서 이들 특징에 대해 다룰 것이다.

이름뒤의 이야기

귀도 반 로썸, 파이선 언어 개발자는 언어 이름을 BBC쇼인 몬티파이썬의 플라잉 서커스에서 착안했다. 그는 음식을 위해 동물을 감싸고 으깨는 뱀을 특별히 좋아하지는 않는다.

파이썬의 특징들

단순함

파이썬은 단순하고 미니멀한 언어이다. 좋은 파이썬 프로그램을 읽으면 평문을 읽는것과 유사하다. 파이썬의 슈도 코드는 최고의 잇점중하나이다. 그것은 언어 자체보다 문제에 대한 해결책에 집중하게 한다.

배우기 쉽다

곧 보게 되겠지만, 파이썬은 시작하기 아주 쉽다. 파이썬은 특히나 단순한 문법을 가지고 있다.

무료 그리고 오픈소스

파이썬은 FLOSS (Free/Libre and Open Source Software) 의 한 예이다. 단순한 용어에서, 이 소프트웨어 복사본을 자유롭게 배포할 수 있고, 소스코드를 읽을 수 있으며 변경을할 수 있고, 새로운 무료 프로그램에서 사용할 수 있다. FLOSS는 지식을 공유하는 커뮤니티의 개념에 기반을 둔다. 이 것이 파이썬이 왜 좋은지에대한 이유중 하나이다. 더 나은 파이썬을 위해 지속적으로 향상되고 있다.

고차원언어

파이썬으로 프로그램을 작성할 때 프로그램에 의해 사용되는 메모리의 양과 같은 저차원 세부사항에 대해 신경쓰지 않아도 된다.

포터블

이게 오픈소스임에 따라 파이썬은 다양한 플랫폼에 포트되었다. 파이썬 프로그램은 시스템 의존 기능을 충분히 피했다면 별도의 추가적인 변경없이 다음 플랫폼에서 실행될 수 있다.

파이썬은 GNU/Linux, WIndows, FreeBSD, Macintosh, Solaris, OS/2, Amiga, AROS, AS/400, BeOS, OS/390, z/OS, Palm OS, QNX, VMS, Psion, Acorn RISC OS, VxWorks, PlayStation, Sharp Zaurus, Windows CE and PocketPC 에서 사용할 수 있다.

컴퓨터와 아이폰, 아이패드, 안드로이으에서 게임을 생성하는 Kivy와 같은 플랫폼에서도 사용할 수 있다.

인터프리트

C또는 C++과 같은 컴파일 언어로 작성된 프로그램은 컴파일러와 다양한 플래그 및 옵션으로 컴퓨터가 이해할 수 있는 바이너리 코드로 변환한다. 프로그램을 실행하면 링커/로더 소프트웨어가 하드디스크로부터 프로그램을 메모리로 복사해 실행시킨다.

하지만, 파이썬은 바이너리로 컴파일하지 않는다. 이 것은 소스코드로부터 바로실행된다. 내부적으로, 파이썬은 소스코드를 바이트코드라 불리는 중간 형태로 변환하고 컴퓨터 자체 언어로 해석해 실행한다. 실제로 이 모든 것은 파이썬이 프로그램으로 컴파일해야한다는 걱정에서 자유롭게 함으로서 쉽게 만들어준다. 이는 또한 파이썬이 훨씬 포터블하게 만들어주는데, 그저 파이썬 프로그램만 다른 컴퓨터에 복사하면 실행되기 때문이다.

객체 지향적

파이썬은 프로시져 기반 프로그래밍부터 객체 지향적 프로그래밍도 지원한다. 프로시져 기반 언어에서, 프로그램은 프로시져나 함수로 만들어지면 일부가 재사용가능하게 된다. 객체 지향적 언어에서 프로그램은 데이터와 기능으로 구성된 객체로 만들어진다. 파이썬은 특히 C++과 자바와 비교해보면 매우 강력하면서도 단순한 방법을 사용한다.

확장가능

코드의 일부를 빠르게 하거나 알고리즘이 오픈되지 않게 하려면 그 부분을 C/C++로 만들어 파이썬 프로그램에서 사용할 수 있다.

임베드 가능

프로그램 사용자의 스크립팅 기능을 위해 C/C++ 프로그램에 파이썬을 임베드 시킬 수 있다.

확장가능한 라이브러리들

파이썬 표준 라이브러리는 거대하다. 정규식, 문서 생성, 유닛 테스팅, 스레딩, 데이터베이스, 웹 브라우져, CGI, FTP, 이메일, XML, XML-RPC, HTML, WAV파일, 암호학, GUI, 그리고 다른 시스템 의존 기능들을 수행할 수 있다. 물론 파이썬이 설치된 곳이면 어떤 곳이든 가능하다. 이를 파이썬의 포함된 배터리들 철학이라고 부른다.

표준라이브러리 외에 다양한 고품질 라이브러리가 있으며 이 것들은 파이썬 패키지 인덱스에서 확인할 수 있다.

갈무리

파이썬은 재미있고 강력한 언어이다. 재미와 쉬움에서 성능과 기능의 적절한 조합을 가지고 있다.

파이썬 3 vs 2

이 섹션은 파이썬 버전 2와 3 사이의 차이에 대해 관심없으면 무시해도 된다. 하지만 어떤 버전을 사용중인지는 알아야 한다. 이 책은 파이썬 버전 3을 기준으로 작성되었다.

한 버전에 대해 일단 적절히 이해하고 배운다면 쉽게 차이와 사용을 배울 수 있다. 어려운 부분은 프로그래밍을 배우고 파이썬의 기본을 이해하는 것이다. 이 것이 이 책의 목적이다. 일단 목표를 이루면 상황에 따라 버전 2 또는 3를 사용하면 된다.

파이썬 2와 3의 세부적인 차이는 다음을 살펴본다.
파이썬 2의 미래 - https://lwn.net/Articles/547191/
파이썬 2 코드를 파이썬 3로 포팅하기 - https://docs.python.org/3/howto/pyporting.html
파이썬 2와 3 양쪽에서 구동되는 코드 작성하기 - https://wiki.python.org/moin/PortingToPy3k/BilingualQuickRef
파이썬 3지원하기: 세부 가이드 - http://python3porting.com/

프로그래머들의 평가

ESR과 같은 해커가 파이썬에 대해 한 이야기이다.
  • Eric S. Raymond is the author of "The Cathedral and the Bazaar" and is also the person who coined the term Open Source. He says that Python has become his favorite programming language. This article was the real inspiration for my first brush with Python.
  • Bruce Eckel is the author of the famous 'Thinking in Java' and 'Thinking in C++' books. He says that no language has made him more productive than Python. He says that Python is perhaps the only language that focuses on making things easier for the programmer. Read the complete interview for more details.
  • Peter Norvig is a well-known Lisp author and Director of Search Quality at Google (thanks to Guido van Rossum for pointing that out). He says that writing Python is like writing in pseudocode. He says that Python has always been an integral part of Google. You can actually verify this statement by looking at the Google Jobs page which lists Python knowledge as a requirement for software engineers.



덧글

댓글 입력 영역