Vấn đề với javascript không phải là ngôn ngữ - đó là một ngôn ngữ nguyên mẫu và năng động hoàn toàn tốt. Nếu bạn đến từ nền tảng OO, có một chút khó khăn trong học tập, nhưng đó không phải là lỗi của ngôn ngữ.
Hầu hết mọi người đều cho rằng Javascript giống như Java vì nó có cú pháp tương tự và tên tương tự, nhưng thực ra nó giống với lisp hơn rất nhiều. Nó thực sự khá phù hợp với thao tác DOM.
Vấn đề thực sự là nó được trình duyệt biên dịch và điều đó có nghĩa là nó hoạt động theo một cách rất khác tùy thuộc vào máy khách.
Không chỉ DOM thực tế khác nhau tùy thuộc vào trình duyệt, mà còn có sự khác biệt lớn về hiệu suất và bố cục.
Chỉnh sửa làm rõ sau câu hỏi
Giả sử nhiều ngôn ngữ thông dịch được hỗ trợ - bạn vẫn gặp vấn đề tương tự. Các trình duyệt khác nhau vẫn sẽ có lỗi và có các DOM khác nhau.
Ngoài ra, bạn sẽ phải có một trình thông dịch được tích hợp trong trình duyệt hoặc bằng cách nào đó được cài đặt dưới dạng trình cắm (mà bạn có thể kiểm tra trước khi phục vụ trang) cho mỗi ngôn ngữ. Phải mất nhiều thời gian để có được Javascript nhất quán.
Bạn không thể sử dụng các ngôn ngữ được biên dịch theo cùng một cách - sau đó bạn đang giới thiệu một ngôn ngữ thực thi mà không thể dễ dàng xem xét kỹ lưỡng về những gì nó làm. Rất nhiều người dùng sẽ chọn không để nó chạy.
OK, vậy còn một số loại hộp cát cho mã được biên dịch thì sao? Âm thanh như Java Applet với tôi. Hoặc ActionScript trong Flash. Hoặc C # trong Silverlight.
Một số loại tiêu chuẩn IL thì sao? Điều đó có nhiều tiềm năng. Phát triển bằng bất kỳ ngôn ngữ nào bạn muốn và sau đó biên dịch nó sang IL, trình duyệt sau đó là JIT.
Ngoại trừ, Javascript là loại IL đã có - chỉ cần nhìn vào GWT . Nó cho phép bạn viết các chương trình bằng Java, nhưng phân phối chúng dưới dạng HTML và JS.
Chỉnh sửa sau đây làm rõ thêm trong câu hỏi
Javascript không, hay đúng hơn là không phải là ngôn ngữ duy nhất được các trình duyệt hỗ trợ: trở lại thời kỳ đen tối của Internet Explorer mà bạn có thể chọn giữa Javascript hoặc VBScript để chạy trong IE. Về mặt kỹ thuật IE thậm chí không chạy Javascript - nó chạy JScript (chủ yếu để tránh phải trả Sun cho từ java , Oracle vẫn sở hữu tên Javascript ).
Vấn đề là VBScript thuộc sở hữu của Microsoft, nhưng cũng không phải là nó rất tốt. Mặc dù Javascript đã thêm chức năng và nhận các công cụ gỡ lỗi tốc độ hàng đầu trong các trình duyệt khác (như FireBug) nhưng VBScript vẫn chỉ có IE và không thể gỡ lỗi (các công cụ dev trong IE4 / 5/6 không tồn tại). Trong khi đó VBScript cũng mở rộng để trở thành một công cụ kịch bản khá mạnh mẽ trong HĐH, nhưng không có tính năng nào trong số đó có sẵn trong trình duyệt (và khi chúng trở thành lỗ hổng bảo mật lớn).
Vẫn còn một số ứng dụng nội bộ của công ty sử dụng VBScript (và một số ứng dụng dựa trên các lỗ hổng bảo mật đó) và chúng vẫn đang chạy IE7 (chúng chỉ dừng IE6 vì cuối cùng MS đã tắt nó).
Đưa Javascript về trạng thái hiện tại là một cơn ác mộng và mất 20 năm. Nó vẫn không có sự hỗ trợ nhất quán, với các tính năng ngôn ngữ (được chỉ định vào năm 1999) vẫn còn thiếu ở một số trình duyệt và rất nhiều miếng chêm được yêu cầu.
Thêm một ngôn ngữ thay thế để diễn giải trong trình duyệt phải đối mặt với hai vấn đề chính:
Bắt tất cả các nhà cung cấp trình duyệt thực hiện tiêu chuẩn ngôn ngữ mới - thứ mà họ vẫn chưa quản lý được Javascript trong 20 năm.
Một ngôn ngữ thứ hai có khả năng làm loãng sự hỗ trợ mà bạn đã có, cho phép (ví dụ) IE có hỗ trợ Javascript tốc độ thứ hai nhưng VBScript tuyệt vời (một lần nữa). Tôi thực sự không muốn viết mã bằng các ngôn ngữ khác nhau cho các trình duyệt khác nhau.
Cần lưu ý rằng Javascript chưa 'hoàn thành' - nó vẫn đang phát triển để trở nên tốt hơn trong các trình duyệt mới. Các phiên bản mới nhất là năm tới của việc triển khai của các trình duyệt và họ đang làm việc trên kế tiếp.