İdealist HTML5 web uygulamasının herhangi bir sınırlaması var mı


11

Aşağıdaki iki varsayımın doğru olduğunu varsayalım.

  • Tüm kullanıcı tabanınızın her yerde geniş bant erişimi var
  • HTML5 ve WHATWG gruplarının taslak şartnamesinin tamamını uygulayan hayali bir tarayıcı X vardır, sürekli olarak ve tüm kullanıcılar X tarayıcısını kullanır.

Ticari genel masaüstü uygulamalarına ihtiyaç duyduğumuz ticari bir genel HTML5 web uygulamasının temel kısıtlamaları nelerdir ?

Ekstra özellikler için Flash / Java / SilverLight / etc köprülerine veya ekstra özellikler için tarayıcı eklentilerine güvenmeyen eklentisiz web uygulamalarının sınırlamalarıyla ilgileniyorum.

Geçerli Olmayan Olası Sınırlamalar:

  • Veritabanları? WebSQL ve indexedDB var.
  • ES dosyası? Hem okuma hem de yazma yapan HTML5 Dosya API'miz var.
  • Hız? Son JavaScript motor yarışında, tarayıcı artık yavaş değil. Yerel C ++, kromun V8 motorundan sadece 3 kat daha hızlıdır.
  • Geliştirme araçları? Web olgunlaştı ve listelenemeyecek kadar çok sayıda araç mevcut.
  • Kapalı Kaynak? Evet, tüm kod açık kaynak. Bu iki ucu keskin bir kılıçtır ve kapalı kaynak veya açık kaynak kodunun kullanımı hakkında çok sayıda görüş vardır. Ben şahsen açık kaynak kodunun avantajlarının dezavantajlardan daha ağır bastığına inanıyorum.
  • JavaScript / HTML5? "Ben şahsen HTML5 ve EcmaScript'in korkunç geliştirme platformları olduğunu düşünüyorum" gibi argümanlar sayılmaz.

Bilinen Sınırlamalar:

  • Gerçek zamanlı / güvenlik (çok gizli) kritik kodu web'e ait değildir veya olamaz. C veya C ++ gibi düşük düzeyde, yüksek kontrol edilebilir bir dilde yazılması gerekir.
  • Bilgisayarınıza takılı üçüncü bir yabancı donanım parçasıyla etkileşime girmesi gereken herhangi bir araç, web uygulamanızla konuşmakta zorlanır.

Web'e ait olmayan bir dizi program da vardır. İşletim sistemleri, sürücüler, sunucu yazılımı, düşük seviyeli API'ler. Bunun farkındayım ama bunları "ticari genel" uygulamalar olarak sınıflandırmıyorum, bunlar bilgisayarlara önceden yüklenebilen yazılım türüdür.

Bir yana, iki varsayımın korkunç bir şekilde gerçekçi olmadığını biliyorum, ancak bunları 5/10/20/30 yıl içinde başarabiliriz. Uygulamaların türü ve uygulamaların web ile tamamen uyumlu olmayan özellikleriyle ilgileniyorum .

Motivasyon:

Nokta:

Bir masaüstü uygulamasının geçerli bir çözüm olduğu sorunlar kümesi göz önüne alındığında.

  • Bir web uygulaması neden geçerli bir çözüm değil?
  • Bir web uygulamasını çözüm olarak kullanıp kullanamayacağımı nasıl belirlerim?

Web uygulamaları (internet bağlantısı ve tarayıcı desteği) ile ilgili ana zorlukları, var olduklarını iddia ederek gidermeye çalıştım.

Dahası, HTML5 çevrimdışı uygulamaları ve Modernizr her iki sorunu da çözme yolunda ilerliyor.

Web uygulaması geliştirmeyle ilgili diğer zorluklar nelerdir?


2
Birincil sınırlama: web uygulaması için en az maliyet getirecek iş modeli ile bağlantılı, yeterince insan kullanmak isteyecek iyi bir fikir. Gerisi çok ikinci.
SF.

"İçsel sınırlamalar nelerdir?" "İçsel sınırlama" ile ne demek istiyorsun? Bu kelimeler ne anlama geliyor? Hangi bilgileri istiyorsun? Problemin ne? Soru nedir?
S.Lott

@ SF "web" kelimesini kaldırın. Bir soruna ve çözüme ihtiyacınız var. Bu çözüm bir uygulama ise, sorunu çözmek, bir kullanıcı tabanına ve işe yarayacak bir iş modeline sahip olmak gerekir. Sadece bir masaüstü uygulaması olan sorunları bir dizi çözüm olarak karşılaştırıyorum ve bir web uygulamasının neden çalışmadığını soruyorum.
Raynos

Doğru doğru, soru çok belirsizdi, umarım asıl sorunun ne olduğunu açıkladım.
Raynos

