왜 웹이 원격 응용 프로그램의 공간을 차지하고 X는 그렇지 않았습니까?


19

X Window 시스템은 25 세이며 어제 생일을 맞았습니다 (15 일).

아시다시피, 가장 중요한 기능 중 하나는 Microsoft, Apple 또는 Wayland의 윈도우 시스템이없는 방식으로 서버 측과 클라이언트 측을 분리하는 것입니다.

당시에는 (모호한 표현이 유감스럽게도) 많은 사람들이 X가 서버와 클라이언트의 분리로 인해 창을 만드는 다른 방법보다 우세하다고 믿었습니다. 집에서 자신의 컴퓨터.

이 용도는 여전히 존재하지만 기껏해야 한계가 있습니다. 우리는 서버에서 실행되는 프로그램을 작성하고 사용할 때 거의 항상 웹을 html / css / js로 사용합니다.

왜 웹이 이기고 X는 이기지 못했습니까? 웹에 사용 된 기술 (html / css / js)은 엉망입니다. 모든 백엔드 프레임 워크 (Rails, Django 및 all)와 결합하여 실제로 탐색하는 정글입니다. 여전히 웹은 창의성과 진보로 번창하지만 원격 X 앱은 그렇지 않습니다.


6
두 사람은 원격으로 비교할 수 없습니다. X 서버 연결을 통해 원격 응용 프로그램을 실행하고 로컬로 GUI를 볼 수 있습니다. 이는 로컬 리소스에 원격 리소스를로드 할 수있게하는 것과는 완전히 다른 사용 사례입니다.
Martijn Pieters

3
차이가 있다는 데 동의하지 않습니다. 웹 클라이언트 (브라우저)를 서버 (로컬 또는 원격)에 연결하면 내 (웹) 앱의 GUI를 볼 수 있습니다. X 세션으로 앱의 GUI를 볼 수있는 것처럼.
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

하이퍼 링크는 월드 와이드 웹의 혁신이 아니 었습니다. 웹 브라우저와 많은 유사점을 가진 80 년대와 90 년대의 인기있는 프로그램 인 Apple의 Hypercard와 같이 여러 번 구현되었습니다. 하이퍼 텍스트 및 하이퍼 링크의 개념은 Project Xanadu와 함께 60 년대로 거슬러 올라 갔으며 Tim Berners-Lee가 90 년대 초 CERN에서 자체 네트워크 기반 하이퍼 텍스트 구현을 만들기 전에 여러 형식으로 여러 번 구현되었습니다.
Charles Salvia

3
@CharlesSalvia : HTML 하이퍼 링크의 혁신은 URL 때문입니다. 특히 보편적 인 측면 : 작동하기에 충분한 중앙 권한 만 있고 하나의 특정 미디어 유형 또는 기술과 관련이없는 글로벌. 이전 기술은 훨씬 보편적이지 않았습니다.
MSalters

17

X는 응용 프로그램을 작성하려면 CS 학위가 있어야합니다. 웹을 사용하려면 타이핑 할 수있는 기능이 있어야합니다.

특히 웹이 html 일 때 초기에. 터미널을 열고 10 분 안에 작동하는 디스플레이를 구축 한 후 즉각적인 피드백으로 대화식으로 개선 할 수 있습니다. 이 낮은 진입 바는 엄청난 사용자 흡수를 유발했습니다. 반면에 X-Server 응용 프로그램을 작성하는 것은 숙련 된 프로그래머에게도 쉽지 않은 작업입니다.

웹이 기능면에서 X 응용 프로그램과 직접 경쟁하는 데 10 년이 걸렸으며 GUI와 같은 기능을 제공합니다. 이 기능은 시간이 지남에 따라 언어 스택에 추가되어 개발자가 다음 기능을 추가하기 전에 한 기능 세트를 마스터 할 수 있습니다. 따라서 기술 복잡성의 점진적인 확장으로 인해 이미 현장에 있고 많은 사람들이 낮은 기준을 유지하고 있습니다. 지금 현장에 뛰어 드는 것은 10 년 전보다 훨씬 어렵지만 여전히 가능하고 웹의 즉각적인 피드백은 학습을 더 만족스럽게 만듭니다 (사람들은 드라이브를 강화하기 위해 빠른 만족이 필요합니다).

