Python은 현재 가장 많이 사용되는 High-Level Programming Language 중 하나임.
사실, Machine Learning (특히 Deep Learning) 분야와 Data Science 분야, 그리고 Scientific Computing분야에서 가장 많이 사용되는 언어라고 할 수 있다.
기반 기술을 개발하는 이들이나
Web Application이나 Desktop Application이나
스마트폰 App를 개발하는 이들의 경우엔
JavaScript나 C, C++, Rust, Go 등등을 애용하겠지만.
또한, 수많은 사용자들을 등에 업고 web application이나 automation 등의 분야로의 활용도도 점점 높아지고 있다.
https://elice.io/newsroom/kind_of_programming_language
Python의 특징은 다음과 같다.
General Purpose
Programming Laguage :
Python은 거의 모든 분야의 프로그램 개발이 가능하다
(상대적으로 embeded system이나 스마트어플 개발에선 널리 사용되는 편은 아니지만... 가능은 하다. )Cross-Platform
Programming Laguage :
Python은 Linux, Windows, MacOS 등 다양한 platform에서 사용가능하다. (=highly portable
)Interpreter
Program Language (or Interpreted Language) :REPL
(Run-Evaluation-Print-Loop)을 통한 개발이 가능함.Readable and Expressive Syntax
:
높은 가독성과 간결함이 가능한 syntax를 가지고 있으며,
특유의 indentation(들여 쓰기) 기반의 code block을 채택하여 높은 가독성의 코드 작성이 보다 쉬움.Large standard library and Extenisive Third-party library
:
Python Standard Library로 풍부한 library와 module들이 제공되며,
그 이상으로 풍부하며 다른 어떤 programming language들에 뒤지지 않는
최고 수준의 다양한 외부 그룹들이 제공하는 library와 framework들을 가지고 있음.Integration and scripting
:
Python은 C, C++, Java 등 다른 언어들을 쉽게 통합할 수 있는 특징을 가지고 있어서glue language
라고 불리기도 하며,
automation이나 system관리에서 요구되는 scripting task를 쉽고 효율적으로 수행할 수 있는 장점을 지님.Large and Active Commuity Support
:
세 손가락 안에 들어가는 개발자를 보유하고 있으며,
이를 바탕으로 활발한 user community가 구축되어 있음.
동시에 다양하고 질 높고 광범위한 online-documentation과 tutorial, support 등을 강점으로 가짐.
Python은 매우 다양한 분야에서 강력한 기능의 SW를 매우 쉽고 효율적으로 작성할 수 있게 해주는 언어임.
단점이라면 쉬운 문법과 높은 수준의 abstraction으로 인해
Computer에 대한 low-level 지식을 익히는데 큰 도움이 안 되며,
다른 programming language를 상대적으로 익히기 어렵다는 단점을 가짐 (워낙 Python이 쉽고 생산성이 높기 때문에 발생하는 단점임)
대조적인 언어가 C
와 C++
언어로 이들은 기본적으로 low-level 지식을 익히지 않고는 제대로 활용하기 어렵고 이들을 제대로 마스터하면 다른 언어들을 쉽게 익히는 것으로 유명하다.
Portability 란? (POSIX에 대한 설명을 통해 이식성에 대한 이해를 할 수 있는 글임)
https://dsaint31.me/mkdocs_site/CE/ch15/ce15_2_4_portability/
'Programming' 카테고리의 다른 글
[Python] Expression vs. Statement (0) | 2023.06.12 |
---|---|
[WSL] Install WSL (0) | 2023.06.12 |
[Python] Dynamic Language vs. Static Language (0) | 2023.06.11 |
[Python] Keyword란? (Soft Keyword 포함) (0) | 2023.06.11 |
[Python] Commnets and Docstrings (0) | 2023.06.11 |