Tại sao web giành được không gian của các ứng dụng từ xa và X không?


19

Hệ thống X Window 25 tuổi, nó đã được sinh nhật vào ngày hôm qua (vào ngày 15).

Như bạn có thể biết, một trong những tính năng quan trọng nhất của nó là tách biệt phía máy chủ và phía máy khách theo cách mà cả các hệ thống cửa sổ của Microsoft, Táo hoặc Wayland đều có.

Trước đây (xin lỗi vì cụm từ mơ hồ), nhiều người tin rằng X sẽ chiếm ưu thế so với các cách khác để tạo cửa sổ vì sự tách biệt giữa máy chủ và máy khách này, cho phép ứng dụng được chạy trên máy chủ ở một nơi khác trong khi người dùng nhấp và gõ vào cô ấy máy tính riêng tại nhà.

Việc sử dụng này rõ ràng vẫn còn tồn tại, nhưng bị thiệt thòi nhiều nhất. Khi chúng tôi viết và sử dụng các chương trình chạy trên máy chủ, chúng tôi hầu như luôn sử dụng web với html / css / js.

Tại sao web thắng, còn X thì không? Các công nghệ được sử dụng cho web (nói html / css / js) là một mớ hỗn độn. Kết hợp với tất cả các khung công tác phía sau (Rails, Django và tất cả), nó thực sự là một khu rừng để điều hướng thông qua. Tuy nhiên, web phát triển mạnh với sự sáng tạo và tiến bộ, trong khi các ứng dụng X từ xa thì không.


6
Cả hai thậm chí không thể so sánh từ xa. Kết nối máy chủ X cho phép tôi chạy một ứng dụng từ xa và xem GUI cục bộ, đây là trường hợp sử dụng hoàn toàn khác với việc cho phép tôi tải tài nguyên từ xa vào máy khách cục bộ.
Martijn Pieters

3
Tôi không đồng ý rằng có một sự khác biệt. Khi tôi kết nối máy khách web (trình duyệt) với máy chủ (cục bộ hoặc từ xa), tôi có thể xem GUI của ứng dụng (web-) của mình. Giống như tôi có thể xem GUI của ứng dụng của mình bằng phiên X.
Martin Josefsson

4
Hãy thử viết một chương trình X11 và so sánh nó với một trang HTML - cũng so sánh băng thông cần thiết. Ngoài ra, WWW không thay thế X11, nó đã thay thế Gopher.

2
Pieters: Chắc chắn, trang được hiển thị trên máy khách và JS chạy trên máy khách, nhưng đó chỉ là kỹ thuật. Thường xuyên hơn không, mã chạy ở phía máy chủ (php, java, .net, python, ruby, bất cứ điều gì). Trong thực tế, cả hai đều là giao diện cho các ứng dụng chạy trên máy chủ và được hiển thị trên máy khách. X và web thực hiện nó theo những cách khác nhau, nhưng đó là ý chính của nó.
Martin Josefsson

14
Bởi vì công nghệ không vượt qua xác nhận của ngành công nghiệp giải trí dành cho người lớn, nên một bước bắt buộc trong việc áp dụng công nghệ chính thống (đó là một cách thú vị để nói rằng hình ảnh của phụ nữ khỏa thân không có sẵn trên hệ thống X đủ nhanh).
dasblinkenlight

Câu trả lời:


22

Nó dường như hoàn toàn rõ ràng và cơ bản bây giờ, nhưng sự đổi mới sát thủ của thế giới web là siêu liên kết. Ngay cả khi X không hoàn toàn không sử dụng được qua liên kết modem, việc không thể khởi chạy quy trình hoàn toàn mới trên máy chủ hoàn toàn mới thông qua một cú nhấp chuột sẽ cản trở việc áp dụng cho trường hợp sử dụng đó.


1
Điều này rất có thể là câu trả lời chính xác. Ngoài ra, các máy khách web cũng chạy trên Apple và Microsoft OS.
Martin Josefsson

Siêu liên kết không phải là một sự đổi mới của World Wide Web. Nó đã được triển khai nhiều lần trước đây, như trong Hypercard của Apple, một chương trình phổ biến trong thập niên 80 và 90 với nhiều điểm tương đồng kỳ lạ với Trình duyệt web. Khái niệm siêu văn bản và siêu liên kết có từ những năm 60, với Project Xanadu, và nó đã được triển khai nhiều lần ở nhiều định dạng trước khi Tim Berners-Lee cuối cùng tạo ra triển khai siêu văn bản dựa trên mạng của mình tại CERN vào đầu những năm 90.
Charles Salvia

