ทำไมเว็บถึงชนะพื้นที่ของแอปพลิเคชั่นทางไกลและ X ไม่ได้?


19

X Window System มีอายุ 25 ปีมีวันคล้ายวันเกิดเมื่อวาน (วันที่ 15)

อย่างที่คุณทราบกันอยู่หนึ่งในคุณสมบัติที่สำคัญที่สุดคือการแยกฝั่งเซิร์ฟเวอร์และฝั่งไคลเอ็นต์ในลักษณะที่ไม่มีทั้งหน้าต่างของ Microsoft, แอปเปิ้ลหรือระบบหน้าต่างของ Wayland

ย้อนกลับไปในวัน (ขออภัยสำหรับการใช้ถ้อยคำที่คลุมเครือ) หลายคนเชื่อว่า X จะมีอิทธิพลเหนือวิธีอื่น ๆ ในการทำ windows เนื่องจากการแยกเซิร์ฟเวอร์และไคลเอนต์นี้ทำให้แอปพลิเคชันทำงานบนเซิร์ฟเวอร์ที่อื่นขณะที่ผู้ใช้คลิก คอมพิวเตอร์ของตัวเองที่บ้าน

เห็นได้ชัดว่าการใช้งานนี้ยังคงมีอยู่ แต่เป็นสิ่งที่ดีที่สุด เมื่อเราเขียนและใช้โปรแกรมที่ทำงานบนเซิร์ฟเวอร์เรามักจะใช้เว็บด้วย html / css / js

ทำไมเว็บถึงชนะและ X ไม่ใช่ เทคโนโลยีที่ใช้สำหรับเว็บ (กล่าวว่า html / css / js) นั้นไม่เป็นระเบียบ เมื่อรวมกับ back-end-frameworks (Rails, Django และอื่น ๆ ) มันเป็นป่าที่จะนำทางผ่าน เว็บยังคงเติบโตด้วยความคิดสร้างสรรค์และความก้าวหน้าในขณะที่แอป X ระยะไกลไม่สามารถทำได้


6
ทั้งสองไม่ได้เปรียบเทียบจากระยะไกล การเชื่อมต่อเซิร์ฟเวอร์ X อนุญาตให้ฉันเรียกใช้แอปพลิเคชันระยะไกลและดูว่าเป็น GUI ในตัวเครื่องซึ่งเป็นกรณีการใช้งานที่แตกต่างอย่างสิ้นเชิงจากการอนุญาตให้ฉันโหลดทรัพยากรระยะไกลลงในไคลเอนต์ท้องถิ่น
Martijn Pieters

3
ฉันไม่เห็นด้วยที่มีความแตกต่าง เมื่อฉันเชื่อมต่อเว็บไคลเอ็นต์ (เบราว์เซอร์) กับเซิร์ฟเวอร์ (ในเครื่องหรือระยะไกล) ฉันสามารถดู GUI ของแอป (เว็บ -) ของฉัน เช่นเดียวกับที่ฉันสามารถดู GUI ของแอพของฉันด้วยเซสชัน X
Martin Josefsson

4
ลองเขียนโปรแกรม X11 และเปรียบเทียบกับหน้า HTML - เปรียบเทียบแบนด์วิดท์ที่จำเป็น นอกจากนี้ WWW ไม่ได้แทนที่ X11 แต่แทนที่ Gopher

2
Pieters: แน่นอนว่าหน้าเว็บนั้นมีการแสดงผลบนไคลเอนต์และ JS ทำงานบนไคลเอนต์ แต่นั่นเป็นเพียงด้านเทคนิค บ่อยครั้งที่โค้ดทำงานบนฝั่งเซิร์ฟเวอร์ (php, java, .net, python, ruby ​​หรืออะไรก็ตาม) ในทางปฏิบัติมีทั้งอินเทอร์เฟซสำหรับแอปที่ทำงานบนเซิร์ฟเวอร์และแสดงบนไคลเอนต์ X และเว็บทำในรูปแบบที่แตกต่างกัน แต่นั่นคือส่วนสำคัญของมัน
Martin Josefsson

