Dlaczego nadal używamy DOM w przeglądarce zamiast paradygmatu na pulpicie

11

Z mojego zrozumienia, interfejs sieciowy został opracowany do używania HTML, ponieważ w tym czasie nie było możliwe symulowanie aplikacji w stylu pulpitu w przeglądarce, takiej jak działanie Silverlight i Flash, z powodu ograniczeń przepustowości i możliwej mocy obliczeniowej.

Dlaczego nie było w przeszłości, a teraźniejszość cieszyła się większą akceptacją i naciskała na technologie takie jak Flash / Silverlight? Z mojego doświadczenia wynika, że ​​przyjemniej jest je rozwijać (oczywiście moja opinia), i nie musisz zajmować się zgodnością między przeglądarkami i starszymi przeglądarkami (w większości).

Obsługa postbacków, AJAX itp. Wydaje się dodatkowym niepotrzebnym wysiłkiem w porównaniu do paradygmatu programistycznego aplikacji komputerowych. Czy DOM i jego komplementarne technologie nadal rozwijają się głównie dzięki temu, że Silverlight / Flash wymaga instalacji wtyczki, a niektóre urządzenia mobilne nie obsługują wtyczki?

The Muffin Man
źródło
1
Ponieważ DOM nie jest obywatelem drugiej kategorii. Silverlight i flash to nieszczelne abstrakcje. Możesz łatwo mieć natywne aplikacje typu desktop w przeglądarce użytkownika DOM. Po prostu działa lepiej i integruje się lepiej niż flash lub silverlight.
Raynos

Odpowiedzi:

17

Kilka powodów, które mogę wymyślić, z góry mojej głowy:

  • Tradycyjny stos sieci jest obecnie dość dojrzały; współczesne przeglądarki mają bardzo mało dziwactw, a projektowanie stron internetowych jest dla nich stosunkowo przyjemne, w porównaniu do zaledwie 5 lat temu
  • Chociaż istnieją różnice między przeglądarkami, są one mniej istotne niż różnice między podstawowym systemem operacyjnym a sprzętem
  • Paradygmat żądanie / odpowiedź w rzeczywistości działa bardzo dobrze w przypadku wielu rzeczy, takich jak wyświetlanie treści zawierających dużo tekstu
  • Wyszukiwarki nie lubią treści Flash ani Silverlight
  • Flash i Silverlight są kontrolowane przez jedną firmę; korzystanie z nich oznacza, że ​​przyszłe wsparcie dla Twojego kodu dla platformy będzie na łasce tych firm
  • Wiele rzeczy, które możesz zrobić z HTML, nie można zrobić za pomocą wtyczek: myśl zakładki, kopiuj-wklej, tłumaczenie w locie, niestandardowe arkusze stylów
  • Wtyczki nie działają dobrze w niestandardowych przeglądarkach - pomyśl o przeglądarkach tekstowych, przeglądarkach audio i wielu innych urządzeniach, które mogą wyświetlać strony internetowe
  • Nie można łatwo zautomatyzować klientów Flash lub Silverlight, a prowadzenie stron HTML ze skryptów jest zwykle bardzo proste.
tdammers
źródło
Jeszcze jedna rzecz, o której mogę myśleć: te wtyczki nie są oprogramowaniem typu open source. A niektórzy ludzie po prostu nie ufają rzeczom, z którymi nie mogą sobie poradzić git clone. Oczywiście możesz uzyskać wersje open source, takie jak Gource lub Moonlight, ale nie są one w pełni kompatybilne.
Dr McKay,
2
Właściwie myślałem o argumencie open source, ale nie sądziłem, że jest to wystarczająco duży problem, jeśli chodzi o rzeczywistość (bez względu na to, jak wielkim jestem fanem FOSS, jestem sobą). Argument „na łaskę jednej firmy” jest w pewnym sensie powiązany i znaczący.
tdammers
4