3
@CharlesSalvia: Sự đột phá của các siêu liên kết HTML là do URL. Cụ thể là khía cạnh phổ quát của nó: toàn cầu, với cơ quan trung ương đủ hoạt động và không bị ràng buộc với một loại phương tiện hoặc công nghệ cụ thể. Công nghệ trước đây của bạn là rất xa, ít phổ biến hơn.
MSalters

17

Bởi vì X yêu cầu bạn phải có bằng CS để viết đơn. Trong khi Web yêu cầu bạn có khả năng gõ (thậm chí không phải vậy).

Đặc biệt là trong những ngày đầu khi web chỉ là html. Bạn có thể mở một thiết bị đầu cuối và xây dựng một màn hình hoạt động trong 10 phút và sau đó tương tác cải thiện nó với phản hồi tức thì. Thanh thấp của mục nhập này thúc đẩy sự hấp thụ lớn của người dùng. Xây dựng một ứng dụng X-Server mặt khác là nhiệm vụ không hề nhỏ ngay cả đối với các lập trình viên có kinh nghiệm.

Phải mất 10 năm để Web trở thành đối thủ cạnh tranh trực tiếp với X applicationatoin về chức năng và cung cấp GUI giống như các khả năng. Chức năng này đã được thêm vào ngăn xếp ngôn ngữ theo thời gian cho phép các nhà phát triển thành thạo một bộ tính năng trước khi bổ sung tiếp theo; Vì vậy, sự mở rộng dần dần của sự phức tạp công nghệ này đã duy trì mức thấp (đối với những người đã ở trong lĩnh vực này và có rất nhiều trong số họ). Nhảy vào lĩnh vực bây giờ khó hơn rất nhiều so với 10 năm trước nhưng vẫn có thể và phản hồi tức thì của web khiến việc học trở nên hài lòng hơn (con người cần sự hài lòng nhanh chóng để củng cố các ổ đĩa của họ).

Chi phí là một trình điều khiển khác. Chi phí thực sự của việc học đủ các kỹ năng lập trình để phát triển X-Server là rất đáng kể. Sau đó, sự sẵn có của các máy chủ để chạy ứng dụng của bạn đã khiến chi phí tăng lên. Học viết HTML thực tế không có gì để có được trang "Hello World" và các nhà cung cấp dịch vụ internet đã cung cấp dịch vụ lưu trữ miễn phí để truyền cảm hứng cho bạn để có được kết nối web. Vì vậy, bạn có thể thực hành miễn phí. Khi cuối cùng bạn cần kinh doanh lưu trữ, sự sẵn có của các công ty lưu trữ đã tăng lên và chi phí luôn luôn tương đối rẻ.


1
Bạn cho rằng để viết một ứng dụng được sử dụng trên X, bạn cần hiểu X api. Nhưng giống như bạn không cần phải hiểu HTTP để viết ứng dụng web, bạn không cần phải hiểu X để viết một ứng dụng chạy dưới X. Bạn có thể viết nó bằng một ngôn ngữ, ngôn ngữ bạn thích và chỉ cần có một thư viện GTK trên đầu trang. Cách dễ dàng hơn để học html và css và js và ngôn ngữ máy chủ. Ý chính của nó: giống như bạn không cần phải viết máy chủ http để xuất bản trang web, bạn không cần phải viết máy chủ X để phục vụ ứng dụng X.
Martin Josefsson

Tôi không đồng ý với phân tích của bạn ở đó. Mặc dù bạn có một điểm trong đó là viết một ứng dụng web hiện đại gần như phức tạp như viết ứng dụng X cách đây 10 năm. Để viết một ứng dụng X vẫn không phải là một quá trình tầm thường. Nó giống như viết một ứng dụng windows. Vượt xa khả năng của bất kỳ ai chưa thực hiện kinh nghiệm lập trình quan trọng. Mặt khác, việc đưa lên một trang HTML là không đáng kể và có thể được thực hiện trong 10 phút (ngay cả bởi người mới bắt đầu). Do đó dẫn đến việc thực thi lại nhanh chóng và khả năng thử nghiệm nhanh chóng. Điều này làm cho nó thấp hơn nhiều để nhập.
Martin York

GTK không có sẵn cho đến khi web được thiết lập.
dùng16764

@ user16764: Điều đó không đúng. Tôi đã sử dụng GTK vào năm 1997 (không chắc chắn khi nào chúng mới bắt đầu nhưng trước đó). Web (như trong HTML / HTTP) có thể đã hoạt động nhưng được thiết lập không quá nhiều. Ý tôi là trình duyệt web chỉ được đưa vào luồng chính vào năm 92 (Lần đầu tiên tôi thấy một trình duyệt). X có một số trình quản lý cửa sổ khác có thể sử dụng được trước đó. Tôi nhớ sử dụng twm (trình quản lý cửa sổ của tom tôi tin) và một cấp độ cao hơn một chút (mà tôi quên) nhưng có rất nhiều lựa chọn (quá nhiều) trong 90 (và chúng có sẵn trước đó (tôi nghĩ)).
Martin York

