Javascript có phải là ngôn ngữ lập trình thực sự không?

Thế giới được chia thành các ngôn ngữ lập trình "thực" như C và Java, và sau đó là các ngôn ngữ "viết kịch bản" như Ruby và PERL. Ngôn ngữ lập trình thực nhanh hơn khoảng 100 lần so với ngôn ngữ kịch bản, với các tính năng được thiết kế cho các dự án lập trình "quy mô lớn".

Trước đây, JavaScript chỉ là một ngôn ngữ kịch bản khác. Như tên cho thấy, nó rất giống Java, nhưng được thiết kế cho các tập lệnh quy mô nhỏ hơn là lập trình quy mô lớn. ("rất nhiều" ý tôi đơn giản là nó chia sẻ cú pháp họ C và có thể được gọi như nhau là "C-Script", "C++Script", "C#Script", v.v. Nó thực sự là một tên cổ điển. ban đầu nó được đặt tên là LiveScript, nhưng khi Java ra mắt, họ đã đổi tên nó để tận dụng sự công nhận tên. )

Nhưng JavaScript đã phát triển. Ngày nay, JavaScript có thể được sử dụng để viết các ứng dụng phía máy chủ mạnh mẽ, quy mô lớn với hiệu suất ngang bằng với các ngôn ngữ lập trình "thực".

Điều này có thể được hiển thị trong biểu đồ điểm chuẩn sau đây so sánh hiệu suất của một số ngôn ngữ phổ biến song song. như bạn có thể thấy, JavaScript luôn nhanh hơn "Lua", từ lâu đã được biết đến là ngôn ngữ kịch bản lệnh nhanh nhất và thường nhanh bằng ngôn ngữ C#-Mono. Nó vẫn chậm hơn Java và C, nhưng không nhiều. Biểu đồ này từ http. // loạt đá luân lưu. alioth. debian. org/u64q/ngôn ngữ lập trình nào nhanh nhất. php.


Javascript có phải là ngôn ngữ lập trình thực sự không?


Các nhà phê bình sẽ chỉ ra rằng JavaScript thiếu nhiều tính năng như lập trình "hướng đối tượng". Điều đó không thực sự đúng. Chỉ là lập trình viên phải xây dựng các đối tượng và lớp theo cách thủ công thay vì có một cú pháp rõ ràng để thực hiện điều đó cho họ.

Điều này dẫn đến các tính năng "ngôn ngữ trên ngôn ngữ", khi mọi người cố gắng chuẩn hóa cách lộn xộn mà JavaScript tạo mọi thứ theo cách thủ công. Ví dụ, "yêu cầu. js" đang trở thành cách tiêu chuẩn để thực hiện tính mô đun (tương tự như câu lệnh "bao gồm" hoặc "nhập" từ các ngôn ngữ khác). Đây là một phần của thông số kỹ thuật "CommonJS" và được sử dụng trong các dự án phổ biến như "NodeJS". Thành thật mà nói, hành trình "ngôn ngữ trên ngôn ngữ" này không tệ hơn so với các ngôn ngữ khác (ví dụ: như hành trình STL trong C ++).

Động lực đằng sau sự trưởng thành của JavaScript là công cụ JavaScript "V8" của Google. Khi Google phát hành trình duyệt web "Chrome" để cạnh tranh với Internet Explorer và Firefox, họ đã phát hành trình thông dịch JavaScript dưới dạng một thành phần riêng biệt. Điều này cho phép JavaScript được sử dụng trên dòng lệnh và cho các dịch vụ giống như bất kỳ ngôn ngữ kịch bản nào khác.

Ngoài ra, động cơ V8 tập trung vào tốc độ. Nó đã giới thiệu "JIT" (biên dịch đúng lúc thành mã gốc). Nhờ V8, các phiên bản đầu tiên của Chome có lợi thế cạnh tranh lớn so với các trình duyệt cạnh tranh trong việc chạy mã JavaScript. Các nhà cung cấp khác đã bắt kịp và đôi khi vượt qua Chrome về điểm chuẩn ngày hôm nay. Chính sự cạnh tranh liên tục này đang làm cho JavaScript ngày càng nhanh hơn, tiến gần đến tốc độ của một ngôn ngữ thực.

