JQuery đã giết các cuộc thảo luận JavaScript? [đóng cửa]


7

Có hơn 100.000 câu hỏi trên Stack Overflow được gắn thẻ là các câu hỏi liên quan đến việc khắc phục / sử dụng JQuery. So sánh điều này với 124.000 câu hỏi về lỗi tràn ngăn xếp được gắn thẻ cho các vấn đề JavaScript. Chúng tôi rất gần với một nửa trong số tất cả các câu hỏi liên quan đến JavaScript trên Stack Overflow được quy cho JQuery (cộng hoặc trừ bất kỳ lề nào cho một số khung công tác JS khác có câu hỏi về SO).

Những gì tôi nhận được là, jQuery không phải là một ngôn ngữ và nó không phải là tất cả và kết thúc tất cả các khung phải được áp dụng cho mọi kịch bản có JavaScript, nhưng nó nhanh chóng bị bắt (và tôi dự đoán sẽ sớm nhật thực ) JavaScript như một nguồn thảo luận / yêu cầu trên các trang web như Stack Overflow.

Là jQuery giết chết ngôi sao JavaScript? Không còn nắm bắt chắc chắn bởi thế hệ các nhà phát triển web tiếp theo về sức mạnh, sự đơn giản và việc sử dụng JavaScript làm phương tiện cho thao tác DOM? Đây có phải chỉ là sự phát triển tự nhiên của mọi thứ và quan điểm tôi đang trình bày điển hình cho cái tôi của người viết mã (tức là đây là cách các lập trình viên lắp ráp xem đám đông .NET / Java / Web?) Hay đây thực sự là khởi đầu của sự kết thúc của sự kết thúc nhà phát triển JavaScript thực sự?


6
Chao Brian. Câu hỏi này nghe có vẻ khá tranh luận và mời thảo luận. Những loại câu hỏi này không được khuyến khích trên Stack Exchange. Có bất kỳ chỉnh sửa nào bạn có thể thực hiện để làm cho nó ít định hướng thảo luận hơn không? Cảm ơn.
Adam Lear

2
@Anna Lear - Các ứng dụng của tôi - Tôi đã giải thích Câu hỏi thường gặp về StackOverflow là hướng để gửi câu hỏi ở đây: • Các lập trình viên chuyên nghiệp quan tâm đến các cuộc thảo luận chuyên nghiệp về phát triển phần mềm, hãy hỏi các Lập trình viên. - Tôi chắc chắn không muốn đóng góp cho cuộc trò chuyện vô ích và sẽ hiểu nếu câu hỏi được xóa. Tôi nghĩ rằng đây là diễn đàn cho một cuộc tranh luận lý thuyết hơn.
Brian

3
Tôi cũng muốn biết lý do tại sao câu hỏi của tôi là tranh luận và mời thảo luận (do đó, không phù hợp), nhưng "bạn có nghĩ rằng cin và cout có những mũi tên sai cách không?" được không lập trình viên.stackexchange.com/questions/101234 / . Tôi nhận thấy rằng đây thực sự sẽ là một diễn đàn cho cuộc tranh luận về trí tuệ về phát triển phần mềm, không chỉ là hỏi đáp hữu hạn. - chỉ cần nói ...
Brian

2
Tôi nghĩ rằng Câu hỏi thường gặp của chúng tôi nắm bắt / truyền đạt tinh thần khá tốt.
Adam Lear

3
Gợi ý, rất ẩn ý trong câu hỏi, rằng thế hệ hiện tại sử dụng JQuery vì chúng không tốt về JavaScript như thế hệ trước, là điều rõ ràng để chỉ ra khi trả lời câu hỏi của bạn về lý do tại sao điều này là tranh luận. (FWIW Tôi nhớ những ngày trước JQuery và thao tác DOM là bất cứ điều gì nhưng đơn giản nếu bạn muốn nó hoạt động trên nhiều trình duyệt).
Peter Taylor

