본문 바로가기
개발자의 정보/개발관련 상식

파이썬은 왜 미래의 프로그래밍 언어가 아닐까

by pastory 2020. 4. 2.

파이썬을 이해하기 위해서는 프로그래밍 커뮤니티가 수십 년이 걸렸습니다. 그러나 2010 년 초 이래로 인기가 높아 C, C #, Java 및 JavaScript를 능가했습니다.

그러나 그 추세는 언제까지 계속 될까요? 파이썬은 언제 다른 언어로 대체 될까요?

파이썬에 정확한 만료 날짜를 두는 것은 많은 추측 일 것입니다. 공상 과학뿐만 아니라 지나칠 수도 있습니다. 대신, 나는 현재 파이썬의 인기를 높이는 미덕과 앞으로 그것을 깨뜨릴 약점을 평가할 것이다.

파이썬이 지금 인기있는 이유

파이썬의 성공은 플랫폼의 게시물에있는 태그의 수를 측정하는 스택 오버 플로우 트렌드에 반영됩니다. StackOverflow의 크기를 감안할 때 이것은 언어 인기에 대한 훌륭한 지표입니다.

StackOverflow에서 다양한 프로그래밍 언어의 태그 스냅 샷

R은 지난 몇 년 동안 정체되어 왔으며 다른 많은 언어는 꾸준히 감소하고 있지만 Python의 성장은 막을 수없는 것 같습니다. 모든 StackOverflow 질문의 거의 14 %에 "python"이라는 태그가 붙어 있으며 추세가 올라갑니다. 그리고 몇 가지 이유가 있습니다.

오래된 생태계

파이썬은 90 년대부터 존재 해 왔습니다. 그렇다고 성장할 시간이 충분하다는 의미는 아닙니다. 또한 대규모 지원 커뮤니티를 확보했습니다.

따라서 Python으로 코딩하는 동안 문제가 발생하면 한 번의 Google 검색으로 문제를 해결할 수있을 가능성이 높습니다. 누군가가 이미 문제를 겪고 그것에 대해 도움이되는 것을 썼기 때문에 간단합니다.

초보자에게 친화적

프로그래머가 훌륭한 튜토리얼을 만들 시간을 주면서 수십 년 전부터 있다는 사실 만이 아닙니다. 그 외에도 파이썬의 구문은 사람이 읽을 수 있습니다.

시작을 위해 데이터 유형을 지정할 필요가 없습니다. 변수를 선언하기 만하면됩니다. 파이썬은 컨텍스트에서 정수, 부동 소수점 값, 부울 값 또는 기타 다른 것을 이해합니다. 초보자에게는 큰 장점입니다. C ++로 프로그래밍해야한다면 실수(소숫점을 포함하는 수)를 정수로 교체했기 때문에 프로그램이 컴파일되지 않는 것이 얼마나 실망스러운지 알 것입니다.

그리고 파이썬과 C ++ 코드를 나란히 읽어야 한다면, 파이썬이 얼마나 이해하기 쉬운지 알게 될 것입니다. C++은 영어를 염두에두고 설계되었지만 파이썬 코드에 비해 다소 어렵습니다.

파이썬 배우기 : 제로에서 영웅으로

Python의 첫 단계에 대한 빠르고 포괄적 인 안내서입니다.

medium.com

 

써먹을 곳이 많습니다

파이썬은 오랫동안 사용되어 왔기 때문에 개발자는 모든 목적을 위해 패키지를 만들었습니다. 요즘에는 거의 모든 것을위한 패키지를 찾을 수 있습니다.

숫자, 벡터 및 행렬을 다루고 싶습니까? NumPy는 당신의 남자입니다.
기술 및 엔지니어링에 대한 계산을 원하십니까? SciPy를 사용하십시오.
데이터 조작 및 분석에 큰 관심이 있습니까?  Pandas에게 가자.
인공 지능으로 시작하고 싶습니까? 왜 Scikit-Learn을 사용하지 않습니까?

관리하려는 계산 작업이 무엇이든 파이썬 패키지가있을 수 있습니다. 이것은 최근 몇 년간 머신 러닝의 급증으로 파이썬이 최근 개발에 대한 최우선 순위를 유지하게합니다.

