Javascript đã phát triển vượt xa những gì nó được thiết kế ban đầu để làm chưa?


10

Tôi đã nói chuyện với một người bạn về mục đích của Javascript, khi nào và nên sử dụng nó như thế nào, v.v. Anh ấy đã trích dẫn rằng:

JavaScript được thiết kế để thêm tính tương tác vào các trang HTML

[...]

JavaScript cung cấp cho các nhà thiết kế HTML một công cụ lập trình

  • Các tác giả HTML thường không phải là lập trình viên, nhưng JavaScript là ngôn ngữ kịch bản với cú pháp rất đơn giản! Hầu như ai cũng có thể đặt "đoạn mã" nhỏ vào trang HTML của mình, JavaScript có thể phản ứng với các sự kiện
  • Một JavaScript có thể được thiết lập để thực thi khi có điều gì đó xảy ra, như khi trang tải xong hoặc khi người dùng nhấp vào phần tử HTML, JavaScript có thể đọc và viết các phần tử HTML
  • Một JavaScript có thể đọc và thay đổi nội dung của một phần tử HTML JavaScript có thể được sử dụng để xác thực dữ liệu
  • Một JavaScript có thể được sử dụng để xác thực dữ liệu biểu mẫu trước khi nó được gửi đến máy chủ. Điều này cứu máy chủ khỏi xử lý thêm
  • JavaScript có thể được sử dụng để phát hiện trình duyệt của khách truy cập - Có thể sử dụng JavaScript để phát hiện trình duyệt của khách truy cập và - tùy thuộc vào trình duyệt - tải một trang khác được thiết kế riêng cho trình duyệt đó.
  • JavaScript có thể được sử dụng để tạo cookie - Có thể sử dụng JavaScript để lưu trữ và truy xuất thông tin trên máy tính của khách truy cập.

Tuy nhiên, có vẻ như Javascript đã quen với việc làm nhiều hơn những ngày này. Bạn tôi cũng ủng hộ việc sử dụng chức năng OOP của Javascript, tuyên bố rằng "bạn không nên xử lý dữ liệu, chỉ đơn thuần là xác nhận." Javascript có thực sự giới hạn trong việc xác thực dữ liệu và tạo đồ họa hào nhoáng trên một trang web không?

Anh ấy tiếp tục tuyên bố "bạn không nên cố gắng truy cập cơ sở dữ liệu thông qua javascript" và cũng nói "nói chung bạn không muốn thực hiện công việc nặng nề trong javascript". Tôi không thể nói rằng tôi đồng ý với ý kiến ​​của anh ấy, nhưng tôi muốn có thêm một số ý kiến ​​về việc này.

Vì vậy, câu hỏi của tôi: Javascript đã phát triển từ định nghĩa ở trên thành một thứ gì đó mạnh mẽ hơn, cách chúng ta sử dụng nó đã thay đổi hay tôi chỉ đơn giản là sai? Mặc dù tôi nhận ra đây là một câu hỏi chủ quan, tôi không thể tìm thấy thêm thông tin nào về nó, vì vậy một vài liên kết sẽ tốt, nếu không có gì khác. Tôi không tìm kiếm một cuộc tranh luận, chỉ là một câu trả lời.


Tôi cũng đã tự hỏi "ai" đang thúc đẩy nó làm điều đó và tại sao?
NoChance

1
Tôi sẽ đặt tài liệu nguồn cho những gì bạn của bạn đã hiểu về JavaScript vào khoảng năm 1998.
Erik Reppen

Câu trả lời:


21

Những người cho rằng JavaScript không phải là ngôn ngữ lập trình là những người có quan điểm về JavaScript mà bạn không nên tôn trọng.

JavaScript là một ngôn ngữ được phát triển lấy cảm hứng hữu cơ từ ngữ nghĩa của Lược đồ và cú pháp của Java. Mục đích ban đầu của nó không phải là chung chung nhưng giờ nó đã phát triển thành như vậy.

JavaScript là một ngôn ngữ phù hợp để thực hiện bất kỳ nhiệm vụ nào nếu nó phù hợp với nó. Hãy xem các ví dụ như node.js nơi JavaScript có quyền truy cập vào môi trường máy chủ chứa chức năng IO cho phép nó được sử dụng cho lập trình phía máy chủ chung

Bạn tôi cũng ủng hộ việc sử dụng chức năng OOP của Javascript, tuyên bố rằng "bạn không nên xử lý dữ liệu, chỉ đơn thuần là xác nhận." Javascript có thực sự giới hạn trong việc xác thực dữ liệu và tạo đồ họa hào nhoáng trên một trang web không?

Không, JavaScript là ngôn ngữ lập trình, nếu bạn muốn biểu diễn cấu trúc dữ liệu, thuật toán và logic thì hãy sử dụng các công cụ mà ngôn ngữ này cung cấp. Cụ thể các chức năng và nguyên mẫu của lớp 1 là các công cụ mạnh mẽ.

