앞서 파이썬의 장점을 살펴봤습니다.(링크) 이번 시간엔 파이썬의 단점과 미래에 파이썬을 대체할만한 언어들을 살펴보겠습니다.
#속도
파이썬은 굉장히 느린 언어에 속합니다. 2~10배 정도 느리죠. 여기에는 여러가지 이유가 있지만 그 중 하나는 dynamical type입니다. 앞서 장점 시간에 말씀드린 것처럼 파이썬은 변수들의 데이터 타입을 정해줄 필요가 없습니다. 파이썬이 알아서 그 일을 처리하는데, 그 과정이 파이썬에게 큰 부담을 된다고 합니다. 프로젝트가 점점 커지고 소스 코드가 길어질수록 속도는 점점 느려집니다. 하지만 하드웨어의 발달과 인터넷의 발달로 그 속도의 차이는 무의미한 수치까지 왔습니다. 어느 누구도 0.001초와 0.01초의 차이로 불평하진 않죠.
#Scope
파이썬은 dynamical scope으로 동작합니다. 이 의미는 변수 x를 정한 후 계산식을 통해 또 다른 x가 나왔을 때 파이썬은 소스 가장 아래쪽에 있는 x를 가져옵니다. 예를 들면,
x = 10
y = 20
x = y + 10
print(x)
Output:
30
이런 식으로 저는 처음에 변수x에 10을 대입시켰습니다. 하지만 이후 변수x에 y + 10을 대입시켰죠. 이 때 x를 print하면 소스 가장 아래에 있는 y + 10, 즉 30을 내보냅니다.
이 특성의 문제점은 소스 코드가 길어졌을 때 발생합니다. 소스 코드가 길어질수록 많은 변수들을 사용합니다. 이 때 자신도 모르게 같은 변수를 2번 이상 사용하면 본인이 계획한대로 결과가 나오지 않는 상황이 발생할 수 있죠.
#모바일 개발
파이썬은 모바일 개발용으로 나온 언어가 아닙니다. 모바일 개발이 가능하긴 하지만 React Native나 Flutter 등 모바일 개발용 언어들을 이용하는 편이 좋죠. 즉, 파이썬 하나만으로 올라운드 개발자가 될 수는 없습니다.
#런타임 에러
파이썬은 다른 언어들과 달리 실행할 때마다 컴파일을 진행합니다. 이런 특성이 안 좋은 성능을 불러오고 정말정말 많은 테스트를 요구합니다. 초보자들에게는 이런 테스트들이 좋은 선생님이 됩니다. 하지만 프로 개발자들에게 아주 큰 프로젝트를 테스트하는 것은... 사람 미치게 만드는 일이죠.
#미래에는 어떤 언어들이 파이썬을 대체할 수 있을까요?
- Rust는 파이썬만큼 안전하면서 파이썬처럼 dynamic type도 아닙니다. ownership과 borrowing이라는 컨셉으로 성능 이슈도 해결했죠.
- Go는 파이썬만큼 초보자에게 좋은 언어입니다. 심플하고 관리하기도 쉽죠. 그리고 Go 개발자는 급여가 높습니다!
- Julia는 파이썬과 정면으로 경쟁하는 최신 언어입니다. 아주 큰 스케일의 계산에 아주 유용하죠. 일반적으로 이런 계산에는 파이썬이나 매트랩(Matlab)에 C++ 라이브러리를 패치해서 진행합니다. 하지만 Julia는 단독으로 이런 계산을 해냅니다.
지금까지 파이썬의 장점과 단점 그리고 미래에 파이썬을 대체할만한 언어들에 대해 알아봤습니다. 이제 막 코딩을 배워보려는 입장에서 상당히 머리아프고 복잡한 얘기였습니다... 어쨌든 파이썬이 사무직에 활용하면 좋은 언어라는 점, 내가 프로 개발자는 아니라는 점을 생각해보면 자료도 많고 커뮤니티도 큰 파이썬을 배워보는 것이 좋을 것 같습니다. 아무래도 코딩 언어들이 서로 비슷하니까 나중에 파이썬이 사라져도 대체 된 언어를 더 적은 노력으로 배울 수 있을테니까요.
<Reference>
1. Why Python is not the programming language of the future, Rhea Moutafis
'취미 > Programming' 카테고리의 다른 글
[Python] 64비트 아나콘다에서 32비트 환경 만들기 (0) | 2020.05.05 |
---|---|
Python(파이썬)은 왜 가장 사랑받는 언어일까? (Why Python?) (0) | 2020.05.03 |
[Python 환경설정] VS code 설치 및 Anaconda와 연동하기 (4) | 2020.05.02 |
[Python 환경설정] 아나콘다(Anaconda) 설치하기 (0) | 2020.05.01 |
프로그래머에게 맥(Mac)이 윈도우(Windows)보다 좋은 이유 3가지 (0) | 2020.04.30 |
최근댓글