Tại sao ngày nay chỉ có hỗ trợ cho JavaScript và một số VBScript trong trình duyệt? Tôi biết JavaScript là tốt và tất cả, nhưng sẽ không có tùy chọn sử dụng ngôn ngữ lập trình khác giúp thúc đẩy các phong cách phát triển khác nhau?
Tại sao ngày nay chỉ có hỗ trợ cho JavaScript và một số VBScript trong trình duyệt? Tôi biết JavaScript là tốt và tất cả, nhưng sẽ không có tùy chọn sử dụng ngôn ngữ lập trình khác giúp thúc đẩy các phong cách phát triển khác nhau?
Câu trả lời:
Không cần thêm suport cho nhiều ngôn ngữ, một giải pháp sẽ là chuẩn hóa một mã byte chung có thể được sử dụng bởi những người thực hiện ngôn ngữ. Nhưng hiện tại không có kế hoạch cho việc này (nó đã được đề xuất).
Các ngôn ngữ cũng có thể được triển khai trên Javascript. Javascript đủ tốt để cho phép các ngôn ngữ khác được triển khai trên đầu trang. Và đã có nhiều ví dụ về điều này rồi.
<script type="text/cpp" src="test.cpp"></script>
.
JavaScript là tiêu chuẩn thực tế và đã có từ năm 1996. Trở thành một tiêu chuẩn đơn giản vì không có sự cạnh tranh nào là không công bằng, nhưng tôi đã không nghe thấy nhiều phàn nàn về lý do tại sao không có ngôn ngữ khác.
Thêm một ngôn ngữ "tiêu chuẩn" khác thúc đẩy tất cả các loại vấn đề nhỏ thú vị.
Hãy nghĩ về sự không nhất quán giữa các trình duyệt để họ hỗ trợ javascript. Bây giờ hãy nghĩ về nó sẽ như thế nào nếu có nhiều ngôn ngữ hơn.
Các trình duyệt phải được chuẩn hóa, để những gì bạn phát triển hoạt động ở mọi nơi, trên tất cả các trình duyệt.
Nếu bạn có nhiều ngôn ngữ, thì bạn phải đảm bảo rằng tất cả chúng đều hoạt động rất giống nhau. Nếu bạn là nhà phát triển web và bạn có nhiều lựa chọn ngôn ngữ, có thể hoặc không được hỗ trợ ở một số địa điểm, thì đó là một vấn đề đau đầu.
Javascript là một ngôn ngữ rất linh hoạt, nó là bắt buộc, nó là chức năng, nó có thể là OOP (sau một thời trang với các nguyên mẫu), và nó được giải thích. Bây giờ với các công cụ tốt như trong Chrome, nó có khả năng hợp lý để làm một số thứ tốt. Các ngôn ngữ bổ sung sẽ chỉ đặt mọi thứ trở lại đây, chỉ nhìn vào VBScript, IE và do đó, bất cứ điều gì được viết trong đó đều bị ràng buộc với một trình duyệt và nền tảng cụ thể, cơn ác mộng.
Thay vì xây dựng các trình duyệt này thành các trình duyệt, các nhà cung cấp muốn xây dựng các trình cắm trình duyệt cồng kềnh - Java, Flash, Silverlight, v.v ... Điều này đảm bảo tính nhất quán đa nền tảng.
Một trong những lý do là các nhà cung cấp trình duyệt khác nhau thậm chí không thể đồng ý về việc triển khai Javascript tiêu chuẩn và Javascript đã tồn tại mãi mãi, ít nhất là từ góc độ ngôn ngữ web. Vì vậy, hầu hết mọi người nghĩ rằng việc đưa ngôn ngữ phía khách hàng khác vào hệ sinh thái và nhờ tất cả các nhà cung cấp hỗ trợ là điều thực tế là không thể và hầu hết những người có khả năng khiến nó xảy ra đều liên quan đến các vấn đề tiêu chuẩn hóa Javascript mà tôi nghĩ là tốt hơn nhiều sử dụng thời gian của họ.
Có một số câu trả lời ở đây tuyên bố rằng việc hỗ trợ nhiều ngôn ngữ sẽ khiến cho các nhà xây dựng trình duyệt web rất khó chịu để đảm bảo chúng tuân thủ tất cả các ngôn ngữ. Đối với tôi điều này có vẻ không chính xác.
Java, ví dụ là một tiêu chuẩn được xác định rất tốt. Về cơ bản, tất cả những gì bạn cần làm là hiển thị DOM trình duyệt dưới dạng API Java và chạy Máy ảo Java (JVM) bên trong trình duyệt web của bạn. Bạn có thể chỉ định rằng mã tập lệnh sẽ phải được phân phối dưới dạng các tệp JAR được biên dịch và ký, hoặc dưới dạng mã nguồn JavaScript. Nếu trình duyệt gặp JavaScript, nó có thể chạy nó thông qua một trình thông dịch chuyên dụng (như hiện nay) hoặc thông qua Rhino trên JVM. Nếu nó gặp các tệp jar, nó sẽ tạo một trình nạp lớp và hộp cát bảo mật mới, tải mã byte java vào bộ nhớ và thực thi nó. Điều này sẽ hoàn toàn tương thích ngược với các trang web hiện có và sẽ cho phép trình duyệt, với một nét duy nhất, hỗ trợ hàng tá ngôn ngữ chạy trên JVM.
Ưu điểm khác:
Tôi tin rằng JavaScript sẽ đạt được nhiều hơn nữa như là ngôn ngữ tiêu chuẩn cho Web. Chúng ta đang chứng kiến sự gia tăng của JavaScript phía máy chủ. Dưới đây là một số ví dụ về việc triển khai ngôn ngữ mạnh mẽ này trên máy chủ:
POW Web Server SJS - JavaScript phía máy chủ cho POW Web Server, chạy dưới dạng tiện ích mở rộng Firefox hoặc dưới dạng ứng dụng XULRunner. SJS đóng vai trò tương tự như PHP trong Apache ở chỗ nó có thể kết nối với cơ sở dữ liệu và tạo nội dung phía máy khách.
NodeJS - JavaScript phía máy chủ sử dụng mô hình dựa trên sự kiện. Nó được xây dựng bằng Công cụ JavaScript V8 của Google . NodeJS được quảng cáo là một công cụ để xây dựng các chương trình mạng có thể mở rộng. Một máy chủ Web "Hello World" có thể được viết chỉ trong 6 dòng ngắn!
Jaxer - Một máy chủ JavaScript diễn giải tất cả các khối tập lệnh với runat="server"
dạng JavaScript phía máy chủ. Toàn bộ ứng dụng Web có thể được viết bằng JavaScript.
Rhino - JavaScript cho Java - Mozilla đã tạo triển khai JavaScript phía máy chủ này chạy trên Java. Về cơ bản, đây là một khái niệm tương tự như Querces PHP cho Java , Jython, JRuby và nhiều khái niệm trừu tượng khác của các ngôn ngữ khác chạy trên JVM. Rhino thường được sử dụng để nhúng JavaScript vào Java để cung cấp các công cụ kịch bản cho người dùng cuối, nhưng nó cũng có thể được sử dụng để di chuyển mã phía máy khách sang máy chủ mà không phải viết lại logic nghiệp vụ bằng ngôn ngữ khác!
JQuery Claypool - Khung JavaScript phía máy chủ sử dụng sức mạnh của JQuery trên máy chủ. Rất tuyệt! Nó được phát triển bằng cách sử dụng trình duyệt JavaScript phía EnvJs Server của trình duyệt.
EnvJs - Một trình duyệt không đầu được xây dựng trên đỉnh Rhino.
Điều mà nhiều triển khai và khung công tác này chứng minh là JavaScript đang trở thành một thế lực mạnh mẽ trong phát triển Web đến mức các nhà lãnh đạo cộng đồng đã bắt đầu chuyển JavaScript sang máy chủ. JavaScript là một ngôn ngữ lập trình chức năng cực kỳ mạnh mẽ và khi thời gian trôi qua tôi cảm thấy chúng ta sẽ thấy nó phát triển.
Tóm lại, có vẻ như mâu thuẫn khi chuyển các ngôn ngữ khác sang trình duyệt khi thay vào đó chúng ta có thể chuyển ngôn ngữ trình duyệt đơn này sang máy chủ và thu hẹp khoảng cách đó theo cách thống nhất hơn.
Có một số ví dụ về các công cụ sẽ biên dịch các ngôn ngữ khác thành javascript, bao gồm Haskel, Lisp và Python (Có lẽ là các công cụ khác). Vì vậy, nếu bạn muốn làm việc với một trong những ngôn ngữ đó, bạn có thể làm như vậy.
Và tôi nghĩ một trong những giáo sư của tôi từ trường đại học đã viết một triển khai chương trình trong Javascript. Vì vậy, nếu bạn thích chương trình bạn cũng có thể làm điều đó.
Mọi người đã làm việc xung quanh việc thiếu sự đa dạng tích hợp theo hai cách: sử dụng các plugin như flash hoặc java applet và xây dựng các lớp sử dụng javascript làm "mã máy" của họ, như bộ công cụ web jquery hoặc google. Nếu có một phong cách phát triển mới đủ phổ biến, mọi người sẽ tìm cách đưa nó vào.
Chỉ cần lưu ý nếu bạn tạo một thời gian chạy .net trong javascript và nó trở nên phổ biến, một số vòng tròn nhất định sẽ nguyền rủa tên bạn trên internet mãi mãi.