14
เนื่องจากเทคโนโลยีไม่ผ่านการตรวจสอบโดยอุตสาหกรรมบันเทิงสำหรับผู้ใหญ่จึงเป็นขั้นตอนที่จำเป็นในการนำเทคโนโลยีมาใช้เป็นหลัก (นั่นเป็นวิธีแฟนซีที่ว่ารูปภาพของผู้หญิงเปลือยกายไม่สามารถใช้งานได้ในระบบ X เร็วพอ)
dasblinkenlight

คำตอบ:


22

ดูเหมือนชัดเจนและพื้นฐานที่สุดแล้วในขณะนี้ แต่นวัตกรรมของนักฆ่าของเวิลด์ไวด์เว็บคือการเชื่อมโยงหลายมิติ แม้ว่า X ไม่สามารถใช้งานไม่ได้อย่างสมบูรณ์ผ่านลิงก์โมเด็ม แต่การไม่สามารถเปิดกระบวนการใหม่อย่างสมบูรณ์บนเซิร์ฟเวอร์ใหม่ที่สมบูรณ์ผ่านการคลิกเพียงครั้งเดียวจะขัดขวางการยอมรับกรณีการใช้งานประเภทนั้น


1
นี่อาจเป็นคำตอบที่ถูกต้อง นอกจากนี้เว็บไคลเอ็นต์ยังทำงานบน Apple และ Microsoft OS ด้วย
Martin Josefsson

การเชื่อมโยงหลายมิติไม่ใช่นวัตกรรมของเวิลด์ไวด์เว็บ มันถูกนำมาใช้หลายครั้งก่อนเช่นใน Hypercard ของ Apple ซึ่งเป็นโปรแกรมยอดนิยมในยุค 80 และ 90 ที่มีความคล้ายคลึงกับเว็บเบราว์เซอร์ แนวคิดของไฮเปอร์เท็กซ์และไฮเปอร์ลิงก์กลับไปสู่ยุค 60 ด้วย Project Xanadu และมันถูกนำไปใช้หลายครั้งในหลายรูปแบบก่อนที่ Tim Berners-Lee จะสร้างไฮเปอร์เท็กซ์บนเครือข่ายของ CERN ในช่วงต้นทศวรรษ 90
Charles Salvia

3
@CharlesSalvia: การพัฒนาไฮเปอร์ลิงก์ HTML เกิดจาก URL โดยเฉพาะอย่างยิ่งในแง่มุมสากล: ทั่วโลกโดยมีหน่วยงานกลางเพียงพอในการทำงานและไม่ผูกติดอยู่กับสื่อหรือเทคโนโลยีประเภทใดประเภทหนึ่ง เทคโนโลยีก่อนหน้านี้ของคุณมีความเป็นสากลน้อยกว่ามาก
MSalters

17

เนื่องจาก X กำหนดให้คุณต้องมีระดับ CS เพื่อเขียนแอปพลิเคชัน ในขณะที่เว็บต้องการให้คุณมีความสามารถในการพิมพ์ (ไม่ใช่แบบนั้น)

โดยเฉพาะอย่างยิ่งในวันแรก ๆ ที่เว็บเพิ่งเป็น html คุณสามารถเปิดเทอร์มินัลและสร้างจอแสดงผลที่ใช้งานได้ใน 10 นาทีจากนั้นปรับปรุงการโต้ตอบด้วยการตอบกลับทันที แถบรายการต่ำนี้ทำให้ผู้ใช้จำนวนมากกลับมาสนใจอีกครั้ง การสร้างแอปพลิเคชั่น X-Server ในทางกลับกันนั้นเป็นงานที่ไม่สำคัญแม้แต่กับโปรแกรมเมอร์ที่มีประสบการณ์

มันใช้เวลา 10 ปีสำหรับเว็บในการเป็นคู่แข่งโดยตรงกับ X application ในด้านการใช้งานและให้ GUI ที่เหมือนกันกับความสามารถ ฟังก์ชั่นนี้ได้รับการเพิ่มเข้าไปในสแต็กภาษาเมื่อเวลาผ่านไปทำให้นักพัฒนาสามารถต้นแบบฟีเจอร์หนึ่งชุดก่อนที่จะเพิ่มฟีเจอร์ถัดไป ดังนั้นการขยายความซับซ้อนทางเทคโนโลยีแบบค่อยเป็นค่อยไปนี้จึงยังคงรักษาระดับต่ำเอาไว้ (สำหรับผู้ที่อยู่ในสนามและมีจำนวนมาก) การกระโดดลงไปในสนามขณะนี้นั้นยากกว่าเมื่อ 10 ปีที่แล้ว แต่มันยังเป็นไปได้และข้อเสนอแนะในทันทีของเว็บทำให้การเรียนรู้ที่น่าพอใจมากขึ้น (มนุษย์ต้องการความพอใจอย่างรวดเร็วเพื่อเสริมกำลังไดรฟ์)

