Системе X Window исполнилось 25 лет, у нее вчера был день рождения (15-го).
Как вы, наверное, знаете, одна из его наиболее важных функций - это разделение серверной и клиентской частей таким образом, которого нет ни у оконных систем Microsoft, ни у Apple, ни у Wayland.
В прежние времена (извините за неоднозначную формулировку) многие полагали, что X будет доминировать над другими способами создания окон из-за такого разделения сервера и клиента, позволяя запускать приложение на сервере где-то еще, пока пользователь нажимает и печатает на ней собственный компьютер дома.
Это использование, очевидно, все еще существует, но в лучшем случае маргинализировано. Когда мы пишем и используем программы, которые работают на сервере, мы почти всегда используем Интернет с его html / css / js.
Почему веб выиграл, а Х нет? Технологии, используемые для Интернета (например, html / css / js), являются беспорядком. В сочетании со всеми back-end-фреймворками (Rails, Django и все) это действительно джунгли для навигации. Тем не менее, Интернет процветает благодаря креативности и прогрессу, в то время как удаленные приложения X - нет.
Ответы:
Сейчас это кажется совершенно очевидным и фундаментальным, но убийственной инновацией всемирной паутины была гиперссылка. Даже если X не был полностью непригодным для использования через модемное соединение, его неспособность запустить совершенно новый процесс на совершенно новом сервере с помощью одного клика помешала бы его принятию для такого варианта использования.
источник
Потому что X требует, чтобы у вас была степень CS, чтобы написать заявление. Хотя Интернет требует, чтобы у вас была возможность печатать (даже не это).
Особенно в первые дни, когда веб был просто HTML. Вы можете открыть терминал и построить рабочий дисплей за 10 минут, а затем в интерактивном режиме улучшить его с мгновенной обратной связью. Эта низкая планка входа стимулировала массовое поглощение пользователей. С другой стороны, создание приложения X-Server является нетривиальной задачей даже для опытных программистов.
Вебу потребовалось 10 лет, чтобы стать прямым конкурентом X-приложения с точки зрения функциональности и обеспечения того же графического интерфейса, что и возможности. Эта функциональность была добавлена в языковой стек с течением времени, что позволяет разработчикам освоить один набор функций до того, как был добавлен следующий; так что это постепенное расширение технологической сложности поддерживало низкую планку (для людей, которые уже находятся в поле, и их много). Вскочить в поле сейчас гораздо сложнее, чем 10 лет назад, но это все же возможно, и мгновенная обратная связь в Интернете делает обучение более приятным (людям нужно быстрое удовлетворение, чтобы укрепить свои стремления).
Стоимость другого водителя. Фактическая стоимость обучения достаточным навыкам программирования для разработки X-сервера значительна. Кроме того, доступность серверов для запуска вашего приложения привела к увеличению затрат. Научиться писать HTML было практически ничем, чтобы запустить страницу «Hello World», и интернет-провайдеры предоставили бесплатный хостинг, чтобы вдохновить вас на подключение к Интернету. Так что вы можете практиковаться бесплатно. Когда вам в конце концов понадобился бизнес-хостинг, доступность хостинговых компаний выросла, а стоимость всегда была относительно дешевой.
источник
Ответ заключается в том, что «многие технологии приняты по произвольным историческим или социально-политическим причинам, а не по техническим причинам». Лучшее решение для данной проблемы не всегда становится доминирующей технологией. (На самом деле, это редко бывает.)
В 2012 году, когда HTTP-серверы использовались для создания интерактивных приложений наравне с настольными приложениями, сравнение между HTTP и X интересно. Оглядываясь назад, X, вероятно, является лучшей технологией для разработки многофункциональных интерактивных сетевых приложений. Приложения, подобные интерактивным рабочим столам, плохо сопоставляются с технологией без учета состояния, ориентированной на документы, такой как HTTP, и это несоответствие исторически приводило к всевозможным обходным путям (хаки) для создания состояния, таким как файлы cookie, сессии и т. Д.
Но первоначальная цель HTTP не заключалась в разработке приложений с поддержкой состояния рабочего стола. Это было для извлечения документов и отображения информации - информации, которая может ссылаться на другие документы, которые также могут быть отображены мгновенно. Идея связанного сборника документов восходит к 1960-м годам с « Проектом Ксанаду » Теодора Нельсона . Предполагалось, что Интернет представляет собой реализацию гипертекстовой концепции Нельсона , которая была попыткой компьютеризировать печатную страницу - например, энциклопедию или газету - позволяя пользователю мгновенно «перепрыгивать» из одной статьи в другую одним щелчком мыши.
Многие итерации этой идеи приходили и уходили, такие как Apple Hypercard , которая реализовала концепцию гипертекста / гиперссылок, но никогда не использовалась в сетях. Всемирная паутина была сетевой реализацией концепции гипертекста в CERN, и она, вероятно, взорвалась, потому что Тим Бернерс-Ли бесплатно выпустил свою библиотеку кодов браузера, позволяя другим экспериментировать с ней. В конечном итоге это привело к появлению браузера Mosaic от Marc Andreesen, предшественника Netscape. И остальное уже история.
Но ... как и во многих технологиях, стали появляться новые возможности, о которых разработчики HTTP или гипертекста не особо задумывались. Сеть стала коммерциализированной, и люди начали разрабатывать веб-сайты, которые демонстрировали бы интерактивную интерактивность, такую как корзины для покупок и логины. Становилось все более и более очевидным, что HTTP-структура без сохранения состояния и документа не очень хорошо подходила для настольных приложений. Но в тот момент было слишком поздно. Все уже использовали HTTP. Итак, сегодня мы с различными хакерскими AJAX-приложениями, которые стараются изо всех сил притвориться, что они являются настольными приложениями.
источник
Технологии могут попытаться решить подобные проблемы сейчас, но они уверены, что не в прошлом.
Текущий стек HTML со временем превратился из действительно простой передачи текстовых документов, через «визуальные» документы с небольшими сценариями, в полнофункциональную платформу приложений.
В то время, когда начинался HTML, никто не мог и мечтать о подключении к удаленному компьютеру и запуске там графических приложений. Только после того, как интернет стал лучше, задержка и пропускная способность стали возможными. Тем не менее, в то время HTML уже присутствовал всегда. Все знали, что это был способ предоставить клиентам и пользователям доступ к графическому приложению, работающему на удаленной машине.
И как и в случае с любой «свободной» системой, стало невозможно «сбросить» все это и начать заново, чтобы сделать это лучше на этот раз. Вот почему нам нужно заткнуться и использовать HTML / CSS / JS и только пожелать, чтобы люди, поддерживающие его, наконец-то узнали и похоронили его вместе с его многолетним наследием.
Это отвечает на вопрос «Почему веб выиграл?». Конкуренции не было, веб выиграл еще до того, как все началось.
источник
Я согласен, что, в принципе, оба похожи. Если вы зададите вопрос «как мы можем запустить код на сервере, но обеспечить визуализацию на удаленном клиенте?», То будет разумно подумать, что независимые группы могут предложить любое решение.
Я подозреваю, что причина того, что один из них более популярен, чем другой в определенных аспектах, заключается в том, что оба подхода к одной и той же проблеме подходят с совершенно разных точек зрения. X - это техническое решение технической проблемы, но сеть развилась как необходимость решения социальной проблемы - как я могу взять ресурсы с удаленного сервера и отобразить их на своем локальном компьютере, и сделать это легко и просто а удобно?
Сеть «победила», потому что она решила проблему, с которой сталкивается все больше людей. Подумайте об автомобильной аналогии: роскошные седаны и грузовики якобы решают одну и ту же проблему: как перевозить что-то из одного места в другое.
Грузовик решил техническую проблему буквально, как перевезти что-то из пункта А в пункт Б, и для этого он работает довольно хорошо. Легковой автомобиль стал необходимостью для того, чтобы люди чувствовали себя комфортно во время путешествий и перевозили больше людей и меньше навоза. Это стало необходимостью, которая требовала удобства. Таким образом, со временем количество легковых автомобилей намного превысило количество пикапов на дороге (полагаю, основываясь на наблюдении за движением в Чикаго, может быть, в Техасе все по-другому?) :-)
Таким образом, как и аналогия между легковыми и грузовыми автомобилями, сеть и X11, возможно, решают одну и ту же техническую проблему, но служат совершенно разным целям.
источник
Вы сравниваете яблоки с грушами. X windows - это разделение визуализации содержимого экрана на локального клиента, который может быть подключен тонким проводом к источнику содержимого. Это действительно расширение вычислительной модели эпохи «стеклянных тел» в область высококачественной графики. X возник в эпоху, когда ПК все еще были довольно слабыми, и большая часть реальных вычислений производилась на Unix или мэйнфреймах. Идея состояла в том, чтобы использовать возможности относительно дешевых «X-терминалов» и относительно медленных сетей, чтобы графически сделать эти серьезные вычислительные ресурсы доступными.
Причина, по которой это не победило на Mac и ПК, заключается в том, что их разработка всегда была обусловлена желанием поддерживать высококачественную графику в локальных приложениях, включая игры, редакторы и бизнес-графику. Поддержка резидентных сетевых приложений - это запоздалая мысль.
источник