>  기사  >  백엔드 개발  >  PHP, Java 및 Javascript에 대한 통합 언어 사양이 있습니까?

PHP, Java 및 Javascript에 대한 통합 언어 사양이 있습니까?

WBOY
WBOY원래의
2016-12-01 00:01:20878검색

이 질문은 미래를 상상하는 데 사용됩니다. 비즈니스 정책, 정부 정책 등 너무 많은 실제적인 요소를 고려할 수는 없습니다.

우선 ES6, java8, php7의 문법 표준에는 몇 가지가 있습니다. 서로 겹칩니다. 세 가지의 기본 구문도 매우 유사합니다.

응용 관점에서 볼 때 세 가지 언어는 상당히 공학적이며 매우 복잡한 프로젝트를 구축하는 데 사용됩니다.

js를 브라우저 측에서 실행할 수도 있지만, 최근 구성 요소화 프레임워크로 인해 프런트엔드 개발이 데스크톱 애플리케이션과 유사해졌습니다. 브라우저에서 java나 php를 실행할 수 있고 DOM 운영을 허용한다고 할 수 있습니다. , React는 이 두 언어로 구현될 수 있습니다.

백엔드 측면에서는 세 가지 언어가 하루 이틀 만에 작동하지 않습니다. 각 기능이 완료되고 개발이 민첩하며 생태계가 번영합니다.

그러므로 언어기준의 통일이 가능하다고 봅니다. 표준이 통일되면 프로그래머의 학습 비용이 크게 줄어들고, 다양한 문법에 신경을 쓰기보다 프론트엔드와 백엔드 개발 기술, 프로그래밍 언어 아이디어, 일반적인 문법적 특징에 더 많은 관심을 기울일 수 있을 것으로 예상됩니다. 세부 사항, 환경 종속성 및 타사 프로그래밍 결국 타사 라이브러리도 보편화될 것입니다.

그러나 표준이 실제로 출시되면 여전히 몇 가지 골치 아픈 질문이 있습니다.
편집인가 해석인가?
강한 타입인가, 약한 타입인가?
이벤트 중심인가요, 아니면 멀티스레드인가요?
다양한 패키지 관리를 통합하는 방법은 무엇입니까?
브라우저에서는 어떻게 실행하나요?
가비지 수집의 무게를 측정하는 방법은 무엇입니까?

여러분의 생각이 궁금합니다!

답글 내용:

실제로 많은 현대 언어의 문법은 점점 더 유사해지고 있습니다. 예를 들어 PHP의 구문이 개선되면서 점점 JavaScript와 비슷해지고(예를 들어 array(...) 구문의 약어는 [...]), 다양한 언어로 도입된 async/await는 거의 똑같고, 최근 Facebook이 개발한 이유는 OCaml의 구문을 JS와 매우 유사하게 변환하기 위한 것입니다. 그래서 이론적으로 문법적 통일은 불가능하지 않은 것 같습니다.

그러나 구문은 다른 모든 부분과 마찬가지로 호환성을 유지하는 문제가 있습니다. python3과 같이 호환성을 깨뜨리는 반례. 이는 다른 언어는 물론 언어 자체의 업그레이드에도 해당되지 않습니다. 또 다른 작은 예를 들자면, 언어로서 JS에서는 다른 언어는 물론 선택적 세미콜론을 사용할지 여부에 대한 논쟁이 있었습니다.

문법적 차원에서는 아주 유사하게 변형될 수 있다고 해도, 더 문제가 되는 것은 의미적 차원이다. 피험자가 제기한 '골치 아픈 질문':
편집인가, 해석인가?
강한 타입인가, 약한 타입인가?
이벤트 중심인가요, 아니면 멀티스레드인가요?
다양한 패키지 관리를 통합하는 방법은 무엇입니까?
브라우저 측에서는 어떻게 실행하나요?
가비지 수집의 무게를 측정하는 방법은 무엇입니까?
사실 문법적인 문제는 전혀 아닙니다.

이런 큰 문제에 대해 이야기하지 마세요. PHP와 JS라는 또 다른 작은 예를 들어보겠습니다. 두 배열 모두 [1, 2, 3]을 사용하여 구성한 다음 a[0]과 같은 첨자 구문을 사용하여 액세스할 수 있습니다. 그리고 PHP와 JS의 배열은 문자열을 키로 사용할 수도 있습니다. 문자열이 숫자인 경우에도 숫자 인덱스와 동일합니다. 그것들은 정확히 똑같아 보입니다. 그러나 PHP와 JS의 배열은 실제로 매우 다릅니다.

1. JS와 PHP 모두 인덱스에 대해 암시적 유형 변환을 수행합니다. JS의 인덱스는 모두 문자열로 귀화되므로 a[10]과 a[10.1]은 다릅니다. 그러나 PHP의 인덱스는 먼저 정수로 정규화되므로 a[10]과 a[10.1]은 동일합니다.

2. PHP에서:
<code class="language-text">$a1 = [1, 2];
$a2 = [0 => 1, 1 => 2];
$a3 = [1 => 2, 0 => 1];
</code>
너무 많이 생각하지 마세요. 다른 여러 언어가 통합할 의향이 있다고 해도 J8의 사장 래리 엘리슨이 의향이 있다고 생각하시나요? 통일된 사양은 없을 예정입니다

한어병음과 영어 모두 26자로 표현되지만 내용은 전혀 다릅니다. 괜찮아요. PHP에는 JPHP가 있고, JS에는 Narshor가 있고, Python에는 Jython이 있고, Java는 말할 필요도 없이 JVM 자체에서 실행됩니다.
그래서 질문자가 언급한 '대통일'은 꼭 언어 차원에서 실현될 필요는 없고, 서로 호명할 수 있을 정도이면 충분합니다. 변하지 않는 것은 C와 Go뿐이다.
언어 창시자가 자신의 취향을 고집하느냐에 따라 달라진다. 그런 기회가 있더라도 php, js, java의 언어 스펙을 통일한 새로운 언어일 뿐입니다. . . 이렇게 생각하는 사람이 많다고 해서 세상을 지배하려는 사람도 많고, 그 결과 언어도 점점 더 많아진다. 통일 여부는 언어적 특성이 아닌 지원의 강도에 달려 있습니다. 미래를 상상하는 것이 스스로 만드는 것보다 낫습니다. 그렇다, 기계어는 통일되어야 한다! 때리지 마세요. . . 그러면 내 큰 PHP는 Armstrong의 Spin Armstrong Hammer。◕‿◕。로 바뀔 수 없습니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.