ค่าใช้จ่ายเป็นอีกหนึ่งแรงผลักดัน ค่าใช้จ่ายในการเรียนรู้ทักษะการเขียนโปรแกรมที่เพียงพอในการพัฒนา X-Server นั้นมีความสำคัญ นอกจากนี้ความพร้อมของเซิร์ฟเวอร์ในการเรียกใช้แอปพลิเคชันของคุณยังช่วยเพิ่มค่าใช้จ่ายอีกด้วย การเรียนรู้ที่จะเขียน HTML นั้นแทบไม่มีอะไรเลยที่จะทำให้หน้า "Hello World" ใช้งานได้และผู้ให้บริการอินเทอร์เน็ตยังให้บริการพื้นที่ฟรีเพื่อสร้างแรงบันดาลใจให้คุณได้รับการเชื่อมต่อเว็บ ดังนั้นคุณสามารถฝึกได้ฟรี เมื่อคุณต้องการธุรกิจโฮสติ้งในที่สุดความพร้อมของ บริษัท โฮสติ้งก็เพิ่มขึ้นและค่าใช้จ่ายค่อนข้างถูกเสมอ


1
คุณคิดว่าในการเขียนแอพที่ใช้กับ X คุณต้องเข้าใจ X api แต่เนื่องจากคุณไม่จำเป็นต้องเข้าใจ HTTP เพื่อที่จะเขียนเว็บแอปคุณไม่จำเป็นต้องเข้าใจ X เพื่อเขียนแอปที่ทำงานภายใต้ X คุณสามารถเขียนมันในภาษาเดียวหนึ่งที่คุณต้องการและ มีห้องสมุด GTK อยู่ด้านบน เป็นวิธีที่ง่ายกว่าการเรียนรู้ html และ css และ js และภาษาเซิร์ฟเวอร์ สิ่งสำคัญของมัน: เช่นเดียวกับที่คุณไม่จำเป็นต้องเขียนเซิร์ฟเวอร์ http เพื่อเผยแพร่เว็บไซต์คุณไม่จำเป็นต้องเขียนเซิร์ฟเวอร์ X เพื่อให้บริการแอป X
Martin Josefsson

ฉันไม่เห็นด้วยกับการวิเคราะห์ของคุณที่นั่น แม้ว่าคุณจะมีจุดที่การเขียนเว็บแอปพลิเคชันที่ทันสมัยขณะนี้เกือบจะซับซ้อนเหมือนการเขียนแอปพลิเคชัน X เมื่อ 10 ปีที่แล้ว ในการเขียน X-Application นั้นยังไม่ใช่กระบวนการที่ไม่สำคัญ มันเหมือนกับเขียนโปรแกรม windows นอกเหนือจากความสามารถของใครก็ตามที่ไม่ได้มีประสบการณ์การเขียนโปรแกรมที่สำคัญ ในทางกลับกันการวางหน้า HTML นั้นไม่สำคัญและสามารถทำได้ภายใน 10 นาที (แม้เป็นมือใหม่) จึงนำไปสู่การบังคับใช้อย่างรวดเร็วอีกครั้งและความสามารถในการทดสอบอย่างรวดเร็ว สิ่งนี้ทำให้แถบรายการต่ำกว่ามาก
Martin York

GTK ไม่สามารถใช้ได้จนกว่าจะมีการสร้างเว็บขึ้นมา
user16764

