먼저, 어떤 맥락 (대부분 당신이 알고있는 것들) :
Java 5, 6, 7 등, PHP 5.1, 5.2, 5.3 등이 있습니다. 새로운 버전을 출시하면 새로운 API를 사용할 수 있고 버그를 수정하며 추가 할 수 있습니다. 새로운 기능, 새로운 프레임 워크 등.
그러나 언어 (또는 플랫폼) 문제는 어떻습니까? 언어에 문제가있는 경우 개발자는 언어를 피하거나 (가능한 경우) 언어를 배우는 법을 배웁니다.
이제 해당 언어의 개발자는 해당 언어를 사용하는 프로그래머로부터 많은 피드백을받습니다. 따라서 시간 (및 버전 번호)이 지남에 따라 해당 언어의 문제는 느리지 만 확실하게 사라질 것입니다. 글쎄,별로. 왜? 이전 버전과의 호환성이 그 이유입니다. 그러나 왜 그렇습니까? 보다 구체적인 상황은 아래를 참조하십시오.
내 질문을 설명하는 가장 좋은 방법은 PHP를 예제로 사용하는 것입니다.
PHP는 수천 명의 사람들에게 사랑 받고 증오합니다. 모든 언어에는 결함이 있지만 분명히 PHP는 특별합니다. 이 블로그 게시물을 확인하십시오 . PHP에는 매우 긴 결함 목록이 있습니다. 이제는 PHP 개발자가 아니지만 (아직은 아님), 그 전체를 읽었으며 그 목록의 큰 부분이 실제로 문제가 될 것이라고 확신합니다. (주관적이기 때문에 전부는 아닙니다).
만약 내가 적극적으로 PHP를 개발하는 사람들 중 하나라면, 반드시 그 문제들을 하나씩 해결하고 싶을 것입니다. 그러나 그렇게하면 새 버전에서 실행될 때 언어의 특정 동작에 의존하는 코드가 중단됩니다. 두 단어로 요약하면 이전 버전과의 호환성입니다.
내가 이해하지 못하는 것은 PHP를 이전 버전과 호환성을 유지 해야하는 이유는 무엇입니까? 모든 문제가 해결 된 상태에서 PHP 버전 8을 출시하면 "이 버전에서는 이전 코드를 실행하지 마십시오!"라는 큰 경고를 표시 할 수 없습니다.
지원 중단이라는 것이 있습니다. 우리는 몇 년 동안 그것을 가지고 있었고 작동합니다. PHP와 관련하여 요즘 사람들이 mysql_*
함수 사용을 적극적으로 권장하지 않는 방법을 살펴보십시오 (대신 권장 mysqli_*
및 PDO). 더 이상 사용되지 않습니다. 사용할 수 있습니다. 우리는 그것을 사용해야합니다. 함수에서 작동한다면 왜 전체 언어에서는 작동하지 않습니까?
나 (PHP 개발자)가 이것을한다고 가정 해 봅시다.
- 모든 결함을 수정 한 새로운 버전의 PHP (8)를 시작하십시오.
- 새 프로젝트는 해당 버전을 사용하기 시작합니다. 훨씬 더 좋고, 명확하고, 더 안전합니다.
- 그러나 이전 버전의 PHP를 버리지 않기 위해 보안 문제, 버그 등을 수정하여 업데이트를 계속 발표합니다. 여기에 나열되지 않은 이유가 있습니다. 일반적인 관행입니다. 예를 들어, 주로 버전 5.5.x에 중점을 두었지만 Oracle이 MySQL 버전 5.1.x를 어떻게 업데이트했는지 살펴보십시오.
- 약 3 년 또는 4 년 후에, 나는 이전 버전의 PHP 업데이트를 중단하고 죽습니다. 3 년에서 4 년 동안 대부분의 프로젝트는 어쨌든 PHP 8로 전환 될 것입니다.
내 질문은 :이 모든 단계가 의미가 있습니까? 너무 어려울까요? 할 수 있다면 왜 안 되나요?
예, 단점은 이전 버전과의 호환성을 깨뜨리는 것입니다. 하지만 그 대가는 지불 할 가치가 없습니까? 거꾸로, 3 년에서 4 년 안에 문제의 90 %가 해결 된 언어를 갖게 될 것입니다. 그 이름은 인기를 보장 할 것입니다.
편집 : 좋아, 그래서 나는 3 ~ 4 년 안에 사람들이 가상의 PHP 8로 옮길 것이라고 말했을 때 나 자신을 정확하게 표현하지 못했습니다. 새 프로젝트.
mysql_*
예를 들어 5.5에서 더 이상 사용되지 않는 새로운 버전으로 많은 것들이 수정 되었지만 호스팅 제공 업체의 대다수가 하나 또는 두 개의 버전을 가지고 있다면 관계가 없습니다 (5.3은 불행히도 여전히 대다수의 것입니다. 공급자 제공).