비용은 또 다른 동인입니다. 실제로 X-Server를 개발하기에 충분한 프로그래밍 기술을 배우는 비용은 상당합니다. 또한 애플리케이션을 실행할 수있는 서버의 가용성으로 인해 비용이 증가했습니다. HTML 작성법을 배우는 것은 "Hello World"페이지를 설치하고 인터넷 서비스 제공 업체가 무료 호스팅을 제공하여 웹 연결을 얻는 데 도움이되지 못했습니다. 그래서 무료로 연습 할 수 있습니다. 결국 비즈니스 호스팅이 필요할 때 호스팅 회사의 가용성이 높아졌고 비용은 항상 상대적으로 저렴했습니다.


1
X를 통해 사용되는 앱을 작성하려면 X API를 이해해야한다고 가정합니다. 그러나 웹 앱을 작성하기 위해 HTTP를 이해할 필요가없는 것처럼 X를 실행하여 X에서 실행되는 앱을 작성하기 위해 X를 이해할 필요는 없습니다. 선호하는 언어와 한 언어로 작성할 수 있습니다. 상단에 GTK 라이브러리가 있습니다. HTML과 CSS, js 및 서버 측 언어를 배우는 것보다 훨씬 쉽습니다. 요점 : 웹 사이트를 게시하기 위해 http 서버를 작성할 필요가없는 것처럼 X 앱을 제공하기 위해 X 서버를 작성할 필요가 없습니다.
Martin Josefsson

나는 당신의 분석에 동의하지 않습니다. 현대 웹 응용 프로그램을 작성하는 것이 10 년 전 X 응용 프로그램을 작성하는 것만 큼 복잡하다는 점이 있습니다. X-Application을 작성하는 것은 여전히 ​​간단한 프로세스가 아닙니다. Windows 응용 프로그램을 작성하는 것과 같습니다. 상당한 프로그래밍 경험을하지 않은 사람의 능력을 뛰어 넘습니다. 반면에 HTML 페이지를 올리는 것은 간단하며 10 분 안에 (초보자도) 수행 할 수 있습니다. 따라서 빠른 재 집약과 신속하게 실험 할 수 있습니다. 이로 인해 진입 바가 훨씬 낮아집니다.
Martin York

웹이 설정된 후까지 GTK를 사용할 수 없었습니다.
user16764

@ user16764 : 사실이 아닙니다. 1997 년에 GTK를 사용하고있었습니다 (처음 시작했을 때는 확실하지 않습니다). 웹 (HTML / HTTP에서와 같이)은 그 당시에 있었지만 그렇게 많이 확립되지 않았을 수 있습니다. 나는 웹 브라우저가 92 년에 메인 스트림으로 가져 왔음을 의미합니다 (처음 볼 때). X에는 ​​그 전에 사용할 수 있었던 몇 가지 다른 창 관리자가 있습니다. 나는 twm (내가 믿는 톰의 창 관리자)과 다른 약간 높은 레벨 하나 (내가 잊어 버린)를 사용하는 것을 기억하지만 90에서 (너무 많은) 중에서 선택할 수있는 것이 많았습니다 (그리고 그것들은 그 전에 가능했습니다 (생각합니다)).
Martin York

@LokiAstari : Window Manager와 GUI 라이브러리를 혼동하고 있습니다. 명확한 오버랩 (GNOME / Gtk, KDE / Qt)이 있지만 확실히 동일하지는 않습니다. 창 관리자라도 여전히 고통의 세계를 가졌습니다.
MSalters

11

그 대답은 "많은 기술들이 기술적 인 이유보다는 임의의 역사적 또는 사회 정치적인 이유로 채택된다"는 것입니다. 주어진 문제에 대한 최상의 솔루션이 항상 지배적 인 기술이되는 것은 아닙니다. (실제로는 거의 없습니다.)