@ user16764: นั่นไม่เป็นความจริง ฉันใช้ GTK ในปี 1997 (ไม่แน่ใจว่าเมื่อใดพวกเขาเริ่มครั้งแรก แต่ก่อนหน้านั้น) เว็บ (ในรูปแบบ HTML / HTTP) นั้นอาจจะมีมา แต่ตอนนี้ก็ไม่ค่อยดีเท่าไหร่ ฉันหมายถึงเว็บเบราว์เซอร์เพิ่งถูกนำเข้าสู่กระแสหลักใน 92 (ครั้งแรกที่ฉันเห็น) X มีตัวจัดการหน้าต่างอื่น ๆ อีกหลายตัวที่สามารถใช้งานได้ก่อนหน้านั้น ฉันจำได้ว่าใช้ twm (ผู้จัดการหน้าต่างของทอมฉันเชื่อ) และอีกหนึ่งระดับที่สูงขึ้นเล็กน้อย (ซึ่งฉันลืม) แต่มีให้เลือกมากมาย (มากเกินไป) ใน 90 (และพวกเขาก็ใช้ได้ก่อนหน้านี้ (ฉันคิดว่า))
Martin York

@LokiAstari: คุณสับสนกับ Window Managers และ GUI libs ในขณะที่มีการทับซ้อนที่แน่นอน (GNOME / Gtk, KDE / Qt) พวกมันไม่เหมือนกันอย่างแน่นอน แม้จะมีผู้จัดการหน้าต่างคุณยังคงมีโลกแห่งความเจ็บปวด
MSalters

11

คำตอบคือ "เทคโนโลยีจำนวนมากถูกนำมาใช้เพื่อเหตุผลทางประวัติศาสตร์หรือเหตุผลทางสังคม - การเมืองมากกว่าเหตุผลทางเทคนิค" ทางออกที่ดีที่สุดสำหรับปัญหาที่ระบุไม่ได้กลายเป็นเทคโนโลยีที่โดดเด่น (อันที่จริงแล้วมันไม่ค่อยมี)

ในปี 2012 มีการใช้เซิร์ฟเวอร์ HTTP ในการสร้างแอปพลิเคชันแบบอินเทอร์แอคทีฟบนเดสก์ท็อปการเปรียบเทียบระหว่าง HTTP และ X นั้นน่าสนใจ ในความเข้าใจย้อนหลัง X อาจเป็นเทคโนโลยีที่ดีกว่าในการพัฒนาแอปพลิเคชันที่ใช้งานเครือข่ายแบบโต้ตอบที่หลากหลาย แอปพลิเคชันที่เหมือนเดสก์ท็อปแบบอินเทอร์แอคทีฟไม่ได้ทำแผนที่ได้ดีกับเทคโนโลยีที่ไร้เอกสารเช่น HTTP และการจับคู่ที่ไม่ตรงกันนี้ส่งผลให้เกิดการทำงานในอดีต (แฮ็ก) ทุกประเภท

แต่จุดประสงค์ดั้งเดิมของ HTTP นั้นไม่ได้เป็นการพัฒนาแอพที่มีลักษณะเหมือนเดสก์ท็อป มันคือการดึงเอกสารและแสดงข้อมูล - ข้อมูลที่สามารถเชื่อมโยงไปยังเอกสารอื่นที่สามารถแสดงได้ทันที แนวคิดของการรวบรวมเอกสารที่เชื่อมโยงย้อนกลับไปในทศวรรษ 1960 ด้วย" Project Xanadu " ของ Theodore Nelson เว็บควรจะนำแนวคิดของไฮเพอร์เท็กซ์มาใช้กับเนลสันซึ่งเป็นความพยายามในการพิมพ์หน้าคอมพิวเตอร์เช่นสารานุกรมหรือหนังสือพิมพ์ทำให้ผู้ใช้สามารถ "กระโดด" จากบทความหนึ่งไปอีกบทความหนึ่งได้ทันทีด้วยการคลิกเพียงครั้งเดียว

การวนซ้ำของความคิดนี้ได้ผ่านไปแล้วเช่นไฮเปอร์การ์ดของ Apple ซึ่งนำแนวคิดของไฮเปอร์เท็กซ์ / ไฮเปอร์ลิงก์มาใช้ แต่ไม่เคยนำไปใช้กับเครือข่าย เวิลด์ไวด์เว็บคือการใช้แนวคิดเครือข่ายไฮเปอร์เท็กซ์ของเครือข่ายของ CERN และอาจเป็นไปได้ยากเนื่องจากทิมเบอร์เนอร์ - ลีปล่อยไลบรารี่โค้ดเบราว์เซอร์ของเขาฟรี สิ่งนี้นำไปสู่เบราว์เซอร์ Mosaic ของ Marc Andreesen ซึ่งเป็นบรรพบุรุษของ Netscape และที่เหลือคือประวัติศาสตร์