@LokiAstari: Bạn đang nhầm lẫn Trình quản lý cửa sổ và lib lib GUI. Mặc dù có sự trùng lặp nhất định (Gnome / Gtk, KDE / Qt), chúng chắc chắn không giống nhau. Ngay cả với những người quản lý cửa sổ, bạn vẫn có những thế giới đau đớn.
MSalters

11

Câu trả lời là "nhiều công nghệ được áp dụng vì lý do lịch sử hoặc chính trị xã hội tùy tiện hơn là lý do kỹ thuật". Giải pháp tốt nhất cho một vấn đề nhất định không phải lúc nào cũng trở thành công nghệ vượt trội. (Trong thực tế, nó hiếm khi làm.)

Vào năm 2012, nơi các máy chủ HTTP đang được sử dụng để tạo các ứng dụng tương tác ngang bằng với các ứng dụng Máy tính để bàn, việc so sánh giữa HTTP và X rất thú vị. Nhìn chung, X có lẽ là một công nghệ tốt hơn để phát triển các ứng dụng triển khai mạng tương tác phong phú. Các ứng dụng tương tự như máy tính để bàn không ánh xạ tốt đến một công nghệ không định hướng, tài liệu như HTTP và sự không phù hợp này trong lịch sử đã dẫn đến tất cả các loại công việc (hack) để tạo trạng thái, như cookie, phiên, v.v.

Nhưng mục đích ban đầu của HTTP không phải là phát triển các ứng dụng giống như máy tính để bàn. Đó là để lấy tài liệu và hiển thị thông tin - thông tin có thể liên kết đến các tài liệu khác cũng có thể được hiển thị ngay lập tức. Ý tưởng về một bộ sưu tập tài liệu được liên kết có từ những năm 1960 với " Project Xanadu " của Theodore Nelson . Web được cho là một triển khai của khái niệm siêu văn bản của Nelson , đó là một nỗ lực để vi tính hóa trang in - như bách khoa toàn thư hoặc báo - cho phép người dùng ngay lập tức "nhảy" từ bài viết này sang bài viết khác chỉ bằng một cú nhấp chuột.

Nhiều lần lặp lại ý tưởng này đã đến và biến mất, chẳng hạn như Hypercard của Apple , đã triển khai khái niệm siêu văn bản / siêu liên kết, nhưng không bao giờ được triển khai trên các mạng. World Wide Web là triển khai khái niệm siêu văn bản dựa trên mạng của CERN và có thể nó đã bị loại bỏ vì Tim Berners-Lee đã phát hành thư viện mã trình duyệt của mình miễn phí, cho phép những người khác thử nghiệm nó. Điều này cuối cùng đã dẫn đến trình duyệt khảm của Marc Andreesen, tiền thân của Netscape. Và phần còn lại là lịch sử.


Nhưng ... cũng như rất nhiều công nghệ, các khả năng mới bắt đầu xuất hiện mà các nhà thiết kế ban đầu của HTTP hoặc siêu văn bản không thực sự nghĩ về quá nhiều. Web đã được thương mại hóa và mọi người bắt đầu phát triển các trang web có tính tương tác trạng thái, như giỏ hàng và thông tin đăng nhập. Ngày càng rõ ràng rằng bản chất không trạng thái và định hướng tài liệu của HTTP không phù hợp lắm với các ứng dụng giống như Máy tính để bàn. Nhưng tại thời điểm đó, nó đã quá muộn. Mọi người đã sử dụng HTTP. Vì vậy, chúng ta ở đây ngày hôm nay, với các ứng dụng AJAX khác nhau đang cố gắng hết sức để giả vờ rằng chúng là các ứng dụng Máy tính để bàn.


3

Các công nghệ có thể cố gắng giải quyết các vấn đề tương tự bây giờ, nhưng họ chắc chắn không có trong quá khứ.

Ngăn xếp HTML hiện tại đã phát triển theo thời gian từ việc chuyển tài liệu văn bản thực sự đơn giản, thông qua các tài liệu "trực quan" với ít kịch bản, thành nền tảng ứng dụng đầy đủ tính năng.

Vào thời điểm HTML bắt đầu, không ai có thể mơ về việc kết nối với máy tính từ xa và chạy các ứng dụng đồ họa ở đó. Chỉ sau khi internet có độ trễ tốt hơn và thông lượng thì điều này mới có thể. Tuy nhiên, tại thời điểm đó, HTML đã có mặt. Mọi người đều biết rằng đây là cách để cung cấp cho khách hàng và người dùng quyền truy cập vào ứng dụng đồ họa chạy trên máy từ xa.