파이썬의 단점과 치명적인지 여부

이전의 정교함을 바탕으로 파이썬은 앞으로 몇 년간 sh*t 위에 머무를 것이라고 상상할 수 있습니다. 그러나 모든 기술과 마찬가지로 Python에는 약점이 있습니다. 가장 중요한 결함을 하나씩 살펴보고 이것이 치명적인지 여부를 평가하겠습니다.

속도

파이썬은 느립니다. 정말 느려요. 평균적으로 다른 언어보다 Python으로 작업을 완료하는 데 약 2-10 배가 더 필요합니다.

그 이유는 여러 가지가 있습니다. 그 중 하나는 동적으로 입력한다는 것입니다. 다른 언어와 같이 데이터 유형을 지정할 필요가 없습니다. 이것은 프로그램이 어떤 경우에도 작동하는 각 변수에 대해 충분한 공간을 예약해야하기 때문에 많은 메모리를 사용해야 함을 의미합니다. 그리고 많은 메모리 사용은 많은 컴퓨팅 시간으로 이어집니다.

또 다른 이유는 파이썬이 한 번에 하나의 작업 만 실행할 수 있기 때문입니다. 이는 유연한 데이터 유형의 결과입니다. Python은 각 변수에 하나의 데이터 유형 만 있어야하며 병렬 프로세스가이를 망칠 수 있습니다.

이에 비해 일반적인 웹 브라우저는 한 번에 12 개의 다른 스레드를 실행할 수 있습니다. 그리고 다른 이론들도 있습니다.

그러나 속도 문제는 중요하지 않습니다. 컴퓨터와 서버의 성능이 너무 좋아져서 사용자가 느낄만한 성능의 차이는 별로 없습니다. 최종 사용자는 앱이 0.001 초 또는 0.01 초 내에로드되는지 여부에 신경 쓰지 않습니다.

왜 파이선이 슈퍼하게 느린데 인기가 있을까

Bobby의 Python에서 속도 문제와 관련이없는 것에 대한 아름다운 설명

medium.com

 

범위

원래 파이썬은 동적으로 범위가 지정되었습니다. 이것은 기본적으로 표현식을 평가하기 위해 컴파일러가 먼저 현재 블록을 검색 한 다음 모든 호출 함수를 연속적으로 검색 함을 의미합니다.

동적 범위 지정의 문제점은 모든 표현을 가능한 모든 상황에서 테스트해야한다는 점입니다. 그렇기 때문에 대부분의 최신 프로그래밍 언어는 정적 범위 지정을 사용합니다.

파이썬은 정적 범위 지정으로 전환하려고 시도했지만 엉망이되었습니다. 일반적으로 내부 범위 (예 : 함수 내의 함수)는 외부 범위를보고 변경할 수 있습니다. Python에서 내부 범위는 외부 범위 만 볼 수 있지만 변경할 수는 없습니다. 이것은 많은 혼란을 초래합니다.

람다식

Python의 모든 유연성에도 불구하고 Lambdas의 사용은 다소 제한적입니다. Lambdas는 Python에서만 표현식이 될 수 있으며 명령문이 될 수 없습니다.

반면에 변수 선언과 문장은 항상 서술형 입니다. 이는 Lambdas를 사용할 수 없음을 의미합니다.

표현과 문장의 구별은 다소 임의적이며 다른 언어에서는 발생하지 않습니다.

공백은 코드를 더 읽기 쉽지만 유지 관리하기는 어렵습니다.  Unsplash 에  Irvan Smith 의 사진

공백문자

Python에서는 공백과 들여 쓰기를 사용하여 다른 수준의 코드를 나타냅니다. 이를 통해 시각적으로 매력적이고 직관적으로 이해할 수 있습니다.

C ++와 같은 다른 언어는 중괄호와 세미콜론에 더 의존합니다. 시각적으로 매력적이지 않고 초보자에게 친숙하지는 않지만 코드를 유지 관리하기가 훨씬 쉽습니다. 대규모 프로젝트의 경우 훨씬 유용합니다.

Haskell과 같은 최신 언어는이 문제를 해결합니다. 공백에 의존하지만없이 가고 싶은 사람들을위한 대체 구문을 제공합니다.

모바일 개발