แต่ ... เช่นเดียวกับเทคโนโลยีมากมายความเป็นไปได้ใหม่เริ่มปรากฏว่าผู้ออกแบบดั้งเดิมของ HTTP หรือไฮเปอร์เท็กซ์ไม่ได้คิดมากเกินไป เว็บกลายเป็นเชิงพาณิชย์และผู้คนเริ่มพัฒนาเว็บไซต์ที่ให้ความสำคัญกับการโต้ตอบแบบรัฐเช่นตะกร้าสินค้าและการเข้าสู่ระบบ มันชัดเจนมากขึ้นเรื่อย ๆ ว่าลักษณะไร้สัญชาติและเชิงเอกสารของ HTTP นั้นไม่เหมาะกับแอปพลิเคชันที่ใช้เดสก์ท็อป แต่ ณ จุดนั้นมันก็สายเกินไป ทุกคนใช้ HTTP อยู่แล้ว ดังนั้นที่นี่เราอยู่ในวันนี้ด้วยแอปพลิเคชัน AJAX ที่แฮ็กจำนวนมากที่พยายามทำให้ดีที่สุดเพื่อแกล้งทำเป็นแอปเดสก์ท็อป


3

เทคโนโลยีอาจพยายามแก้ไขปัญหาที่คล้ายกันในตอนนี้ แต่พวกเขาก็ไม่ได้ทำในอดีต

สแต็ค HTML ปัจจุบันมีการพัฒนาตลอดเวลาจากการถ่ายโอนเอกสารข้อความอย่างง่าย ๆ ผ่านเอกสาร "ภาพ" พร้อมด้วยการเขียนสคริปต์เพียงเล็กน้อยในแพลตฟอร์มแอปพลิเคชันที่มีคุณสมบัติครบถ้วน

ในช่วงเวลาที่ HTML เริ่มขึ้นไม่มีใครเคยฝันถึงการเชื่อมต่อกับคอมพิวเตอร์ระยะไกลและใช้งานแอพพลิเคชั่นกราฟิกที่นั่น หลังจากอินเทอร์เน็ตมีความหน่วงแฝงและปริมาณงานที่ดีขึ้น แต่ในเวลานั้น HTML ก็มีอยู่แล้ว ทุกคนรู้ว่านี่เป็นวิธีที่จะช่วยให้ลูกค้าและผู้ใช้สามารถเข้าถึงแอปพลิเคชันกราฟิกที่ทำงานบนเครื่องระยะไกล

และเช่นเดียวกับทุกระบบ "ฟรี" มันเป็นไปไม่ได้ที่จะ "รีเซ็ต" สิ่งทั้งหมดและเริ่มต้นใหม่อีกครั้งเพื่อให้ดีขึ้นในเวลานี้ นั่นเป็นเหตุผลที่เราจำเป็นต้องปิดระบบและใช้ HTML / CSS / JS และต้องการให้คนที่สนับสนุนมันในที่สุดจะฉลาดและฝังมันพร้อมกับมันเป็นมรดกมานานหลายปี

นี่เป็นการตอบคำถาม "ทำไมเว็บถึงชนะ" ไม่มีการแข่งขันใด ๆ เว็บชนะก่อนทุกอย่างจะเริ่ม


1
ในช่วงที่ HTML เริ่มขึ้นมีการคำนวณฝั่งเซิร์ฟเวอร์อยู่แล้วด้วยเซิร์ฟเวอร์ NSCA HTTP และ SGI ของมัน แอปพลิเคชันส่วนใหญ่ส่งข้อความ แต่ฉันจำได้ว่าสามารถแสดงแผนที่ที่กำหนดเอง B / W ซึ่งเป็นบรรพบุรุษของแผนที่ Google
mouviciel

แผนที่รูปภาพเกิดขึ้นตั้งแต่ต้นทศวรรษที่ผ่านมาของศตวรรษที่แล้ว
MSalters

1

