Чому Інтернет завоювала простір віддалених додатків, а X - ні?


19

Системі X Window 25 років, вчора (15-го) був день народження.

Як ви, напевно, знаєте, однією з найважливіших особливостей є відокремлення серверної та клієнтської частини таким чином, як ні у віконних системах Майкрософт, Яблука чи Вейленда.

Ще в ті часи (вибачте за неоднозначне фразування) багато хто вважав, що X буде домінувати над іншими способами створення вікон через таке розділення сервера та клієнта, що дозволяє програмі запускатись на сервері деінде, поки користувач клацає та набирає її власний комп’ютер вдома.

Це використання, очевидно, все ще існує, але в кращому випадку є маргінальним. Коли ми пишемо та використовуємо програми, що працюють на сервері, ми майже завжди користуємося Інтернетом за допомогою html / css / js.

Чому Інтернет перемогла, а X - ні? Технології, що використовуються для Інтернету (згаданий html / css / js), - це безлад. У поєднанні з усіма задніми рамками (Rails, Django та всіма) це дійсно джунглі для навігації через. І все-таки Інтернет процвітає творчістю та прогресом, тоді як віддалені додатки X цього не роблять.


6
Ці два навіть далеко не порівнянні. З'єднання X-сервера дозволяють мені запускати віддалений додаток і переглядати його GUI локально, що є зовсім іншим випадком використання, ніж дозволяє мені завантажувати віддалені ресурси в локальний клієнт.
Martijn Pieters

3
Я не згоден, що різниця є. Коли я підключаю свій веб-клієнт (браузер) до сервера (локально чи віддалено), я можу переглянути графічний інтерфейс свого додатка (веб-). Так само, як я можу переглядати графічний інтерфейс свого додатка з X сеансом.
Мартін Йозефссон

4
Спробуйте написати програму X11 і порівняйте її зі сторінкою HTML - також порівняйте необхідну пропускну здатність. Крім того, WWW не замінив X11, він замінив Gopher.

2
Пітерс: Звичайно, сторінка надається клієнту, а JS працює на клієнті, але це лише технічні характеристики. Частіше за все код працює на стороні сервера (php, java, .net, python, ruby, що завгодно). На практиці вони обидва інтерфейси для додатків, які запускаються на сервері та показуються клієнтові. X і web робить це по-різному, але в цьому суть.
Мартін Йозефссон

14
Оскільки технологія не пройшла перевірку з боку індустрії розваг для дорослих, необхідний крок у впровадженні цієї технології (це хитромудрий спосіб сказати, що фотографії оголених жінок не стали доступними в системах X досить швидко).
dasblinkenlight

Відповіді:


22

Зараз це здається абсолютно очевидним і принциповим, але вбивчим нововведенням всесвітньої мережі Інтернет стало гіперпосилання. Навіть якщо X не був повністю непридатним для використання через модемне посилання, його неможливість запустити абсолютно новий процес на абсолютно новому сервері за допомогою одного клацання може перешкодити його прийняттю для подібного випадку використання.


1
Це може бути правильною відповіддю. Крім того, веб-клієнти також працювали на Apple і Microsoft OS.
Мартін Йозефссон

Гіперпосилання не було нововведенням всесвітньої павутини. Він реалізовувався багато разів раніше, наприклад, в популярній програмі 80-х та 90-х років Apple «Гіперкарт» з великою кількістю подібностей до веб-браузера. Концепція гіпертексту та гіперпосилань сягає 60-х років, проект Project Xanadu, і він реалізовувався багато разів у багатьох форматах, перш ніж Тім Бернерс-Лі остаточно створив власну мережеву реалізацію гіпертексту в CERN на початку 90-х.
Чарльз Сальвія

3
@CharlesSalvia: Прорив гіперпосилань HTML був пов’язаний із URL-адресою. Зокрема, його універсальний аспект: глобальний, з достатньою кількістю центральних повноважень для роботи і не пов'язаний з одним конкретним типом або технологією засобів масової інформації. Ваші попередні технології були далеко, набагато менш універсальними.
MSalters

17

Оскільки X вимагає, щоб ви мали ступінь CS, щоб написати заявку. Хоча Web вимагає, щоб ви мали можливість вводити (навіть не те).

Особливо в перші дні, коли веб був просто html. Ви можете відкрити термінал і створити робочий дисплей за 10 хвилин, а потім інтерактивно вдосконалити його за допомогою миттєвого зворотного зв’язку. Ця низька смуга входу стимулювала масове використання користувачів. З іншого боку, побудова програми X-Server - це нетривіальне завдання навіть для досвідчених програмістів.

