오늘날 브라우저에서 JavaScript와 일부 VBScript 만 지원하는 이유는 무엇입니까? JavaScript가 훌륭하다는 것을 알고 있지만 다른 프로그래밍 언어를 사용하여 다른 개발 스타일을 홍보 할 수있는 옵션이 없습니까?
오늘날 브라우저에서 JavaScript와 일부 VBScript 만 지원하는 이유는 무엇입니까? JavaScript가 훌륭하다는 것을 알고 있지만 다른 프로그래밍 언어를 사용하여 다른 개발 스타일을 홍보 할 수있는 옵션이 없습니까?
답변:
여러 언어에 대한 지원을 추가 할 필요가 없습니다. 해결책은 언어 구현자가 사용할 수있는 일반 바이트 코드를 표준화하는 것입니다. 그러나 현재 이에 대한 계획은 없습니다 (제안되었습니다).
Javascript를 기반으로 언어도 구현할 수 있습니다. Javascript는 다른 언어를 그 위에 구현할 수있을만큼 충분합니다. 그리고 이것에 대한 많은 예가 이미 있습니다.
<script type="text/cpp" src="test.cpp"></script>
.
JavaScript는 사실상의 표준이며 1996 년 이래로 존재 해 왔습니다. 경쟁이 없기 때문에 표준이되는 것은 정확히 공평하지는 않지만 다른 언어가 포함되지 않은 이유 에 대해 많은 불만을 듣지 못했습니다.
다른 "표준"언어를 추가하면 모든 종류의 재미있는 작은 문제가 발생합니다.
자바 스크립트 만 지원하는 브라우저 간의 불일치를 생각하십시오. 이제 더 많은 언어가 있다면 어떻게 될지 생각해보십시오.
브라우저는 표준화되어야하므로 개발 한 것이 모든 브라우저에서 모든 곳에서 작동합니다.
여러 언어가 사용되는 경우 언어가 모두 매우 유사하게 작동해야합니다. 웹 개발자이고 일부 위치에서 지원되거나 지원되지 않을 수있는 언어를 선택할 수있는 경우 추가 두통이 발생합니다.
자바 스크립트는 매우 유연한 언어이며, 필수적이며, 기능적이며, OOP (프로토 타입을 사용한 후)가 될 수 있으며 해석됩니다. 이제 Chrome과 같은 괜찮은 엔진을 사용하면 좋은 일을 할 수 있습니다. 여분의 언어는 여기서 다시 설정하고 VBScript, IE 만 살펴볼 수 있습니다. 따라서 작성된 언어는 특정 브라우저와 플랫폼, 악몽에 묶여 있습니다.
벤더는이를 브라우저에 구축하는 대신 자바, 플래시, 실버 라이트 등과 같은 복잡한 브라우저 플러그인을 구축하는 것을 좋아합니다. 이는 플랫폼 간 일관성을 보장합니다.
그 이유 중 하나는 다른 브라우저 공급 업체가 표준 Javascript 구현에 동의하는 것이 사실상 불가능하고 Javascript는 적어도 웹 언어 관점에서 영원히 존재했기 때문입니다. 따라서 대부분의 사람들은 다른 클라이언트 측 언어를 생태계에 도입하고 모든 공급 업체가이를 지원하도록하는 것은 사실상 불가능하며 잠재적으로이를 가능하게하는 대부분의 사람들은 이미 Javascript 표준화 문제에 관여하고 있다고 생각합니다. 그들의 시간의 사용.
여기에는 여러 언어를 지원하면 웹 브라우저 빌더가 모든 언어를 준수하는지 확인하는 것이 매우 지루하다고 주장하는 몇 가지 응답이 있습니다. 나에게 이것은 잘못된 것 같습니다.
예를 들어 Java는 매우 잘 정의 된 표준입니다. 기본적으로 브라우저 DOM을 Java API로 노출하고 웹 브라우저 내에서 JVM (Java Virtual Machine)을 실행하기 만하면됩니다. 스크립팅 코드가 컴파일 및 서명 된 JAR 파일의 형태로 또는 JavaScript 소스 코드로 제공되도록 지정할 수 있습니다. 브라우저에서 JavaScript가 발견되면 (현재와 같이) 전용 인터프리터 또는 JVM 상단의 Rhino 를 통해 실행할 수 있습니다 . jar 파일이 발견되면 새 클래스 로더 및 보안 샌드 박스를 작성하고 Java 바이트 코드를 메모리에로드하여 실행합니다. 이는 기존 웹 페이지와 완전히 역 호환되며 브라우저에서 단일 스트로크로 JVM에서 실행되는 수십 개의 언어를 지원할 수 있습니다.
다른 장점 :
JavaScript가 웹 표준 언어로 더욱 발전 할 것이라고 믿습니다. 서버 측 JavaScript가 증가하고 있습니다. 서버에서이 강력한 언어를 구현 한 예는 다음과 같습니다.
POW 웹 서버 SJS -Firefox 확장 또는 XULRunner 응용 프로그램으로 실행되는 POW 웹 서버의 서버 측 JavaScript입니다. SJS는 데이터베이스에 연결하고 클라이언트 측 컨텐츠를 생성 할 수 있다는 점에서 Apache의 PHP와 비슷한 역할을합니다.
NodeJS- 이벤트 기반 모델을 사용하는 서버 측 JavaScript입니다. Google의 V8 JavaScript 엔진을 사용하여 빌드되었습니다 . NodeJS는 확장 가능한 네트워크 프로그램을 빌드하기위한 도구로 알려졌습니다. "Hello World"웹 서버는 단 6 줄로 작성 될 수 있습니다!
Jaxer- 모든 스크립트 블록을 runat="server"
서버 측 JavaScript로 해석하는 JavaScript 서버입니다 . 전체 웹 응용 프로그램은 JavaScript로 작성할 수 있습니다.
Rhino-Java 용 JavaScript -Mozilla 는 Java 에서 실행되는이 서버 측 JavaScript 구현을 작성했습니다. 본질적으로 Java 용 Querces PHP , Jython, JRuby 및 JVM에서 실행되는 다른 많은 다른 언어 추상화와 유사한 개념 입니다. Rhino는 일반적으로 JavaScript를 Java에 내장하여 최종 사용자에게 스크립팅 도구를 제공하는 데 사용되지만 비즈니스 로직을 다른 언어로 다시 작성하지 않고도 클라이언트 측 코드를 서버로 이동하는 데 사용될 수도 있습니다!
JQuery Claypool- 서버에서 JQuery의 강력한 기능을 사용하는 서버 측 JavaScript 프레임 워크입니다. 아주 멋지다! 브라우저의 EnvJs 서버 측 JavaScript 구현을 사용하여 개발되었습니다.
EnvJs -Rhino 위에 구축 된 헤드리스 브라우저입니다.
이러한 많은 구현 및 프레임 워크가 보여주는 것은 커뮤니티 리더가 이미 JavaScript를 서버로 옮기기 시작한 JavaScript가 웹 개발에있어 강력한 힘이되고 있다는 것입니다. JavaScript는 매우 강력한 기능적 프로그래밍 언어이며 시간이 지남에 따라 계속 발전 할 것입니다.
요약하자면,이 단일 브라우저 언어를 서버로 이식하고 그 차이를보다 통일 된 방식으로 연결할 수있을 때 다른 언어를 브라우저로 이식하는 것은 모순되는 것처럼 보입니다.
사람들은 두 가지 방식으로 내장 다양성의 부족을 해결했습니다. 플래시 또는 자바 애플릿과 같은 플러그인 사용과 jquery 또는 Google 웹 툴킷과 같은 자바 스크립트를 "기계 코드"로 사용하는 레이어를 만드는 것입니다. 새로운 개발 스타일이 충분히 대중적이라면 사람들은 그것을 도입 할 방법을 찾을 것입니다.
자바 스크립트로 .net 런타임을 만들면 인기가 높아지고 특정 서클은 인터넷에서 귀하의 이름을 영원히 저주 할 것입니다.