Anh ấy tiếp tục tuyên bố "bạn không nên cố gắng truy cập cơ sở dữ liệu thông qua javascript" và cũng nói "nói chung bạn không muốn thực hiện công việc nặng nề trong javascript". Tôi không thể nói rằng tôi đồng ý với ý kiến ​​của anh ấy, nhưng tôi muốn có thêm một số ý kiến ​​về việc này.

Sai, Trong trình duyệt, chúng tôi có một cơ sở dữ liệu được gọi là indexedDB mà chúng tôi truy cập bằng JavaScript. Đó là một cơ sở dữ liệu được đưa thẳng vào trình duyệt và nếu bạn muốn sử dụng nó (và bạn nên) thì bạn sử dụng JavaScript.

Cũng lưu ý rằng cả mongodb và couchdb đều cho phép bạn sử dụng javascript để chạy trực tiếp các truy vấn adhoc trên cơ sở dữ liệu.

Đối với việc nâng vật nặng, anh ấy đúng một phần. Nếu bạn làm việc nặng nhọc, bạn nên thực hiện bằng C hoặc erlang. Mặc dù lưu ý rằng thuật ngữ "nâng vật nặng" là mơ hồ, ví dụ tôi sẽ không mã hóa hoặc giải mã video bằng JavaScript, tôi sẽ không xử lý hình ảnh bằng JavaScript (sử dụng C). Tôi sẽ không có số khủng hoảng trong JavaScript (sử dụng fortran).

Javascript đã phát triển từ định nghĩa ở trên thành một thứ gì đó mạnh mẽ hơn, có cách chúng ta sử dụng nó đã thay đổi hay tôi hoàn toàn sai

JavaScript được viết trong khoảng thời gian 2 tuần chỉ để đưa chức năng kịch bản nhỏ vào HTML. Kể từ đó nó đã phát triển nghiêm trọng. Kể từ ES3 (1999), nó đã trở thành một ngôn ngữ lập trình mục đích chung mạnh mẽ.


Đó cũng là những gì tôi nghĩ. Bây giờ tôi chỉ cần tìm ra cách truyền đạt điều đó cho bạn tôi.
Elliot Boneville

@ElliotBonneville Tôi có thể đề nghị một cluebat bọt lớn ?

Hahaha, vâng, bạn có thể. :) Thật vui nhộn.
Elliot Boneville

"ngôn ngữ lập trình mục đích chung mạnh mẽ" chứa đầy các vấn đề sẽ tồn tại ở đó mãi mãi vì khả năng tương thích ngược: codeproject.com/Articles/182416/ Lỗi
Den

@Den vâng, nó có một số vấn đề, nhưng C, C ++, PHP và Java cũng vậy.
Raynos

9

Tầm nhìn của bạn của bạn thực sự rất lỗi thời và bỏ lỡ mọi thứ xảy ra kể từ khi Google phát hành GMail.

Bây giờ, điều này có nghĩa là Javascript đã phát triển vượt ra ngoài những gì nó được thiết kế ban đầu để làm gì? Sắp xếp Nhưng đừng quên rằng thiết kế đã thay đổi trong khi đó và sẽ thay đổi trong tương lai theo nhu cầu mới từ các nhà phát triển. Điều này cũng hợp lệ cho các ngôn ngữ phổ biến khác. Ví dụ, khi phiên bản đầu tiên của C # được phát hành, không ai mong muốn cho phép mã động trong thiết kế. Bây giờ DLR có sẵn trong một vài năm.


2

Ngôn ngữ luôn đi xa hơn những gì chúng ta nghĩ lúc đầu. Nói chuyện với bất cứ ai ở đầu C (hoặc C ++), có ai đó nghĩ rằng ngôn ngữ sẽ được tìm thấy ở hầu hết mọi nơi bây giờ không. Tôi không nghĩ vậy.

Mỗi ngôn ngữ giành chiến thắng để được học nhiều hơn / đẩy xa hơn.

Tôi đồng ý rằng Javascript là / vẫn là một ngôn ngữ được đánh giá thấp, bạn của bạn không phải là ngôn ngữ duy nhất. Vấn đề không phải là ngôn ngữ X hay Y là xấu / vô dụng, vấn đề là giữ ý tưởng này mãi mãi. Trong Khoa học máy tính / CNTT, mọi thứ thay đổi nhanh chóng và nó vẫn sẽ thay đổi rất nhiều trong tương lai.

Đó là lý do tại sao điều quan trọng là tiếp tục học hỏi / suy nghĩ bên ngoài ...


Tôi không nghĩ nhiều người có thể nói một cách hợp lý rằng JavaScript vẫn là một ngôn ngữ được đánh giá cao. Trên thực tế, tôi nghĩ đó là ngôn ngữ phổ biến nhất thế giới.
Jim G.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.