Và như với mọi hệ thống "miễn phí", không thể "thiết lập lại" toàn bộ và bắt đầu lại để làm điều đó tốt hơn lần này. Đó là lý do tại sao chúng ta cần phải im lặng và sử dụng HTML / CSS / JS và chỉ mong mọi người ủng hộ nó cuối cùng sẽ làm sáng tỏ và chôn vùi nó cùng với di sản lâu năm.

Điều này trả lời câu hỏi "Tại sao web thắng?". Không có bất kỳ sự cạnh tranh nào, web đã thắng trước khi mọi thứ bắt đầu.


1
Vào thời điểm HTML bắt đầu, đã có máy tính phía máy chủ, với máy chủ HTTP NSCA và SGI của nó. Hầu hết các ứng dụng phân phối văn bản nhưng tôi nhớ một ứng dụng có thể hiển thị bản đồ tùy chỉnh B / W, tổ tiên của bản đồ google.
mouviciel

Bản đồ hình ảnh thực sự có từ những năm đầu của thập kỷ trước của thế kỷ trước.
MSalters

1

Tôi đồng ý rằng, về nguyên tắc, hai là tương tự nhau. Nếu bạn đặt câu hỏi "làm thế nào chúng ta có thể chạy mã trên máy chủ nhưng cung cấp trực quan hóa trên máy khách từ xa?", Sẽ hợp lý khi nghĩ rằng các nhóm độc lập có thể đưa ra giải pháp.

Tôi nghi ngờ lý do một cái phổ biến hơn cái kia ở một số khía cạnh nhất định là bởi vì hai cách tiếp cận cùng một vấn đề từ những quan điểm hoàn toàn khác nhau. X là một giải pháp kỹ thuật cho một vấn đề kỹ thuật, nhưng web phát triển như một nhu cầu giải quyết vấn đề xã hội - làm cách nào tôi có thể lấy tài nguyên từ máy chủ từ xa và hiển thị nó trên máy cục bộ của mình và thực hiện theo cách dễ dàng và thuận tiện?

Web "đã thắng" vì nó đã giải quyết được một vấn đề mà nhiều người gặp phải. Hãy nghĩ về một sự tương tự xe hơi: cả những chiếc xe sang và xe tải sang trọng dường như giải quyết cùng một vấn đề: làm thế nào để vận chuyển một cái gì đó từ nơi này sang nơi khác.

Chiếc xe tải đã giải quyết vấn đề kỹ thuật theo nghĩa đen là làm thế nào để chuyên chở một thứ gì đó từ điểm A đến điểm B, và nó hoạt động khá tốt. Chiếc xe chở khách phát triển như một nhu cầu cho mọi người được thoải mái khi họ đi du lịch, và để chở nhiều người hơn và ít phân hơn. Nó trở thành một điều cần thiết mà tiện lợi cần thiết. Do đó, theo thời gian, số lượng xe ô tô chở khách ở xa, vượt xa số lượng xe bán tải trên đường (tôi đoán, dựa trên quan sát giao thông Chicago, có lẽ nó khác ở Texas? :-)

Vì vậy, giống như sự tương tự xe hơi / xe tải, cả web và X11 đều có thể giải quyết cùng một vấn đề kỹ thuật, nhưng chúng phục vụ các mục đích hoàn toàn riêng biệt.


1

Bạn đang so sánh táo với lê. Cửa sổ X là về việc phân tách kết xuất nội dung màn hình thành máy khách cục bộ, có thể được kết nối bằng một sợi dây mỏng với nguồn nội dung. Đây thực sự là một phần mở rộng của mô hình tính toán từ thời đại "kính tty" sang lĩnh vực đồ họa chất lượng cao. X bắt nguồn từ thời đại PC vẫn còn khá dở hơi và hầu hết các tính toán thực sự được thực hiện trên các hộp unix hoặc máy tính lớn. Ý tưởng là khai thác sức mạnh của các "thiết bị đầu cuối X" tương đối rẻ và các mạng tương đối chậm để làm cho các nguồn tính toán nghiêm túc này có sẵn bằng đồ họa.

Lý do điều này không thắng trên máy Mac và PC là vì sự phát triển của họ luôn được thúc đẩy bởi mong muốn hỗ trợ đồ họa cao cấp trong các ứng dụng địa phương , bao gồm trò chơi, biên tập viên và đồ họa kinh doanh. Hỗ trợ các ứng dụng thường trú trên mạng là một suy nghĩ gần đây.

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.