Prosta odpowiedź na pytanie „Dlaczego nie ma aplikacji komputerowych we Flashu” polega na tym, że możesz po prostu napisać je w Adobe Air, ale najwyraźniej tylko niektóre z nich.

Wierzę, że odpowiedź brzmi: ludzie chcą aplikacji internetowych , a nie błyskotliwych aplikacji Flash, i chcą, aby aplikacje internetowe były tak samo jak wszystkie inne aplikacje internetowe, których używają. Osobiście chcę móc korzystać z Flashblockera i nadal mieć pełną funkcjonalność aplikacji.


źródło
3

Jest to bardzo powszechny efekt w naszej branży.
Na przykład osobiście używam haXe i wdrażam kod klienta w programie Flash Player, ponieważ IMHO jest najlepszą platformą internetową, na którą mogę kierować reklamy. Po zakończeniu backendu C # pewnie sprawdzę, czy warto używać Silverlight, chociaż moim osobistym przeczuciem jest to, że on umarł, zanim faktycznie wystartował.

Często zadając sobie pytanie o mój wybór języka, często zadaję sobie pytanie: dlaczego więcej twórców stron internetowych nie używa otwartego, wieloparadyginalnego, ekspresyjnego języka na wiele platform?

Jest wiele powodów, ale zawsze są takie same. Prawidłowy jest osobistą preferencją. Ale często sprowadza się to do ignorancji lub niechęci do nowych / niszowych technologii.
Jeśli chodzi o Flash, miałem wiele argumentów na temat tego, dlaczego ma swoje miejsce i dlaczego go używać. Ludzie głównie twierdzą, że celem Flasha jest tworzenie fantazyjnych witryn, które ładują się od wieków i działają okropnie (i rozpowszechniają wiele innych dezinformacji).
W rzeczywistości jest odwrotnie i potwierdzają to aplikacje takie jak Aviary Phoenix lub Sliderocket oraz gry takie jak Koyotl i Tanki Online . Flash to dojrzała platforma do tworzenia wrażeń podobnych do pulpitu w przeglądarce.

W końcu zbyt wiele strategicznych decyzji jest podejmowanych przez niekompetentnych ludzi, którzy wolą podążać za trendami i raczej ufają fanatykowi blogerów niż ich twórcom. I którzy naprawdę mają w głowie wiele złych pomysłów.

Nowe / niszowe technologie zawsze będą walczyć o akceptację, chyba że naprawdę dokonają przełomu. Ruby na przykład odniosło sukces dzięki Railsom i dużym szumom wokół niego. Flash miał taki przełom dla projektantów, ponieważ w latach 90. ludzie uważali przenikliwość za dobrą i była to pierwsza szeroko rozpowszechniona platforma, która pozwoliła na wdrożenie właśnie tego.
Pomimo Flex, Flash nigdy nie miał takiego przełomu dla programistów. Być może dlatego , że GWT , qooxdoo i wiele innych frameworków do wdrażania w HTML są wystarczająco dobre, po prostu nie używają Flex ani Flash, a jest znacznie więcej programistów Java i JavaScript (najwyraźniej firmy wolą wybierać technologie, w których jest duża liczba potencjalnych pracowników ).

W dzisiejszych czasach nie musisz pisać swojej strony internetowej AJAX. Tak naprawdę nie możesz mieć żadnego zrozumienia HTML i i tak to zrobić, w wybranym przez siebie języku.

Obecnie HTML5 jest bardzo reklamowany i popychany do przodu, a wiele osób wnioskuje z tego śmierć Flasha. Podano wiele wspaniałych powodów, dla których HTML5 jest lepszy niż Flash. Bardziej prawdopodobne jest to, że będziesz mieć coraz więcej głodnych zasobów, rozdętych stron internetowych utworzonych za pomocą HTML5. Bzdury oparte na standardach nie są lepsze niż badziewie na zewnątrz.