Ne? "Ticari genel masaüstü uygulamalarına ihtiyaç duyduğumuz ticari bir genel web uygulamasının temel sınırlamaları nelerdir?" Bu, "Web çalışmadığı için masaüstüne ne zaman ihtiyacımız var?" Öyleyse, bunların hepsi kopyalardır: programmers.stackexchange.com/search?q=desktop+web
S.Lott

Yanıtlar:


11

Kafamın üstünde ...

  • G / Ç'sini bir dosya dışında başka yollarla dışa aktaran özel donanıma erişin. Bu bilimsel ekipman, endüstriyel makine veya düz CD kaydedici ve eğim desteğine sahip bir sayısallaştırıcı tablet olsun.
  • sadece HTTP ve diğer protokollerin küçük bir ailesi. İstediğiniz gibi ikili veriler aktararak dilediğiniz gibi yuva oluşturamazsınız. Bu, diğer sistem ve hizmetlerle bağlantıyı büyük ölçüde sınırlar.
  • Hiçbir aklı başında geliştirici Javascript'te grafik yoğun bir oyun yaratamaz. Geniş bant, genellikle ihtiyaç duyulan DVD / HDD işlemleriyle neredeyse karşılaştırılamaz. Tuvalde 3D desteği, oyun motorlarıyla elde ettiğinizden çok daha düşüktür. Joystick'i desteklemenin bir yolu yok, aynı anda birden fazla tuşa basma, açık doğa hile yapmayı kolaylaştırıyor. Ancak öncelikle performans düşüşü kabul edilemez.
  • Ağır kum havuzu. İşletim sistemine derinlemesine entegre olan şeyler elde edemezsiniz. Ekran görüntüleri, antivirüs, sanal sürücüler, arka plan görevleri ve sistem tepsisi, yönetim görevleri vb.
  • görev açısından kritik olamaz. Her zaman geniş bant bağlı olarak temel yazılım çalıştırmak için çoğu şirket çalıştırmak için tercih edilen yolu değildir.

1
2. WebSockets bir TCP soketi gösterir. Bir tarayıcıda UDP'ye erişiminiz yok, ancak TCP size çok daha fazla seçenek sunuyor.
Raynos

2
3. WebGL bazı ilginç ilerlemeler kaydediyor. OpenCL desteği yakın zamanda başladı. Tabii hala masaüstü oyun geliştirmenin 5 yıl gerisindedir ancak mümkün olmaya başlıyor.
Raynos

2
@Raynos: WebSockets soket benzeri işlevsellik sağlar, ancak belirli bir el sıkışma gerektirir, mevcut sistemlere kolayca uyarlayamazsınız, sunucu tarafı değişikliklerine ihtiyacınız vardır. Hiçbir genel ssh istemci web uygulaması anlamına gelir. WebGL bazı gfx problemlerini çözebilir, yine de toplu veri gereksinimlerine (gigabayt doku ve kafes), denetleyici G / Ç çözümlerine çözüm olmayabilir, ayrıca ses desteği şu anda zayıf bir şekilde zayıftır.
SF.

1
4. W3C Aygıt API'sı (ki ben bilmiyordum) aslında sanal alan sorunlarını çözme yolunda.
Raynos

1
Bu yanıtı ilk yazdığınızdan beri birçok şey değişti. Tarayıcı kendi başına meşru bir yazılım platformu haline geldi; cevabınızda tarif ettiğiniz şeylerin çoğu artık mümkün. Evet, yeterli çaba gösterildiğinde tarayıcıda çalışan hemen hemen tüm oyunları veya uygulamaları hayal edebiliyorum.
Robert Harvey

3

Esasen, sunucu / istemci modeline sığabilecek her şey iyi bir web uygulaması yapabilir ve tam tersi ispo da doğru olduğu söylenebilir. Web'e geçme eğilimi çok hızlı bir şekilde arttı, çünkü çoğu programın Model / Denetleyici / Görünüm'e nasıl modellenebileceğini görünce, programlar modeli ve denetleyiciyi görüş alanından ayırabilir.

Elbette verimlilik nedenleriyle, sunucuyu hatalı istekler ve verilerle aşırı yüklemekten kaçınmak için bazı denetleyiciler de istemci tarafına yerleştirilir.

Demek istediğim: hangi programlar modele / denetleyiciye / yazılım yazılımına uymuyor, çünkü bunlar muhtemelen web uygulamalarına dönüştürülmemiş aynı programlar. Akla gelen iyi örnekler işletim sistemleri, görev zamanlayıcılar, komut istemi, virüs koruması, casus yazılım korumasıdır. Her biri büyük olasılıkla bir web sitesinde uygulanmaz çünkü modele uymaz. Ve bu programların her birinin sisteminize büyük ölçüde bağımlı olması tesadüf değildir. Birçoğu donanıma doğrudan erişim gerektirirken, diğerleri sadece çalışabilmek için daha yüksek bir güvenlik gerektirir ve internet web siteleri tarafından yapılması güvenilemez.

