웹 사이트를위한 다른 클라이언트 측 스크립팅 언어가없는 이유는 무엇입니까? [닫은] 지원하는 이유는 무엇입니까?

오늘날 브라우저에서 JavaScript와 일부 VBScript 만 지원하는 이유는 무엇입니까? JavaScript가 훌륭하다는 것을 알고 있지만 다른 프로그래밍 언어를 사용하여 다른 개발 스타일을 홍보 할 수있는 옵션이 없습니까?



답변

여러 언어에 대한 지원을 추가 할 필요가 없습니다. 해결책은 언어 구현자가 사용할 수있는 일반 바이트 코드를 표준화하는 것입니다. 그러나 현재 이에 대한 계획은 없습니다 (제안되었습니다).

Javascript를 기반으로 언어도 구현할 수 있습니다. Javascript는 다른 언어를 그 위에 구현할 수있을만큼 충분합니다. 그리고 이것에 대한 많은 예가 이미 있습니다.


답변

JavaScript는 사실상의 표준이며 1996 년 이래로 존재 해 왔습니다. 경쟁이 없기 때문에 표준이되는 것은 정확히 공평하지는 않지만 다른 언어가 포함되지 않은 이유 에 대해 많은 불만을 듣지 못했습니다.

다른 “표준”언어를 추가하면 모든 종류의 재미있는 작은 문제가 발생합니다.

  • 다른 언어와 어떻게 작동합니까?
  • DOM이 공유됩니까?
  • 두 언어로 작성된 스크립트가 여전히 작동합니까?
  • 라이브러리를 둘 다로 포팅

답변

자바 스크립트 만 지원하는 브라우저 간의 불일치를 생각하십시오. 이제 더 많은 언어가 있다면 어떻게 될지 생각해보십시오.


답변

브라우저는 표준화되어야하므로 개발 한 것이 모든 브라우저에서 모든 곳에서 작동합니다.

여러 언어가 사용되는 경우 언어가 모두 매우 유사하게 작동해야합니다. 웹 개발자이고 일부 위치에서 지원되거나 지원되지 않을 수있는 언어를 선택할 수있는 경우 추가 두통이 발생합니다.

자바 스크립트는 매우 유연한 언어이며, 필수적이며, 기능적이며, OOP (프로토 타입을 사용한 후)가 될 수 있으며 해석됩니다. 이제 Chrome과 같은 괜찮은 엔진을 사용하면 좋은 일을 할 수 있습니다. 여분의 언어는 여기서 다시 설정하고 VBScript, IE 만 살펴볼 수 있습니다. 따라서 작성된 언어는 특정 브라우저와 플랫폼, 악몽에 묶여 있습니다.


답변

벤더는이를 브라우저에 구축하는 대신 자바, 플래시, 실버 라이트 등과 같은 복잡한 브라우저 플러그인을 구축하는 것을 좋아합니다. 이는 플랫폼 간 일관성을 보장합니다.


답변

그 이유 중 하나는 다른 브라우저 공급 업체가 표준 Javascript 구현에 동의하는 것이 사실상 불가능하고 Javascript는 적어도 웹 언어 관점에서 영원히 존재했기 때문입니다. 따라서 대부분의 사람들은 다른 클라이언트 측 언어를 생태계에 도입하고 모든 공급 업체가이를 지원하도록하는 것은 사실상 불가능하며 잠재적으로이를 가능하게하는 대부분의 사람들은 이미 Javascript 표준화 문제에 관여하고 있다고 생각합니다. 그들의 시간의 사용.


답변

여기에는 여러 언어를 지원하면 웹 브라우저 빌더가 모든 언어를 준수하는지 확인하는 것이 매우 지루하다고 주장하는 몇 가지 응답이 있습니다. 나에게 이것은 잘못된 것 같습니다.

예를 들어 Java는 매우 잘 정의 된 표준입니다. 기본적으로 브라우저 DOM을 Java API로 노출하고 웹 브라우저 내에서 JVM (Java Virtual Machine)을 실행하기 만하면됩니다. 스크립팅 코드가 컴파일 및 서명 된 JAR 파일의 형태로 또는 JavaScript 소스 코드로 제공되도록 지정할 수 있습니다. 브라우저에서 JavaScript가 발견되면 (현재와 같이) 전용 인터프리터 또는 JVM 상단의 Rhino 를 통해 실행할 수 있습니다 . jar 파일이 발견되면 새 클래스 로더 및 보안 샌드 박스를 작성하고 Java 바이트 코드를 메모리에로드하여 실행합니다. 이는 기존 웹 페이지와 완전히 역 호환되며 브라우저에서 단일 스트로크로 JVM에서 실행되는 수십 개의 언어를 지원할 수 있습니다.

다른 장점 :

  1. JVM은 10 년간의 성능 향상의 이점을 얻었습니다. 이제는 매우 빠르고 안정적이며 성숙되었습니다. 해석 된 자바 스크립트보다 성능이 크게 향상 될 것이라고 확신합니다.
  2. 클라이언트 측 앱이 점점 더 복잡 해짐에 따라 Java 및 Scala와 같은 구조화 된 유형 언어의 이점이 증가합니다.
  3. 진정한 멀티 스레딩 및 멀티 코어 컴퓨팅에 최적화 된 컬렉션 라이브러리 인 Scala를 통해 액세스 할 수 있습니다.
  4. 브라우저 내에서 수천 개의 오픈 소스 Java 라이브러리를 사용할 수 있습니다.
  5. 브라우저는 openGL과 같은 라이브러리를 통해 고급 그래픽 및 그래픽 카드 컴퓨팅 기능에 액세스 할 수 있습니다.
  6. 클라이언트와 서버 측에서 Java를 실행중인 경우, 매우 압축 된 이진 객체 그래프 직렬화 = 빠른 웹 페이지로드 및 수행을 통해 클라이언트-서버 통신의 이점을 얻을 수 있습니다.