앞서 파이썬의 장점을 살펴봤습니다.(링크) 이번 시간엔 파이썬의 단점과 미래에 파이썬을 대체할만한 언어들을 살펴보겠습니다.

불러오는 중입니다...

 

#속도

 

파이썬은 굉장히 느린 언어에 속합니다. 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는 단독으로 이런 계산을 해냅니다. 

Go, Rust 그리고 Julia의 지난 십년간 인기도 추세 from StackOverflow

지금까지 파이썬의 장점과 단점 그리고 미래에 파이썬을 대체할만한 언어들에 대해 알아봤습니다. 이제 막 코딩을 배워보려는 입장에서 상당히 머리아프고 복잡한 얘기였습니다... 어쨌든 파이썬이 사무직에 활용하면 좋은 언어라는 점, 내가 프로 개발자는 아니라는 점을 생각해보면 자료도 많고 커뮤니티도 큰 파이썬을 배워보는 것이 좋을 것 같습니다. 아무래도 코딩 언어들이 서로 비슷하니까 나중에 파이썬이 사라져도 대체 된 언어를 더 적은 노력으로 배울 수 있을테니까요.

 

<Reference>
1. Why Python is not the programming language of the future, Rhea Moutafis
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기