데스크톱에서 스마트 폰으로의 전환이 목격됨에 따라 모바일 소프트웨어를 구축하려면 강력한 언어가 필요합니다.

그러나 파이썬으로 개발 된 모바일 앱은 많지 않습니다. 그렇다고 할 수 없다는 의미는 아닙니다.이를 위해 Kivy라는 Python 패키지가 있습니다.

그러나 파이썬은 모바일을 염두에두고 만들어지지 않았습니다. 따라서 기본 작업에 적합한 결과를 얻을 수 있지만 모바일 앱 개발을 위해 만들어진 언어를 사용하는 것이 가장 좋습니다. 모바일 용으로 널리 사용되는 프로그래밍 프레임 워크로는 React Native, Flutter, Iconic 및 Cordova가 있습니다.

분명히, 랩탑과 데스크탑 컴퓨터는 앞으로 몇 년 동안 존재해야합니다. 그러나 모바일은 오랫동안 데스크톱 트래픽을 능가했기 때문에 Python을 배우는 것만으로 숙련 된 만능 개발자가 되기에는 충분하지 않다고 말하는 것이 안전합니다.

실행시 오류

파이썬 스크립트는 먼저 컴파일 된 후 실행되지 않습니다. 대신 실행할 때마다 컴파일되므로 런타임시 코딩 오류가 나타납니다. 이로 인해 성능 저하, 시간 소비 및 많은 테스트가 필요합니다.

테스트에서 많은 것을 가르쳐주기 때문에 초보자에게 좋습니다. 그러나 노련한 개발자에게는 복잡한 프로그램을 파이썬으로 디버깅해야하므로 혼란스러워집니다. 이러한 성능 부족은 Python에서 타임 스탬프를 설정하는 가장 큰 요인입니다.

지금 배울 톱 7 현대 프로그래밍 언어

Rust, Go, Kotlin, TypeScript, Swift, Dart, Julia가 경력을 향상시키고 소프트웨어 개발 기술을 향상시키는 방법

towardsdatascience.com

 

미래에 파이썬을 대체 할 수있는 것 - 그리고 언제

프로그래밍 언어 시장에는 몇 가지 새로운 경쟁자가 있습니다.

  • Rust는 파이썬과 같은 종류의 안전성을 제공합니다. 실수로 덮어 쓸 수는 없습니다. 그러나 소유권 및 차용 개념으로 성능 문제를 해결합니다. StackOverflow Insights에 따르면 지난 몇 년간 가장 사랑받는 프로그래밍 언어이기도합니다.
  • Go는 Python과 같은 초보자에게 좋습니다. 또한 코드를 유지 관리하기가 매우 간단합니다. 재미있는 점 : Go 개발자는 시중에서 가장 많은 비용을 지불하는 프로그래머입니다.
  • Julia는 Python과 정면으로 경쟁하는 매우 새로운 언어입니다. 대규모 기술 계산의 격차를 메 웁니다. 일반적으로 Python 또는 Matlab을 사용하고 대규모로 필요한 C ++ 라이브러리로 모든 것을 패치했습니다. 이제 두 언어로 저글링하는 대신 Julia를 사용할 수 있습니다.

시장에 다른 언어가 있지만 Rust, Go 및 Julia는 약한 Python 패치를 수정하는 언어입니다. 이러한 언어는 모두 인공 지능 분야에서 뛰어난 기술에 뛰어납니다. StackOverflow 태그의 수에 반영된 것처럼 시장 점유율은 여전히 작지만 모든 추세는 분명합니다.

Snapshot of tags on various programming languages on StackOverflow.

현재 파이썬의 유비쿼터스 인기가 주어지면 새로운 언어 중 하나가 그것을 대체하는 데는 약 10 년이 걸릴 것입니다.

Rust, Go, Julia 또는 미래의 새로운 언어 중 어떤 언어가이 시점에서 말하기 어렵습니다. 그러나 파이썬 아키텍처에서 근본적인 성능 문제를 감안할 때 필연적으로 그 자리를 차지할 것입니다.


출처: https://towardsdatascience.com/why-python-is-not-the-programming-language-of-the-future-30ddc5339b66

 

 

Why Python is not the programming language of the future

Even though it will be in high demand for a few more years

towardsdatascience.com

 

댓글