ฉันเห็นด้วยว่าโดยหลักการแล้วทั้งสองอย่างนั้นคล้ายกัน หากคุณถามคำถามว่า "เราจะเรียกใช้โค้ดบนเซิร์ฟเวอร์ แต่ให้สร้างภาพบนไคลเอนต์ระยะไกลได้อย่างไร" มีเหตุผลพอที่จะคิดว่าทีมอิสระสามารถหาวิธีแก้ปัญหาได้

ฉันสงสัยว่าเหตุผลที่คนหนึ่งได้รับความนิยมมากกว่าคนอื่นในบางแง่มุมก็เพราะทั้งสองวิธีเข้าถึงปัญหาเดียวกันจากมุมมองที่แตกต่างกันโดยสิ้นเชิง X เป็นโซลูชันทางเทคนิคสำหรับปัญหาด้านเทคนิค แต่เว็บมีวิวัฒนาการตามความต้องการในการแก้ปัญหาสังคม - ฉันจะนำทรัพยากรจากเซิร์ฟเวอร์ระยะไกลและแสดงบนเครื่องท้องถิ่นของฉันได้อย่างไรและทำได้ในวิธีที่ง่าย และสะดวกสบาย?

เว็บ "ชนะ" เพราะมันช่วยแก้ไขปัญหาที่เกิดขึ้นกับผู้คนจำนวนมาก ลองนึกถึงการเปรียบเทียบรถ: ทั้งรถซีดานหรูหราและรถบรรทุกต่างแก้ปัญหาเดียวกันได้อย่างชัดเจน: วิธีการขนย้ายบางสิ่งจากที่หนึ่งไปยังอีกที่หนึ่ง

รถบรรทุกแก้ปัญหาทางเทคนิคอย่างแท้จริงว่าจะดึงบางสิ่งบางอย่างจากจุด A ไปยังจุด B และเพื่อให้ทำงานได้ค่อนข้างดี รถยนต์นั่งส่วนบุคคลนั้นมีวิวัฒนาการตามความต้องการของผู้คนให้มีความสะดวกสบายในขณะเดินทาง มันกลายเป็นสิ่งจำเป็นที่ต้องการความสะดวกสบาย ดังนั้นเมื่อเวลาผ่านไปจำนวนรถยนต์นั่งไกลเกินกว่าจำนวนรถปิคอัพบนท้องถนน (ฉันเดาตามการสังเกตการจราจรในชิคาโกอาจแตกต่างกันในเท็กซัส? :-)

ดังนั้นเช่นเดียวกับการเปรียบเทียบระหว่างรถยนต์และรถบรรทุกเว็บและ X11 ทั้งคู่จึงแก้ปัญหาทางเทคนิคเหมือนกัน


1

คุณกำลังเปรียบเทียบแอปเปิ้ลกับลูกแพร์ X windows กำลังเกี่ยวกับการแยกการเรนเดอร์ของเนื้อหาของหน้าจอลงในโลคัลไคลเอนต์ซึ่งสามารถเชื่อมต่อด้วย wire เส้นเล็ก ๆ กับแหล่งที่มาของเนื้อหา เป็นส่วนขยายของโมเดลการคำนวณจากยุค "glass tty" ไปจนถึงโดเมนของกราฟิกคุณภาพสูง X เกิดขึ้นในยุคที่พีซียังคงมีไหวพริบและการคำนวณที่แท้จริงส่วนใหญ่ทำบนยูนิกซ์หรือเมนเฟรมกล่อง ความคิดคือการใช้ประโยชน์จากพลังของ "ขั้ว X" ที่ค่อนข้างถูกและเครือข่ายที่ค่อนข้างช้าเพื่อให้แหล่งข้อมูลการคำนวณที่ร้ายแรงเหล่านี้พร้อมใช้งานแบบกราฟิก

เหตุผลที่ไม่ชนะบน Mac และ PC ก็คือการพัฒนาของพวกเขานั้นขับเคลื่อนด้วยความปรารถนาที่จะสนับสนุนกราฟิกระดับสูงในแอพพลิเคชั่นท้องถิ่นรวมถึงเกมบรรณาธิการและกราฟิกธุรกิจ การสนับสนุนแอพพลิเคชั่นเครือข่ายถิ่นที่อยู่เป็นความคิดล่าสุด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.