Web neden uzak uygulamaların alanını kazandı ve X değil?


19

X Pencere Sistemi 25 yaşında, dün doğum günü vardı (15'lerde).

Muhtemelen bildiğiniz gibi, en önemli özelliklerinden biri, sunucu tarafının ve istemci tarafının Microsoft, Apples veya Wayland'ın pencere sistemlerinin sahip olmadığı bir şekilde ayrılmasıdır.

Günlerde (belirsiz ifadeler için özür dilerim) birçok X'in sunucu ve istemcinin bu ayrılması nedeniyle pencereleri oluşturmanın diğer yollarına hâkim olacağına ve kullanıcının ona tıklayıp yazdığı sırada uygulamanın başka bir yerde çalıştırılmasına izin verdiğine inanıyordu. evde kendi bilgisayar.

Bu kullanım açık bir şekilde varlığını sürdürmektedir, ancak en iyi ihtimalle marjinalleştirilmiştir. Bir sunucuda çalışan programları yazıp kullandığımızda neredeyse her zaman web'i html / css / js ile kullanırız.

Web neden kazandı ve X olmadı? Web için kullanılan teknolojiler (adı geçen html / css / js) bir karışıklıktır. Tüm arka uç çerçevelerle (Rails, Django ve hepsi) birlikte gerçekten gezinmek için bir orman. Yine de web yaratıcılık ve ilerleme ile gelişirken, uzak X uygulamaları desteklemiyor.


6
İkisi bile uzaktan karşılaştırılamaz. X-server bağlantıları uzak bir uygulama çalıştırmama ve GUI'yi yerel olarak görüntülememe izin veriyor , bu da uzak kaynakları yerel bir istemciye yüklememe izin vermekten tamamen farklı bir kullanım örneği.
Martijn Pieters

3
Bir fark olduğunu kabul etmiyorum. Web istemcimi (tarayıcımı) bir sunucuya (yerel veya uzak) bağladığımda (web-) uygulamamın GUI'sini görüntüleyebiliyorum. Tıpkı X oturumuyla uygulamamın GUI'sini görüntüleyebildiğim gibi.
Martin Josefsson

4
Bir X11 programı yazmayı deneyin ve bir HTML sayfasıyla karşılaştırın - ayrıca gereken bant genişliğini karşılaştırın. Ek olarak, WWW X11'in yerini almadı, Gopher'in yerini aldı.

2
Pieters: Tabii, sayfa istemcide oluşturulur ve JS istemcide çalışır, ancak bu yalnızca teknik özelliklerdir. Çoğu zaman, kod sunucu tarafında çalışır (php, java, .net, python, ruby, neyse). Uygulamada, her ikisi de uygulamaların bir sunucuda çalışması ve bir istemcide gösterilmesi için arabirimlerdir. X ve web bunu farklı şekillerde yapar, ama bunun özü budur.
Martin Josefsson

14
Teknoloji yetişkin eğlence endüstrisi tarafından validasyonu geçmediği için, bir teknolojinin genel olarak benimsenmesinde gerekli bir adım (çıplak kadınların resimlerinin X sistemlerinde yeterince hızlı bir şekilde bulunmadığını söylemenin süslü bir yolu).
dasblinkenlight

Yanıtlar:


22

Şu anda tamamen açık ve temel görünüyor, ancak dünya çapında ağın katil yeniliği köprü oldu. X bir modem bağlantısı üzerinden tamamen kullanılamaz olsa bile, tek bir tıklama ile tamamen yeni bir sunucuda tamamen yeni bir işlem başlatamaması, bu tür bir kullanım durumu için benimsenmesini engelleyecektir.


1
Bu çok doğru bir cevap olabilir. Ayrıca web istemcileri Apple ve Microsoft işletim sistemlerinde de çalıştı.
Martin Josefsson

Köprü, World Wide Web'in bir yeniliği değildi. Daha önce birçok kez, örneğin 80'lerde ve 90'larda popüler bir program olan Apple'ın Hypercard'ında olduğu gibi, bir Web Tarayıcısı ile pek çok ilginç benzerliğe sahipti. Hipermetin ve hiperlink kavramı, Xanadu Projesi ile 60'lara kadar uzanıyor ve Tim Berners-Lee, 90'ların başında CERN'de kendi ağ tabanlı hipermetin uygulamasını yaratmadan önce birçok formatta birçok kez uygulandı.
Charles Salvia

3
@CharlesSalvia: HTML köprülerinin atılımı URL'den kaynaklanıyordu. Özellikle Evrensel yönü: küresel, çalışmak için yeterli merkezi otoriteye sahip ve belirli bir medya türüne veya teknolojisine bağlı değil. Önceki teknolojileriniz çok, çok daha az evrenseldi.
MSalters

17

Çünkü X, bir uygulama yazmak için bir CS derecesine sahip olmanızı gerektirir. Web, yazma yeteneğine sahip olmanızı gerektirir (hatta bu değil).

Özellikle web sadece html olduğu ilk günlerde. Bir terminal açabilir ve 10 dakika içinde çalışan bir ekran oluşturabilir ve ardından anında geri bildirim ile etkileşimli olarak geliştirebilirsiniz. Bu düşük giriş çubuğu, büyük kullanıcı alımını teşvik etti. Öte yandan bir X-Server uygulaması oluşturmak deneyimli programcılar için bile önemsiz bir görevdir.

Web'in işlevsellik açısından X uygulayıcısına doğrudan rakip olması ve aynı GUI gibi yetenekleri sağlaması 10 yıl sürdü. Bu işlev, zaman içinde dil yığınına eklenmiştir ve geliştiricilerin bir sonraki özellik eklenmeden önce bir dizi özellikte ustalaşmasına olanak tanımaktadır; bu nedenle teknolojik karmaşıklığın kademeli olarak genişlemesi düşük çubuğu korumuştur (halihazırda tarlada olan ve bir sürü insan için). Şimdi sahaya atlamak 10 yıl öncesine göre çok daha zor ama yine de mümkün ve web'in anında geri bildirimi öğrenmeyi daha tatmin edici hale getiriyor (insanlar sürücülerini güçlendirmek için hızlı tatminlere ihtiyaç duyuyorlar).

Maliyet başka bir itici güçtür. Bir X-Server geliştirmek için yeterli programlama becerilerini öğrenmenin maliyeti oldukça önemlidir. Ardından, uygulamanızı çalıştıracak sunucuların kullanılabilirliği de maliyeti artırdı. HTML yazmayı öğrenmek pratikte "Merhaba Dünya" sayfasını açmak ve çalıştırmak için hiçbir şey değildi ve internet servis sağlayıcıları size bir web bağlantısı almak için ilham vermek için ücretsiz barındırma sağladı. Böylece ücretsiz pratik yapabilirsiniz. Sonunda iş barındırma ihtiyacı zaman barındırma şirketlerinin kullanılabilirliği büyüdü ve maliyeti her zaman nispeten ucuz olmuştur.


1
X üzerinde kullanılan bir uygulama yazmak için X api'yi anlamanız gerektiğini varsayıyorsunuz. Ancak bir web uygulaması yazmak için HTTP'yi anlamanız gerekmediği gibi, X altında çalışan bir uygulama yazmak için X'i anlamanız gerekmez. Bunu tek bir dilde, tercih ettiğiniz dilde yazabilirsiniz üstte bir GTK kütüphanesi var. Html ve css ve js ve bir serveride dili öğrenmekten çok daha kolay. Bunun özü: Bir web sitesini yayınlamak için bir http sunucusu yazmanız gerekmediği gibi, bir X uygulaması sunmak için bir X sunucusu yazmanız gerekmez.
Martin Josefsson

Oradaki analizinize katılmıyorum. Modern bir web uygulaması yazmanın, X uygulaması yazmanın neredeyse 10 yıl önce olduğu kadar karmaşık olduğuna dair bir fikriniz olsa da. X-Application yazmak hala önemsiz bir süreç değildir. Tıpkı bir windows uygulaması yazmak gibi. Önemli bir programlama deneyimi yapmayan herhangi birinin yeteneğinin ötesinde. Öte yandan, bir HTML sayfası hazırlamak önemsizdir ve 10 dakika içinde (yeni başlayanlar tarafından bile) yapılabilir. Böylece hızlı bir şekilde yeniden yaptırıma ve hızlı bir şekilde deneme yeteneğine yol açar. Bu giriş için çok daha düşük bir çubuk yapar.
Martin York

GTK, web kurulduktan hemen sonra mevcut değildi.
user16764 16:12

@ user16764: Bu doğru değil. 1997'de GTK kullanıyordum (ilk ne zaman başladıklarından emin değillerdi). Web (HTML / HTTP'de olduğu gibi) o zamana kadar kurulmuş olabilir, ancak çok fazla değil. Demek istediğim, web tarayıcısı sadece 92'de ana akışa getiriliyordu (İlk gördüğümde). X'in bundan önce kullanılabilecek birkaç pencere yöneticisi var. Ben twm (Tom'un pencere yöneticisi inanıyorum) ve bir diğer biraz daha yüksek seviye bir (ki ben unutmak) kullanarak hatırlıyorum ama 90 ((çok)) seçim bol (ve onlar daha önce kullanılabilir (sanırım)).
Martin York

@LokiAstari: Pencere Yöneticilerini ve GUI kütüphanelerini karıştırıyorsunuz. Kesin bir çakışma olsa da (GNOME / Gtk, KDE / Qt) kesinlikle aynı değiller. Pencere yöneticilerinde bile hala acı dünyalarınız vardı.
MSalters

11

Cevap "birçok teknoloji teknik nedenlerden ziyade keyfi tarihsel veya sosyo-politik nedenlerle benimsenmiştir." Belirli bir problem için en iyi çözüm her zaman baskın teknoloji haline gelmez. (Aslında, nadiren yapar.)

HTTP sunucularının Masaüstü uygulamalarıyla eşit etkileşimli uygulamalar oluşturmak için kullanıldığı 2012'de, HTTP ve X arasındaki karşılaştırma ilginçtir. Geriye dönüp bakıldığında, X zengin, etkileşimli ağa dağıtılmış uygulamalar geliştirmek için muhtemelen daha iyi bir teknolojidir. Etkileşimli Masaüstü benzeri uygulamalar, HTTP gibi durum bilgisi olmayan, belge odaklı bir teknolojiyle iyi eşleşmez ve bu uyumsuzluk, geçmişte çerezler, oturumlar vb. Gibi durum oluşturmak için her türlü geçici çözüm (hack) ile sonuçlanmıştır.

Ancak HTTP'nin asıl amacı, masaüstü benzeri durumlu uygulamalar geliştirmek değildi. Belgeleri almak ve bilgileri görüntülemekti - anında görüntülenebilecek diğer belgelere bağlanabilecek bilgiler. Bağlantılı bir belge koleksiyonu fikri, Theodore Nelson'ın " Xanadu Projesi " ile 1960'lara kadar uzanıyor . Web'in, Nelson'ın hipermetin kavramının bir uygulaması olması gerekiyordu ; bu, basılı sayfayı - ansiklopedi veya gazete gibi - bilgisayarlaştırmaya çalışan bir kullanıcının tek bir tıklama ile bir makaleden diğerine anında "atlamasına" izin verdi.

Bu fikrin hipermetin / köprüler kavramını uygulayan ancak hiçbir zaman ağlar üzerinde kullanılmayan Hypercard gibi birçok yinelemesi geldi ve gitti . World Wide Web, CERN'in hipermetin kavramının ağ tabanlı uygulamasıydı ve muhtemelen çekildi, çünkü Tim Berners-Lee, tarayıcı kodu kütüphanesini ücretsiz olarak yayınladı ve başkalarının denemesine izin verdi. Bu nihayetinde Netscape'in selefi Marc Andreesen'in Mozaik tarayıcısına yol açtı. Ve gerisi tarih.


Ancak ... pek çok teknolojide olduğu gibi, HTTP veya hipermetin orijinal tasarımcılarının gerçekten fazla düşünmediği yeni olasılıklar ortaya çıkmaya başladı. Web ticarileştirildi ve insanlar alışveriş sepetleri ve giriş bilgileri gibi durum bilgisi olan etkileşimlere sahip web siteleri geliştirmeye başladı. HTTP'nin durumsuz ve belgeye yönelik doğasının Masaüstü benzeri uygulamalar için çok uygun olmadığı giderek daha belirgin hale geldi. Ama bu noktada, çok geç kalmıştı. Herkes zaten HTTP kullanıyordu. Yani, bugün buradayız, çeşitli hacky AJAX uygulamaları Masaüstü uygulamaları gibi davranmak için ellerinden geleni yapıyorlar.


3

Teknolojiler şimdi benzer sorunları çözmeye çalışabilirler, ancak geçmişte olmadılar.

Mevcut HTML yığını, zaman içinde gerçekten basit metin belgesi aktarımından, az komut dosyası içeren "görsel" belgelere, tam özellikli uygulama platformuna dönüştü.

HTML'nin başladığı sırada, hiç kimse uzak bilgisayara bağlanmayı ve orada grafik uygulamaları çalıştırmayı hayal edemezdi. Ancak internet daha iyi gecikme ve verim aldıktan sonra bu mümkün oldu. Ancak o zaman, HTML zaten mevcuttu. Herkes bunun, müşterilere ve kullanıcılara uzak makinede çalışan grafik uygulamasına erişim sağlamanın bir yolu olduğunu biliyordu.

Ve her "özgür" sistemde olduğu gibi, her şeyi "sıfırlamak" ve bu sefer daha iyi yapmak için yeniden başlamak imkansız hale geldi. Bu yüzden HTML / CSS / JS'yi kapatıp kullanmalıyız ve sadece onu destekleyen kişilerin nihayet yıllarca süren mirası ile birlikte akıllıca ve gömülmesini diliyoruz.

Bu, "Web neden kazandı?" Herhangi bir rekabet yoktu, web her şey başlamadan kazandı.


1
HTML'nin başladığı sırada, NSCA HTTP sunucusu ve SGI'sı ile zaten sunucu tarafı bilgi işlem vardı. Çoğu uygulama metin teslim etti, ancak Google haritalarının atası olan S / B özel haritaları oluşturabilen birini hatırlıyorum.
mouviciel

Görüntü haritaları aslında bir önceki yüzyılın son on yılının ilk yıllarına dayanıyor.
MSalters

1

Prensipte ikisinin benzer olduğuna katılıyorum. "Bir sunucuda kodu nasıl çalıştırabiliriz, ancak uzaktaki bir istemcide nasıl görselleştirme sağlayabiliriz?" Sorusunu sorarsanız, bağımsız ekiplerin her iki çözümden de faydalanabileceğini düşünmek mantıklıdır.

Birinin bazı yönlerden diğerlerinden daha popüler olmasının nedeninin, ikisinin aynı soruna tamamen farklı perspektiflerden yaklaşmasıdır. X teknik bir soruna teknik bir çözümdür, ancak web sosyal bir sorunu çözme ihtiyacı olarak gelişti - uzak bir sunucudan kaynakları alıp yerel makinemde nasıl görüntüleyebilirim ve bunu kolay bir şekilde nasıl yapabilirim? ve kullanışlı?

Web "kazandı" çünkü daha fazla insanın yaşadığı bir sorunu çözdü. Bir araba benzetmesi düşünün: hem lüks sedanlar hem de kamyonlar görünüşte aynı sorunu çözüyor: bir şeyi bir yerden diğerine nasıl taşıyacağınız.

Kamyon, A noktasından B noktasına bir şeyin nasıl taşınacağıyla ilgili teknik sorunu çözdü ve bunun için oldukça iyi çalışıyor. Binek otomobil, insanların seyahat ederken rahat olmaları ve daha fazla insan ve daha az gübre taşıma ihtiyacı olarak gelişti. Kolaylık gerektiren bir zorunluluk haline geldi. Bu nedenle, zamanla, çok fazla binek otomobil sayısı, yoldaki kamyonet sayısından çok daha ağır bastı (Sanırım, Chicago trafiğinin gözlemine dayanarak, belki Teksas'ta farklı? :-)

Yani, araba / kamyon benzetmesi gibi, web ve X11'in ikisi de aynı teknik sorunu tartışmalı olarak çözüyorlar, ancak tamamen ayrı amaçlara hizmet ediyorlar.


1

Elmaları armutla karşılaştırıyorsunuz. X pencereleri, ince bir kabloyla içeriğin kaynağına bağlanabilen yerel bir istemciye ekran içeriğinin oluşturulmasını ayırmakla ilgilidir. Gerçekten "glass tty" döneminden hesaplamalı modelin yüksek kaliteli grafiklerin bir uzantısı. X, PC'lerin hala oldukça zayıf olduğu dönemden kaynaklandı ve gerçek hesaplamanın çoğu unix veya ana bilgisayar kutularında yapıldı. Fikir, bu ciddi hesaplama kaynaklarının grafiksel olarak kullanılabilir olmasını sağlamak için nispeten ucuz "X terminallerinin" ve nispeten yavaş ağların gücünü kullanmaktı.

Bunun Mac'lerde ve PC'lerde kazanamamasının nedenleri, geliştirmelerinin her zaman oyunlar, editörler ve iş grafikleri de dahil olmak üzere yerel uygulamalarda üst düzey grafikleri destekleme arzusuyla yönlendirilmesidir . Ağda yerleşik uygulamaları desteklemek son zamanlardaki bir düşüncedir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.