Câu trả lời:


1

Bạn chắc chắn có thể đưa ra lập luận rằng jQuery đã giết cuộc thảo luận javascript và biểu đồ xu hướng này sẽ hỗ trợ nó: http://www.google.com/trends?q=jquery%2C+javascript

Nó khá dễ dàng để quan sát điều này trên bảng tin của bạn là tốt. Bất cứ lúc nào một "làm thế nào để bạn làm xxx trong javascript?" Câu hỏi được hỏi, bạn gần như có thể đặt cược rằng các câu trả lời sẽ có định dạng "sử dụng jQuery và chỉ cần làm yyy".

Tôi muốn nói chính xác hơn khi nói rằng bây giờ phổ biến hơn để thảo luận về javascript về các khung công tác cấp cao hơn (cho dù đây là một cái gì đó giống như jQuery / nguyên mẫu hoặc loại trực tiếp / xương sống hoặc node.js hoặc ...)


3
Chỉ cần sử dụng jQuery và thực hiện các câu trả lời yyy phải chịu một downvote tự động từ tôi cho các câu hỏi SO không được gắn thẻ jQuery.
Michael

@kekekela - có lẽ là sự ủng hộ khéo léo nhất cho cả hai phía của cuộc tranh luận. Tôi đã từ chức điểm đối lập ngay lập tức khi các đường xu hướng bị đảo ngược. Ít nhất tôi biết từ các câu trả lời rằng có vô số người tài năng và thông minh bổ sung mã của họ bằng jQuery, không dựa trên mỗi trực tuyến của họ về nó.
Brian

3
@StuperUser Hãy nhớ rằng một vài dòng mã được lưu là sự tiện lợi cho nhà phát triển, trong khi 90kb là một hình phạt đối với người dùng cuối của bạn. Tất nhiên, vị trí của jQuery có rất nhiều thao tác hoặc sự kiện DOM như bạn nói, nhưng $(foo)trở thành câu trả lời SO mặc định cho các tác vụ đơn giản như làm thế nào để tôi có được tất cả <img>trên một trang . Hình phạt cho người dùng cuối là không đáng có.
Michael

1
@Michael, tôi đồng ý. Mỗi lần lưu một vài dòng mã trên toàn bộ ứng dụng, chúng phải được duy trì, các nhà phát triển đủ kỹ năng sử dụng JS đúng cách sẽ phải được tuyển dụng / đào tạo, nó có thể tăng thêm rất nhiều thời gian / tiền trong suốt vòng đời. Với tốc độ tải xuống cao và bộ nhớ đệm trình duyệt, có thể lưu hơn 90kb. Tôi hiểu bạn biết khi nào nên sử dụng nó và khi nào không, hãy hy vọng nhiều người dùng đủ điều kiện trả lời hơn là mặc định $('selector')và mong đợi các upvote.
StuperUser

1
@StuperUser +1 Rất vui khi sự bất đồng trên Internet, khi được giải thích, biến thành thỏa thuận thay vì tranh luận.
Michael

12
  1. Không, jQuery không giết JavaScript, thay vào đó nó mở ra ngôn ngữ.
  2. Có Nodejs, sử dụng Javascript dưới dạng cli hoặc cho kịch bản phía máy chủ.

Giới thiệu về jQuery . Tôi đã lập trình với các API DOM từ năm 2001 và có thể đảm bảo với bạn rằng một API DOM đơn giản và được kiểm tra tốt như jQuery cho phép bạn làm việc nhiều hơn với vấn đề thực sự thay vì trên API.

Tôi cũng đã thao tác DOM trong Javascript thô vào năm 2005 và hầu hết thời gian tôi dành để làm cho nó hoạt động trên nhiều trình duyệt.

