Python에서 인기있는 밈은 무엇인가요?


우수 답변

python meme 확인

답변

몇 가지 이유 :

  1. 특정 시점에서 인간의 뇌는 속도 향상을 인식 할 수 없습니다. C에서 Python 코드를 다시 구현하고 200 배 더 빠르게 실행되면 사용자는 원래 코드가 이미 0.01 초만에 실행되었는지도 알지 못합니다. 도대체 원래 코드가 0.1 초만에 실행되었는지도 알지 못할 것입니다. 초. 0.1 초와 0.0005 초의 차이는 대부분의 사람들에게 효과적으로 인식되지 않습니다. 실제로 그것을 식별 할 수있는 사람들에게도 여전히 느낌 은 전혀 눈에 띄지 않습니다.
  2. 느린 속도는 사용 방법에 따라 크게 달라집니다. 진짜 문제는 많은 사람들이 조기 최적화 문제를 겪고 있다는 것입니다. 예, Python은 느리지 만 코드가 실제로 Python 때문에 느리지는 않습니다. 코드가 잘못된 데이터 구조와 알고리즘을 사용하여 주어진 문제를 해결하기 때문에 느립니다. C와 같은 컴파일 된 언어를 사용하면 문제가 숨겨집니다. 예, 더 빠르지 만 비효율적 인 알고리즘에서만 더 빠릅니다. 올바른 데이터 구조와 알고리즘을 사용하면 구현하는 언어와 처리하는 데이터의 양에 관계없이 거의 확장됩니다. 더 빠른 언어는 단기적으로 만 이득을 얻을 수 있습니다. O (n!) 알고리즘은 C로 구현하더라도 여전히 O (n!) 알고리즘입니다. 진정으로 지식이 풍부한 엔지니어는이를 알고 있으며 충분히 빠른 응용 프로그램을 만들 수 있습니다. 올바른 구조와 알고리즘을 사용하기 때문에 구현 언어에 관계없이 확장이 가능합니다.
  3. Python은 주로 “접착제”언어였으며 앞으로도 계속 될 것입니다. 원본이 아닌 소프트웨어 전적으로 서로 직접 작업하기위한 것입니다. 또한 일반적으로 수작업으로 수행되는 작업을 자동화하는데도 좋습니다. 이러한 목적을 위해 메인 작업은 어쨌든 다른 곳에서 발생하기 때문에 충분히 빠릅니다. C와 같은 “빠른”언어의 경우 이러한 유형의 글루 작업은 매우 느리고 오류가 발생하기 쉬우므로 노력할 가치가 거의 없습니다. 실행 속도의 향상은 개발자가 작업에 소요되는 시간 낭비로 상쇄됩니다. 이것이 계속해서 인기를 끌고있는 큰 이유 중 하나입니다.
  4. 일부 병목 현상은 단순히 구현 언어의 직접적인 제어 범위 밖에 있습니다. IO는 일반적인 것입니다. 저는 지금 파이썬의 모든 것이 충분히 빠른 애플리케이션을 다루고 있습니다. 네트워크에 접속하여 데이터베이스를 쿼리 할 때만 일이 느려집니다. 내 프로파일 링에 따르면 Python 코드의 가장 느린 부분조차도 네트워크 IO에서 대기하는 데 걸린 시간에 비해 완전히 중요하지 않습니다. 이제 데이터베이스에 덜 접근하는 방법을 찾으려고합니다 (클라이언트 측 캐싱, 데이터에 대한 중복 온 전성 검사 방지 등). 어셈블러에서 응용 프로그램을 작성하더라도 여전히 문제가 될 것입니다. Python으로이 문제를 해결하는 것은 표준 라이브러리에있는 (매우 강력한) 프로파일 링 라이브러리와 함께 제공되기 때문에 실제로 더 빠르고 쉽습니다. “빠른”컴파일 된 많은 언어는 전통적으로 기본적으로 제공되지 않습니다.

스토리의 교훈은 거의 항상 개발자 시간이 머신 시간보다 우선합니다. 느림은 일반적으로 외부 라이브러리 또는 서비스로 쉽게 최적화 할 수있는 특정 병목 지점을 정확히 파악할 수 있습니다. 진정으로 외부 라이브러리 나 서비스로 최적화 할 수없는 경우는 매우 드뭅니다. 예를 들어 거의 존재하지 않습니다.

한 가지 예외는 처음부터 애플리케이션에 필요한 사항을 알고있는 경우입니다. 가능한 한 실시간 성능에 가깝고 대부분의 코드는 컴퓨팅 중심이 될 것입니다. 좋은 예는 비디오 게임 또는 DCC 응용 프로그램입니다. 가능한 한 실시간에 가깝거나 사용자가 없을 것입니다.

그러나 이것이 사실이 아니라면 많은 개발자들이 프로토 타이핑을 위해서라도 Python의 생산성 향상을 선호합니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다