Минуло 10 років, щоб Інтернет став прямим конкурентом X-аплікатоїну з точки зору функціональності та надавав такі самі графічні інтерфейси, як і здібності. Ця функція була додана до мовного стеку з часом, що дозволяє розробникам освоювати один набір функцій до того, як буде додано наступне; тому це поступове розширення технологічної складності підтримало низьку планку (для людей, які вже в цій галузі і їх багато). Стрибки в поле зараз набагато складніше, ніж це було 10 років тому, але це все-таки можливо, і миттєвий зворотній зв'язок в Інтернеті робить навчання більш приємним (людині потрібно швидке задоволення для посилення своїх приводів).

Вартість - ще один драйвер. Фактично вартість вивчення достатньої кількості навичок програмування для розвитку X-сервера є значною. Тоді додатково наявність серверів для запуску вашої програми призвела до зростання витрат. Навчитися писати HTML практично не було для того, щоб запустити та запустити сторінку "Hello World", і Інтернет-провайдери надали безкоштовний хостинг, щоб надихнути вас на підключення до Інтернету. Тож ви могли безкоштовно практикувати. Коли вам, зрештою, потрібен бізнес-хостинг, наявність хостинг-компаній зростала, а вартість завжди була відносно дешевою.


1
Ви припускаєте, що для того, щоб написати додаток, який використовується понад X, вам потрібно зрозуміти X api. Але так само, як вам не потрібно розуміти HTTP, щоб написати веб-додаток, вам не потрібно розуміти X, щоб написати додаток, який працює під X. Ви можете написати його однією мовою, тією, яку ви бажаєте, і просто мати бібліотеку GTK зверху. Шлях простіше, ніж вивчати html, css та js та мову серверного сервера. Суть цього: так само, як вам не потрібно писати http-сервер для публікації веб-сайту, вам не потрібно писати X-сервер, щоб обслуговувати додаток X.
Мартін Йозефссон

Я не згоден з вашим аналізом там. Хоча у вас є сенс у тому, що написання сучасної веб-програми зараз майже настільки ж складно, як і написання X-програми 10 років тому. Написати X-додаток все ще не є тривіальними процесами. Це так само, як написання програми для Windows. Значно виходить за межі можливостей будь-кого, хто не зробив значного досвіду програмування. З іншого боку, розміщення HTML-сторінки є дрібницею, і це можна зробити за 10 хвилин (навіть початківець). Таким чином, це призводить до швидкого відновлення та здатності швидко експериментувати. Це робить її значно нижчою смугою для входу.
Мартін Йорк

GTK не був доступний, поки не було створено Інтернет.
user16764

@ user16764: Це неправда. Я використовував GTK в 1997 році (не впевнений, коли вони вперше почалися, але до цього). Веб (як і в HTML / HTTP), можливо, був створений тоді, але добре налаштований не так вже й багато. Я маю на увазі, що веб-браузер був лише занесений в основний потік у 92 році (вперше я його побачив). У X є кілька інших менеджерів вікон, які були корисні до цього. Я пам’ятаю, що використовував twm (менеджер вікон у Тома, я вважаю) та ще один дещо вищий рівень (який я забуваю), але було з чого вибрати (занадто багато) у 90-х (і вони були доступні до цього (я думаю)).
Мартін Йорк

@LokiAstari: Ви плутаєте менеджери вікон та графічні інтерфейси GUI. Хоча є певне перекриття (GNOME / Gtk, KDE / Qt), вони, звичайно, не тотожні. Навіть з керівниками вікон у вас все ще були болі.
MSalters

11

Відповідь полягає в тому, що "багато технологій прийнято з довільних історичних чи суспільно-політичних причин, а не з технічних причин". Найкращим рішенням даної проблеми не завжди стає домінуюча технологія. (Насправді це трапляється рідко.)

У 2012 році, коли сервери HTTP використовуються для створення інтерактивних програм нарівні з додатками Desktop, порівняння між HTTP та X є цікавим. Заднім числом X, ймовірно, є кращою технологією для розробки багатих, інтерактивних мережевих додатків. Інтерактивні програми, схожі на робочий стіл, не добре відображають таку бездоганну, документоорієнтовану технологію, як HTTP, і ця невідповідність історично призводила до різного роду робочих ситуацій (хак) для створення стану, таких як файли cookie, сеанси тощо.

Але первісна мета HTTP полягала не в розробці програм, подібних на робочий стіл. Потрібно було отримати документи та відобразити інформацію - інформацію, яка могла б посилатися на інші документи, які також можна було миттєво відображати. Ідея пов'язаної колекції документів сягає ще в 1960-ті роки з « Проектом Ксанаду » Теодора Нельсона . Мережа повинна була бути реалізацією концепції Нельсона щодо гіпертексту , яка була спробою комп'ютеризувати надруковану сторінку - як енциклопедія чи газету -, що дозволяє користувачеві миттєво «переходити» з однієї статті до іншої одним клацанням миші.