Trước jQuery, rất nhiều người trong chúng ta đã dành thời gian để sửa các lỗi và lỗi khác nhau của trình duyệt, một cách độc lập và ít chia sẻ mã. Chúng tôi lặp đi lặp lại cùng một công việc và lặp đi lặp lại những sai lầm tương tự. jQuery nhẹ nhõm với nhiệm vụ này. Ngày nay, với rất nhiều plugin jQuery, tôi làm việc chủ yếu trên lĩnh vực vấn đề của mình, nhưng cũng có thể thực hiện các thao tác phức tạp hơn của tài liệu. Chỉ được giải phóng khỏi những cơn đau đầu DOM tôi mới có thể tìm hiểu sức mạnh thực sự của việc đóng cửa và vòng lặp sự kiện JS (phải xem đối với bất kỳ lập trình viên js nào!)

Hầu hết các lập trình viên Javascript sử dụng jQuery để thao tác DOM, do đó hầu hết các câu hỏi liên quan đến khu vực này và jQuery.

Có những lựa chọn thay thế cho jQuery:

  • Nguyên mẫu, nó có nhiều điểm vào (gây nhầm lẫn) và chứa bom thời gian (Nó thêm một số phương thức cho các đối tượng tích hợp, nhưng chỉ có các phương thức chưa có trong đối tượng. Khi các nhà phát triển trình duyệt triển khai chúng trong tương lai gần , các đối tượng sẽ thay đổi hành vi và nhiều trang web sẽ ngừng hoạt động. Các nhà phát triển sẽ phải khẩn trương sửa chữa trang web của họ.)
  • RightJS (không thể nói bất cứ điều gì, nhưng dường như có một API đẹp)

Node.js là một môi trường phát triển nhanh chóng và trong một vài năm, nó có thể trở thành ngôn ngữ máy chủ chính thống. Ấn tượng của tôi về nó là vẫn thiếu rất nhiều tính năng có thể làm cho ngôn ngữ trông thanh lịch hơn. Ngay bây giờ phải mất rất nhiều nỗ lực để tổ chức mã của bạn. Không thể nói nếu nó có thể sửa được với một khung như jQuery hoặc chỉ với một phiên bản ngôn ngữ mới, nhưng hãy chắc chắn rằng điều này sẽ được giải quyết bởi một ai đó, nói chung có đủ động lực xung quanh Node.js và JS.


cảm ơn câu trả lời của bạn. Tôi sẽ phải gửi mặc dù bạn đã chạm vào một phần của những gì tôi xem là một trong nhiều huyền thoại của JQuery. Có hơn 5000 câu hỏi trên StackOverflow cho "JQuery firefox" và hơn 5000 câu hỏi cho "JQuery chrome". Hơn 3k cho "JQuery IE". Mặc dù tôi đồng ý với quan điểm chung của bạn ở đây, tôi nghĩ rằng một phần trong những điều khiến tôi tự hỏi liệu JQuery có phá hủy nhóm tài năng không chỉ là khối lượng người ngạc nhiên khi thấy rằng một cái gì đó không hoạt động trên một trình duyệt khác - và họ không biết Làm thế nào để bắt đầu xử lý sự cố nó. +1 cho câu trả lời của bạn mặc dù.
Brian

Tôi gặp vấn đề với một số plugin không hoạt động với một số trình duyệt hoặc đúng như mong đợi (như livequery không hiểu chuỗi bộ lọc). Tôi đã tải phiên bản đầy đủ của jQuery và gỡ lỗi nó.

@Brian - Tôi sẽ lập luận rằng điều đó có liên quan nhiều hơn với thực tế là nhiều người hỏi những câu hỏi đó không nhận ra những gì thực sự cần để có bất cứ điều gì làm việc trên trình duyệt chéo. Bạn cũng sẽ tìm thấy một số lượng lớn nội dung HTML hoặc CSS cũng là về một số phần không hoạt động trên trình duyệt chéo. Nhiều người trong số những người hỏi thậm chí không biết các trình duyệt có công cụ dành cho nhà phát triển để khắc phục sự cố dựa trên trình duyệt.
Shauna