W tej chwili dzieje się wiele rzeczy. IPhone i inne podobne urządzenia stworzyły gigantyczny rynek, którego nie było jeszcze 4 lata temu. Standardy sieciowe są wreszcie wdrażane przez wszystkie duże firmy w tym samym kierunku (niejasno).

Osobiście mam tylko nadzieję, że wszystkie zamieszanie ustąpi w ciągu roku lub dwóch, że HTML5 ustabilizuje się, dojrzewa i rozprzestrzenia do tego czasu, podczas gdy Apple ma nadzieję, że przybędzie mniej despotyczne stanowisko, a Flash Player będzie szybszy na platformach mobilnych. I kiedy ten wielki krok zostanie zrobiony, ludzie po prostu wrócą do wyboru odpowiedniego narzędzia do pracy, tak jak to miało miejsce po zakończeniu wojen przeglądarkowych. W tej chwili jest zbyt dużo hałasu, aby ludzie mogli jasno myśleć.

back2dos
źródło
3
Uruchom czytnik ekranu, wyłącz ekran i spróbuj. Czy to nadal działa?
BillThor
1
„Dlaczego więcej twórców stron internetowych nie używa otwartego, wieloparadowego, ekspresyjnego języka wieloplatformowego?” - Masz na myśli JavaScript?
André Paramés
1
@BillThor: W rzeczywistości zależy to od implementacji. Flash Player może współpracować z czytnikami ekranu . Niewiele osób decyduje się na wykorzystanie tych możliwości. Albo dlatego, że ich to nie obchodzi, albo dlatego, że jest to bezcelowe. Bardzo przepraszam za osoby niedowidzące, ale nie widzę żadnej wartości w udostępnianiu aplikacji / gier, które podłączyłem, dla czytników ekranu. Jestem również pewien, że będziesz mieć trudności z używaniem Photoshopa przy wyłączonym ekranie.
back2dos
1
@BillThor: Najwyraźniej nie udało ci się uzyskać sedna mojej wiadomości: ludzie powinni wrócić do korzystania z odpowiedniego narzędzia do pracy zamiast z tego, co jest popularne. HTML jest doskonałym narzędziem dla aplikacji z dużą ilością treści, które można uchwycić za pomocą semantyki. Poza tym nie jest to kanonicznie najlepsze narzędzie.
back2dos,
1
@ back2dos: Nie przegapiłem tego ani trochę. Gdybym użył najlepszego narzędzia do wszystkiego, użyłbym kilkunastu narzędzi, niektóre z nich są niejasne. Konserwacja staje się wówczas niezwykle trudna. Zamiast tego używam narzędzi, z którymi mają do czynienia inni członkowie zespołu. Właściwe narzędzie do projektu nie zawsze jest narzędziem specjalistycznym.
BillThor
1

Wszystkie technologie są dość niedojrzałe. Wystarczy spojrzeć na to, ile zmian nastąpiło w dowolnym 5-letnim bloku. Dzięki technologiom mobilnym / tabletom zmieni się ponownie.

Traktuję to jako połączenie. To nie tylko HTML / DOM lub wtyczki. Widziałem rozszerzenia HTML umożliwiające dostęp do funkcji urządzenia. Wtyczki obsługują zarówno koncepcje pulpitu, jak i sieci, a także wprowadzają własne pomysły.

W zależności od twojej perspektywy jest to dobra lub zła rzecz. W tej chwili mój zespół pracuje w SilverLight (nie dla Internetu). To nie jest zła technologia. Możesz zbudować bardzo potężne, bardzo atrakcyjne aplikacje. Jednak ma dużo złożoność w stosunku do swoich poprzedników (.Net i może Win32), ponieważ nie można było zrobić tyle z tymi technologiami, a oczekiwania były niższe. Obecnie większość programistów piszących dowolne aplikacje często konkuruje (oczekiwania, nie rzeczywista konkurencja) z najlepszymi połączonymi technologiami komputerowymi, internetowymi i mobilnymi (szybkość, funkcje, atrakcyjność, użyteczność, ...)

Jim Rush
źródło