Багато ітерацій цієї ідеї з'явилося і пішло, як-от Apple Hypercard , яка реалізувала концепцію гіпертексту / гіперпосилання, але ніколи не була розгорнута через мережі. Всесвітня павутина була мережевою реалізацією концепції гіпертексту, яка, можливо, відбулася через те, що Тім Бернерс-Лі безкоштовно випустив свою бібліотеку кодів браузера, що дозволило іншим експериментувати з нею. Це в кінцевому підсумку призвело до браузера "Мозаїка" Марка Андріесена, попередника Netscape. А решта - це історія.


Але ... як і з такою кількістю технологій, почали з'являтися нові можливості, що оригінальні дизайнери HTTP або гіпертексту насправді не надто замислювались. Мережа стала комерціалізованою, і люди почали розробляти веб-сайти, які демонстрували надзвичайну інтерактивність, наприклад, кошики для входу та вхід у систему. Дедалі очевидніше було, що HTTP-тип без громадянства та документації не дуже добре підходить для настільних програм. Але в той момент було просто пізно. Усі вже використовували HTTP. Отже, ось ми сьогодні, з різними прискіпливими програмами AJAX намагаються зробити все, щоб зробити вигляд, що вони є настільними програмами.


3

Технології можуть намагатися вирішити подібні проблеми і зараз, але раніше вони не впевнені.

Поточний стек HTML еволюціонував з часом від дійсно простої передачі текстових документів, через "візуальні" документи з невеликим сценарієм, до повнофункціональної платформи додатків.

У той час, коли почався HTML, ніхто не міг і мріяти про підключення до віддаленого комп'ютера та запуск там графічних додатків. Лише після того, як Інтернет став кращим затримкою та пропускною здатністю, це стало можливим. Але в той час HTML вже був присутній. Усі знали, що це спосіб надати клієнтам та користувачам доступ до графічного додатку, який працює на віддаленій машині.

І як у кожній "вільній" системі, неможливо було "скинути" всю справу і почати заново, щоб зробити це краще цього разу. Ось чому нам потрібно закрити і використовувати HTML / CSS / JS, і лише бажаємо, щоб люди, які його підтримують, нарешті мудрують і поховають разом із давньою спадщиною.

Це відповідає на питання "Чому веб виграла?". Конкуренції не було, веб вигравав ще до того, як все почалося.


1
На той момент, коли почався HTML, вже існували обчислення на стороні сервера, з сервером HTTP NSCA та його SGI. Більшість програм доставляли текст, але я пам’ятаю той, який зміг надати B / W користувальницькі карти, родоначальник Google Maps.
mouviciel

Карти зображень дійсно датуються першими роками останнього десятиліття попереднього століття.
MSalters

1

Я згоден, що в принципі обидва схожі. Якщо ви задаєте питання "як ми можемо запустити код на сервері, але забезпечити візуалізацію на віддаленому клієнті?", Розумно думати, що незалежні команди можуть придумати будь-яке рішення.

Я підозрюю, що причина в одних аспектах популярніша, ніж інша - це те, що двоє підходять до однієї і тієї ж проблеми з абсолютно різних позицій. X - це технічне рішення технічної проблеми, але Інтернет розвинувся як потреба вирішити соціальну проблему - як я можу взяти ресурси з віддаленого сервера та відобразити їх на своїй локальній машині та зробити це легко і зручно?

Мережа "перемогла", оскільки вирішила проблему, з якою стикається більше людей. Подумайте про аналогію автомобіля: і розкішні седани, і вантажівки нібито вирішують одну і ту ж проблему: як перевезти щось з одного місця в інше.

Вантажівка вирішила технічну проблему буквально як перевезти щось з точки А до точки В, і для цього вона працює досить добре. Автомобіль легковика розвивався як потреба людей бути комфортними під час подорожі та перевозити більше людей та менше гною. Це стало необхідністю, яка вимагала зручності. Таким чином, з часом кількість легкових автомобілів далеко перевершила кількість пікапів на дорозі (я здогадуюсь, виходячи з спостереження за перевезенням у Чикаго, можливо, в Техасі це інакше? :-)

Так, як і аналогія автомобілів / вантажних автомобілів, Інтернет і X11, безперечно, вирішують одну і ту ж технічну проблему, але вони служать абсолютно окремим цілям.


1

Ви порівнюєте яблука з грушами. X windows - це розділення візуалізації вмісту екрана на локальний клієнт, який може бути з'єднаний тонким дротом до джерела вмісту. Це дійсно розширення обчислювальної моделі від епохи "скло тти" до області високоякісної графіки. X зародився в епоху, коли ПК ще були досить примхливими, і більшість реальних обчислень проводилися на кодах Unix або Mainframe. Ідея полягала в тому, щоб використати потужність відносно дешевих "X-терміналів" і відносно повільних мереж, щоб зробити ці серйозні обчислювальні ресурси доступними графічно.

Причини, які цього не вигравали на Mac і ПК, полягають у тому, що їх розвиток завжди було зумовлене прагненням підтримувати високу графіку в локальних додатках, включаючи ігри, редактори та ділову графіку. Підтримка мережевих програм-резидентів - це нещодавнє роздуми.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.