참고 : 이것은 주로 주관적이며 내 경험과 인상에 근거합니다.
동적 유형 언어는 정적 유형 언어와 매우 다릅니다. 이러한 차이는 대부분의 다른 응용 프로그램보다 헤비급 엔터프라이즈 소프트웨어에서 더 중요해집니다.
정적으로 입력 된 언어는 매우 규범적인 경향이 있습니다. 메소드는 서명과 정확히 일치하는 입력 만받습니다. 액세스 수준은 매우 중요한 경향이 있으며 인터페이스는 명확하지만 명확하게 정의되어 있으며 이러한 정의를 시행하기위한 자세한 제한 사항이 있습니다.
반면에 동적으로 입력 된 언어는 매우 실용적입니다. 유형 변환은 종종 암시 적으로 발생하며, 충분히 유사한 동작을하는 한 잘못된 유형의 입력을 제공하면 함수가 작동 할 수도 있습니다. 파이썬과 같은 언어에서는 액세스 수준조차 기술적 인 제한이 아닌 계약을 기반으로합니다. 즉, private
사용하지 말라고 말하고 재미있는 이름을 가지고 있기 때문입니다.
많은 프로그래머들은 역동적 인 언어를 선호합니다. 코드는 종종 형식 선언이 없기 때문에 짧아지고 빠르고 더러운 솔루션이 필요하거나 무언가를 테스트하기 위해 적절한 프로토콜을 위반하려는 경우 쉽게 가능합니다.
"기업가"회사가 정적으로 유형이 지정된 언어를 선호하는 이유는 이러한 제한에 대해보다 제한적이고 명확하기 때문입니다. 실제로는 정적 형식의 코드조차도 컴파일러를 사용하는 바보에 의해 깨질 수 있지만 많은 문제가 프로세스 초기에 (즉, 런타임 전에) 훨씬 더 많이 보입니다. 즉, 코드베이스가 크고 모 놀리 식이며 복잡한 경우에도 코드를 실행하거나 QA 부서로 보내지 않고도 많은 오류를 쉽게 포착 할 수 있습니다.
이점이 해당 환경 외부의 많은 프로그래머에게는 단점보다 중요하지 않은 이유는 이러한 코드가 코드를 철저히 검사하거나 코드를 실행하여 쉽게 잡을 수 있기 때문에 발생하는 오류이기 때문입니다. 특히 테스트 중심의 방법론을 따를 때 이러한 오류는 종종 사소하고 수정하기 쉽습니다. 또한 출시주기가 훨씬 짧은 이러한 많은 회사의 경우 생산성이 강성보다 중요한 경우가 많으며 개발자가 자체적으로 많은 (기본) 테스트를 수행하고 있습니다.
기업체가 동적 유형 언어를 많이 사용하지 않는 또 다른 이유는 레거시 코드입니다. 어리석은 것처럼 보이지만 대기업은 유통 기한이 지난 경우에도 작동하는 솔루션을 고수합니다. 이것이 많은 주요 회사들이 Internet Explorer 6을 시행하고 OS 업그레이드 속도가 너무 느린 이유입니다. 그렇기 때문에 그들은 종종 "오래된"언어 (예 : 고대 버전의 Java)로 새로운 코드를 작성하는 이유도 있습니다. 언어.
tl : dr : 정적 언어는 관료주의처럼 느껴지므로 기업 관리자는 더 좋아합니다.