HTTP 응용 프로그램을 데스크톱 응용 프로그램과 비교하여 대화 형 응용 프로그램을 만드는 데 사용하는 2012 년에는 HTTP와 X의 비교가 흥미 롭습니다. 뒤늦게 살펴보면 X는 아마도 풍부한 대화식 네트워크 배포 응용 프로그램을 개발하기위한 더 나은 기술 일 것입니다. 대화 형 데스크탑 유사 응용 프로그램은 HTTP와 같은 상태 비 저장, 문서 지향 기술에 잘 매핑되지 않으며, 이러한 불일치로 인해 쿠키, 세션 등과 같은 상태를 만들기위한 모든 종류의 해결 방법 (해킹)이 발생했습니다.

그러나 HTTP의 원래 목적은 상태 기반 데스크톱 유사 앱을 개발하는 것이 아닙니다. 그것은 문서를 검색하고 즉시 표시 할 수있는 다른 문서와 연결될 수있는 정보를 표시 하는 것이 었습니다 . 링크 된 문서 모음에 대한 아이디어는 Theodore Nelson의 " Project Xanadu " 와 함께 1960 년대로 거슬러 올라갑니다 . 웹은 넬슨의 하이퍼 텍스트 개념을 구현 한 것으로 , 백과 사전이나 신문과 같이 인쇄 된 페이지를 컴퓨터 화하여 사용자가 한 번의 클릭으로 한 기사에서 다른 기사로 즉시 "점프"할 수 있도록했습니다.

하이퍼 텍스트 / 하이퍼 링크의 개념을 구현했지만 네트워크를 통해 배포 된 적이없는 Apple의 Hypercard같이이 아이디어의 많은 반복이 이루어졌습니다 . 월드 와이드 웹 (World Wide Web)은 CERN의 네트워크 기반 하이퍼 텍스트 개념 구현으로, Tim Berners-Lee가 무료로 브라우저 코드 라이브러리를 공개하여 다른 사람들이 실험 할 수있게 되었기 때문에 시작되었을 것입니다. 결국 넷스케이프의 전신 인 마크 안드레 센의 모자이크 브라우저로 이어졌다. 그리고 나머지는 역사입니다.


그러나 ... 많은 기술과 마찬가지로 HTTP 또는 하이퍼 텍스트의 원래 디자이너가 실제로 그렇게 많이 생각하지 않은 새로운 가능성이 나타났습니다. 웹이 상용화되면서 사람들은 쇼핑 카트 및 로그인과 같은 상태 기반 대화 형 기능을 갖춘 웹 사이트를 개발하기 시작했습니다. HTTP의 상태 비 저장 및 문서 지향 특성이 데스크탑과 같은 응용 프로그램에 적합하지 않다는 것이 점점 더 분명해졌습니다. 그러나 그 시점에서 너무 늦었습니다. 모두가 이미 HTTP를 사용하고있었습니다. 그래서 오늘날 우리는 다양한 해키 AJAX 애플리케이션이 데스크탑 앱인 척하기 위해 최선을 다하고 있습니다.


3

이 기술은 현재 비슷한 문제를 해결하려고 시도했지만 과거에는 그렇지 않았습니다.

현재 HTML 스택은 스크립팅이 거의없는 "시각적"문서를 통한 간단한 텍스트 문서 전송에서 완전한 기능을 갖춘 응용 프로그램 플랫폼으로 시간이 지남에 따라 발전했습니다.

HTML이 시작될 당시 아무도 원격 컴퓨터에 연결하여 그래픽 응용 프로그램을 실행하는 것을 꿈꿀 수 없었습니다. 인터넷의 대기 시간과 처리량이 개선 된 후에 만 ​​가능해졌습니다. 그러나 당시 HTML은 이미 존재했습니다. 누구나 이것이 고객과 사용자가 원격 시스템에서 실행되는 그래픽 응용 프로그램에 액세스 할 수있는 방법이라는 것을 알고있었습니다.

