"Là ưu thế của JavaScript là một tai nạn lịch sử hay cái gì khác?"
Cá nhân tôi cho rằng thành công của JS là vấn đề thiết kế cũng như nhiều người đã và sẽ tiếp tục không muốn thừa nhận nó và không chỉ là một tai nạn hay chỉ đơn thuần là do đó là đứa trẻ đầu tiên trên sân chơi.
Mặc dù được đặt tên để thu hút các nhà phát triển Java và được cú pháp như cú pháp dựa trên C của Java cũng để thu hút các nhà phát triển Java, Brendan Eich đã đưa ra một trong những quyết định tồi tệ nhất trong lịch sử của www, chủ yếu rút ra từ Đề án cho cơ chế ngôn ngữ thực tế nguồn cảm hứng, đó là điều mà các nhà phát triển Java dường như không thích lắm (điều mà tôi thấy rất thú vị).
JavaScript sử dụng tính kế thừa nguyên mẫu rất linh hoạt / dạng hạt cho OOP, nó có các bao đóng, các kiểu là 100% động, bản thân các hàm là hạng nhất cho phép chúng được truyền xung quanh như bất kỳ đối tượng hoặc kiểu dữ liệu nào khác và được sử dụng lại trong các ngữ cảnh khác nhau và thậm chí được áp dụng cho các đối tượng một cách nhanh chóng như thể chúng đã được tuyên bố là thành viên đối tượng thực tế ngay từ đầu. Nó thực sự được hét lên để được sử dụng cho các kiến trúc hướng sự kiện cần bình thường hóa một tấn rác độc quyền hoặc xử lý các vấn đề UI phi tuyến tính cao.
Vào cuối buổi bình minh của web, đây là ngôn ngữ duy nhất thực hiện nghiêm túc nhiệm vụ bình thường hóa các trình duyệt thông qua một cuộc chiến trình duyệt thực tế trong đó Netscape và IE đã cố gắng làm những việc khác nhau theo mục đích, sau hơn 10 năm trình duyệt Giả sử IE chỉ làm khác đi vì MS lười biếng và tự vướng vào một số thực tiễn chống cạnh tranh ngu ngốc chính đáng dẫn đến sự trì trệ của trình duyệt, và bây giờ là một thế giới nơi các trình duyệt cuối cùng bắt đầu đồng ý về cùng một thông số chung về HTML, CSS và API API với IE chỉ chậm hơn 2-3 năm so với những phát triển mới nhất thay vì 10 do Google và Mozilla tung ra các trình biên dịch JIT khiến cho số hiệu năng của IE trông rất thảm hại, cuối cùng MS đã xấu hổ trong việc hiện đại hóa các trình duyệt chết tiệt của chúng.IE9 là người đầu tiên thực sự nâng cấp nghiêm túc hỗ trợ API DOM lên các mức mà Netscape đã hỗ trợ từ năm 2000.
JS đã có sự cạnh tranh dưới dạng Applet Java và ActionScript cho Flash của Adobe. Đó là về nó trên mặt trận nghiêm túc. MS đã cố gắng đẩy VB nhưng thất bại thảm hại vì ... à ... VB. Ngoài ra, độc quyền. Thực tế đã có rất nhiều trang Flash hơn hầu hết mọi người nhận ra. Bạn không thể tìm thấy những điều ngớ ngẩn với công cụ tìm kiếm. Applet đã làm việc riêng của họ, và nó thật xấu xí. Thật xấu xí. JS là ngôn ngữ duy nhất thực sự giải quyết vấn đề hoạt động trong bối cảnh nhiều trình duyệt bởi những người không đồng ý về việc ai đang đặt thông số kỹ thuật mà họ phải phù hợp với.
Trong những năm gần đây, JS đã bùng nổ vào một miền ứng dụng rộng lớn hơn nhiều. Kết hợp với các công nghệ web khác, về cơ bản, nó sẽ vượt qua tất cả các giải pháp khác trên mặt trận di động vì công nghệ web thực sự là lựa chọn thực tế duy nhất ngay bây giờ nếu bạn thực sự muốn viết một ứng dụng và ứng dụng này hoạt động trên mọi thứ.
Vì vậy, không, và vâng, tôi là một fan hâm mộ lớn, nhưng tôi không nghĩ rằng nó đã chặn tất cả các ứng cử viên khác ở phía khách hàng một cách tình cờ, ngoài việc nó trở nên phổ biến bùng nổ bên ngoài trình duyệt có thể được coi là một tai nạn. Trước JS, không có nhiều ngôn ngữ giống như Scheme ngoài kia chủ yếu mang tính học thuật. Điều đó mang lại cho JS một số lợi thế mạnh mẽ và các nhu cầu độc đáo của phía khách hàng khiến cho những lợi thế đó có thể dần trở nên rõ ràng.