8

Tôi xem nó gần với thư viện chuẩn hơn trong C ++ hơn là tương tự .Net / hội. Hoặc thậm chí tốt hơn, .Net và C #. Không có gì trong thông số C # nói rằng bạn phải sử dụng .Net, nhưng nó gắn chặt với nhau. Nhưng dù sao, như câu hỏi của bạn, hầu hết các nhà phát triển web không quan tâm đến JavaScript.

Trên thực tế, tôi cho rằng phần thao tác DOM của JavaScript khá khủng khiếp (đặc biệt là việc xem xét các trình duyệt khác nhau khiến cho công cụ hoạt động ở mọi nơi trở nên khó khăn). Tôi không nghĩ rằng bạn có thể đặt một cái gì đó khác vào đó và nhận được kết quả tốt hơn, nhưng trong nhiều năm, đó là một điểm gây thất vọng (một lần nữa thường là do các nhà sản xuất trình duyệt). Hầu hết mọi người sẽ hack một cái gì đó cùng nhau trước jQuery và gọi nó là một ngày (và sẽ tự xưng là "chuyên gia" trong phần lớn thời gian). jQuery chỉ đơn giản là lấy những phần mà không ai thích và đặt một khuôn mặt đẹp hơn trên đó. Vì hiện tại, đó là cách sử dụng chính của JS (thao tác DOM), bạn sẽ thấy jQuery xuất hiện ngày càng nhiều (hoặc một số khung công tác khác như Prototype, v.v.). Để bạn biết rằng tôi không nghĩ nhà phát triển web trung bình là nhà phát triển JS tuyệt vời trước jQuery.

Điều đó đang được nói, JavaScript đang làm tốt như một ngôn ngữ. Node.js là một ví dụ điển hình về việc chọn sử dụng như một ngôn ngữ thực tế. Tôi thậm chí đã xem xét việc sử dụng nó như một ngôn ngữ kịch bản nhúng trong một số ứng dụng của mình (bị mất LUA, nhưng chỉ vì LUA mất ít thời gian hơn để thiết lập).


3

Jquery trừu tượng hóa các nhiệm vụ khó chịu và nhàm chán nhất là phát triển javascript cho một trang web. Đi qua DOM là nhiệm vụ có thể lặp lại đòi hỏi nhiều lao động thủ công với rất ít lợi ích từ việc thực hiện nó một cách khó khăn. Các trường hợp duy nhất hiện tại tôi không sử dụng jQuery là các phiên bản di động của trang web - bạn không thể đủ khả năng thêm một yêu cầu và 100k ở đó. Tương tự với tải ajax.

Ngoài ra jQuery làm cho lập trình chức năng gần như vui vẻ. Nó giới thiệu khái niệm về chức năng như một đối tượng hạng nhất thực sự trực quan cho các nhà phát triển. Ném một số hiệu ứng kẹo mắt và một số plugin rất tốt - công cụ nhỏ khá ấn tượng của nó hoàn toàn phù hợp cho nhiệm vụ.

Tiêu chuẩn javascript -> Jquery đối với tôi cảm thấy giống như khi chuyển từ C ++ và mfc sang winforms và C #.


Đối với hồ sơ, tôi thích câu trả lời này nhất. Đó là sự trung thực và nó mang lại cho tôi hy vọng rằng jQuery đang được một số người trên thế giới sử dụng một cách thích hợp - như một phần mở rộng chứ không phải là một phần mềm miễn phí (+1 để tính toán cho tải xuống js trên thiết bị di động). Tôi đang đánh dấu kekekela là chính xác mặc dù dựa trên số liệu thống kê trích dẫn - mặc dù 3% trong số tất cả các số liệu thống kê được tạo thành bằng mọi cách.
Brian
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.