그리고 모든 "무료"시스템과 마찬가지로, 전체를 "재설정"하고 이번에 더 잘하기 위해 새로 시작하는 것이 불가능 해졌습니다. 그렇기 때문에 우리는 HTML / CSS / JS를 종료하고 사용해야하며,이를 지원하는 사람들 만이 마침내 오랜 세월의 유산과 함께 그것을 감명하고 묻기를 바랍니다.

이것은 "웹이 왜 이겼습니까?"라는 질문에 대한 답입니다. 경쟁이 없었습니다. 모든 것이 시작되기 전에 웹이 승리했습니다.


1
HTML이 시작될 당시 NSCA HTTP 서버와 SGI를 사용하여 이미 서버 측 컴퓨팅이있었습니다. 대부분의 응용 프로그램은 텍스트를 제공했지만 Google지도의 조상 인 B / W 사용자 지정지도를 렌더링 할 수있는 것을 기억합니다.
mouviciel

이미지 맵은 실제로 지난 세기의 마지막 10 년 초로 거슬러 올라갑니다.
MSalters

1

원칙적으로 두 가지가 비슷하다는 데 동의합니다. "서버에서 코드를 실행할 수 있지만 원격 클라이언트에서 시각화를 제공하는 방법"이라는 질문을하는 경우 독립 팀이 두 솔루션 중 하나를 생각 해낼 수 있다고 생각하는 것이 합리적입니다.

특정 측면에서 하나가 다른 측면보다 더 인기있는 이유는 두 가지가 완전히 다른 관점에서 동일한 문제에 접근하기 때문입니다. X는 기술적 인 문제에 대한 기술 솔루션이지만 웹은 사회적 문제 를 해결해야 할 필요성으로 진화했습니다. 어떻게 원격 서버에서 리소스를 가져 와서 로컬 컴퓨터에 표시하고 쉬운 방식으로 수행 할 수 있습니까? 그리고 편리합니까?

웹은 더 많은 사람들이 경험 한 문제를 해결했기 때문에 "원했다". 자동차의 비유를 생각해보십시오. 고급 세단 형 자동차와 트럭은 같은 문제를 표면적으로 해결하는 방법을 표면적으로 해결합니다.

트럭은 말 그대로 A 지점에서 B 지점으로 물건을 운반하는 방법의 기술적 문제를 해결했으며 그 점에서 잘 작동합니다. 승용차는 사람들이 여행 할 때 편안함을 느끼고 더 많은 사람들과 덜 분뇨를 운반 할 필요성으로 발전했습니다. 편의성이 요구되는 것이 필수가되었습니다. 따라서 시간이 지남에 따라 승용차의 수는 도로의 픽업 트럭 수를 훨씬 능가했습니다 (시카고 트래픽을 관찰 한 결과 텍사스에서는 다를 수 있습니다. :-)

따라서 자동차 / 트럭 비유와 마찬가지로 웹과 X11은 모두 동일한 기술적 문제를 해결하지만 완전히 별개의 목적을 제공합니다.


1

사과와 배를 비교하고 있습니다. X 윈도우는 화면 컨텐츠의 렌더링을 로컬 클라이언트로 분리하는 것입니다. 로컬 클라이언트는 얇은 와이어로 컨텐츠 소스에 연결할 수 있습니다. 이것은 "유리 tty"시대에서 고품질 그래픽 영역까지 전산 모델의 확장입니다. X는 PC가 여전히 엉망인 시대에 시작되었으며 실제 계산의 대부분은 유닉스 또는 메인 프레임 박스에서 수행되었습니다. 그 아이디어는 상대적으로 저렴한 "X 터미널"과 상대적으로 느린 네트워크의 힘을 활용하여 이러한 심각한 계산 리소스를 그래픽으로 사용할 수 있도록하는 것이 었습니다.

이것이 Mac과 PC에서 이기지 못한 이유는 게임, 편집기 및 비즈니스 그래픽을 포함한 로컬 응용 프로그램 에서 고급 그래픽을 지원하려는 욕구 때문에 개발이 항상 주도했기 때문 입니다. 네트워크 상주 응용 프로그램 지원은 최근에 고려됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.