Elbette Google, bu konsepti yeni işletim sistemlerine tamamen uyarlıyor. Sözde, Windows'un aksine, sadece interneti kullanmak için büyüyen bir sistem değil, daha çok ona bağımlı bir sistem. Yakında tüm bu programların çevrimiçi olarak sunulduğunu görebilirsiniz, sadece herhangi bir sitenin bunu yapmasını önlemek yerine güvenilir sitelere izin vermek için katı bir sertifika kimlik doğrulaması verildiğinde donanımınıza ve yazılımınıza erişime izin verin. Ne ortaya çıktıklarını görmek için endişeliyim, çünkü 20 yıl içinde düşündüğümden, bilgisayarlar artık yüklenebilir yazılımlarla üretilmeyecek. Aksine, tüm hizmetler çevrimiçi olarak sunulacaktır.


0

• Bilgisayarınıza takılı üçüncü bir yabancı donanım parçasıyla etkileşime girmesi gereken herhangi bir araç, web uygulamanızla konuşmakta zorlanır.

Üzerinde çalıştığım yazılımın tam olarak üçüncü taraf çevre birimlerinden veri toplaması gerektiğinden masaüstü ve web tabanlı bir yönü var. Aygıtlar ve Web arasındaki boşluğu kapatmak için sürücüler ve istemci masaüstü programı geliştirme ihtiyacı.

Bu, web uygulamalarını hariç tutmaz, ancak bu tür masaüstü uygulamaları çoğunlukla sunucuda bulunan mantıkla ince olabilir.

Diğer not ise, bulut bilişim ve kitlesel sanallaştırma yönüyle, hiçbir uygulamanın web teknolojisinin sınırlamaları ve güvenlik açıklarıyla sınırlandırılması gerekmediğini söyleyebiliriz. Masaüstü uygulamalarını sanal bir ortamdan aptal bir terminalde (Citrix gibi) çalıştırmak çok daha kolay hale geldi ve bir sonraki geliştirme "fad" olabilir.

Sonuç olarak, şimdiye kadar hiç olmadığı kadar çok seçenek ve yarının teknolojisini "En İyi" yol olarak oynayan çok daha fazla konuşma kafası var.


1
İlginçtir, masaüstü uygulamalarını bir web tarayıcısında sanallaştırılmış bir ortamdan çalıştırabilirsiniz. Çoğu VNC sunucusunun eski özelliği, varsayılan olarak http: // [uzak makine]: 5800 / P - masaüstü uygulaması olarak web uygulaması olarak kullanılabilen bir VNC görüntüleyici Java uygulamasıdır.
SF.

0

Aşağıdaki iki varsayımın doğru olduğunu varsayalım.

  • Tüm kullanıcı tabanınızın her yerde geniş bant erişimi var
  • HTML5 ve WHATWG gruplarının taslak şartnamesinin tamamını uygulayan hayali bir tarayıcı X vardır, sürekli olarak ve tüm kullanıcılar X tarayıcısını kullanır.

Ticari genel masaüstü uygulamalarına ihtiyaç duyduğumuz ticari bir genel HTML5 web uygulamasının temel kısıtlamaları nelerdir ?

Ekstra özellikler için Flash / Java / SilverLight / etc köprülerine veya ekstra özellikler için tarayıcı eklentilerine güvenmeyen eklentisiz web uygulamalarının sınırlamalarıyla ilgileniyorum.

Tamam, o zaman ovmak: Bu tarayıcı doğası gereği güvensiz olacaktır. Yani bizden ikisi arasında bir denge kurmamızı istiyorsun. Ancak, bunun üstesinden gelmek ve javascript (varsayalım ki, sizin yazınızda bahsettiğiniz) varsayılarak, sadece HTML5 / Javascript kullanılarak yazılamayacak bir uygulama olmadığı cevabı. Ancak, engel olmayan bir tarayıcı olduğunu varsayıyoruz.

Şey yerel bir db mağaza vardır, HTTP istekleri (RESTafarian size yeterli olduğunu söyleyecektir) kullanarak herhangi bir diğer platform çağrı yapabilir ve hemen hemen istediğiniz her şeyi (Tuval üzerinden) çizebilirsiniz. Açık standartlar (OpenGL ish) kullanılarak yazılmış 3D oyunlar zaten var ve istediğiniz her şeyi yapmak için API'ler var.

Tek dezavantajı hızdır. Bu HTTP API çağrılarının diğer sistemlere (veritabanlarına) yapılması zaman alacaktır. FILE (COM1 :) isteklerini işlemek zaman alacaktır (örneğin Windows'da bir seri aygıt üzerinden okumak için), bu yüzden beklediğim sorun alanlarıdır. Tabii ki, sürücülerin dosya gibi erişilmek üzere yazıldığını da varsayıyorum, ki artık doğru olmadığından eminim. Ancak böyle bir mekanizmayı açığa çıkarabilirler;)

Kullanıcı için, pek bir şey farklı olmayacak.

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.