Trong một số trường hợp, JavaScript có thể còn nhanh hơn một ngôn ngữ thực. Các điểm chuẩn trên là các thuật toán đơn giản không kiểm tra độ mạnh của JavaScript. DOM trong trình duyệt là một cấu trúc dữ liệu lộn xộn. Do đó, tối ưu hóa các cấu trúc dữ liệu lộn xộn là một tính năng chính của JavaScript. Kết quả cuối cùng là nếu bạn đang viết một ứng dụng có cấu trúc dữ liệu lộn xộn tương tự, nó có thể chạy nhanh hơn trên một công cụ JavaScript so với ngôn ngữ lập trình "thực".

Động cơ V8 đã tạo ra các dự án khác, nổi tiếng nhất là dự án "NodeJS". NodeJS là một máy chủ web không đồng bộ để xây dựng các ứng dụng web bằng JavaScript. Bản chất hướng sự kiện không đồng bộ có nghĩa là nó có khả năng mở rộng hơn nhiều so với Apache. NodeJS đã tạo ra toàn bộ hệ sinh thái API và addon (được quản lý bằng "npm", trình quản lý gói NodeJS).

Hoàn toàn tách biệt với trình duyệt và máy chủ, còn có phương ngữ "ActionScript" của JavaScript, một phần của Adobe AIR, đã trở thành một giải pháp thay thế phổ biến cho Java để viết các ứng dụng đa nền tảng.

JavaScript vẫn còn thiếu một số thứ, chẳng hạn như IDE tích hợp với trình gỡ lỗi cấp nguồn, hỗ trợ đa lõi, sợi/coroutine trọng lượng nhẹ và một số tính năng khác. Nhưng mặt khác, những ngôn ngữ này thường không hoạt động tốt đối với các ngôn ngữ "thực" và chúng đang cải thiện nhanh chóng trong JavaScript. Ví dụ: một gói phổ biến cho NodeJS bao gồm trình gỡ lỗi cấp nguồn - chạy qua trình duyệt web, một cách tự nhiên.

Việc JavaScript đang trở thành một ngôn ngữ "thực sự" có nghĩa là một điều nữa. nó sẽ là một công cụ giảng dạy tuyệt vời. Các trường đại học đấu tranh với việc tìm ngôn ngữ tốt nhất để giảng dạy các khái niệm khoa học máy tính. Các trường đại học thường chọn LISP, C hoặc Java. Tôi đề xuất JavaScript là lựa chọn tốt hơn. Nó có đủ các tính năng "chức năng" và "hướng đối tượng" để dạy các khái niệm này. Nhưng lý do lớn nhất là tất cả học sinh dù sao cũng phải học nó, vì nó là một phần của trình duyệt (và những gì người đam mê khoa học máy tính không thực hiện "Xem nguồn" trên các trang web?).

Vì vậy, tóm lại, trong cuộc cạnh tranh giữa các ngôn ngữ lập trình "thực sự" để tìm ra ngôn ngữ tốt nhất cho dự án tiếp theo của bạn, hãy xem xét JavaScript như một giải pháp thay thế.

Tại sao JavaScript không phải là ngôn ngữ lập trình thực sự?

JavaScript không được phát triển tại Sun Microsystems, ngôi nhà của Java. JavaScript được phát triển tại Netscape. Ban đầu nó được gọi là LiveScript, nhưng cái tên đó không đủ khó hiểu. Hậu tố -Script gợi ý rằng đó không phải là ngôn ngữ lập trình thực sự, rằng ngôn ngữ kịch bản không phải là ngôn ngữ lập trình .

Sự thật về JavaScript là gì?

Cùng với HTML và CSS, JavaScript là một trong ba thành phần chính của www (World Wide Web). Nó cho phép các trang web tương tác và do đó là một phần thiết yếu của các ứng dụng web. Phần lớn các trang web sử dụng nó và tất cả các trình duyệt web chính đều có một công cụ JavaScript chuyên dụng để thực thi nó. JavaScript là luồng đơn .

JavaScript khác với Java Đúng hay sai?

Java tạo ứng dụng chạy trong máy ảo hoặc trình duyệt trong khi mã JavaScript chỉ chạy trên trình duyệt . Mã Java cần được biên dịch trong khi mã JavaScript đều ở dạng văn bản. Họ yêu cầu các plug-in khác nhau.

HTML có phải là ngôn ngữ lập trình thực sự không?

HTML không phải là ngôn ngữ lập trình . Đó là một ngôn ngữ đánh dấu. Trên thực tế, đó là tên của công nghệ. Ngôn ngữ đánh dấu siêu văn bản.