Załóżmy, że następujące dwa założenia są prawdziwe.
- Twoja cała baza użytkowników ma dostęp szerokopasmowy wszędzie
- Istnieje wyimaginowana przeglądarka X, która implementuje całą roboczą specyfikację grup HTML5 i WHATWG, konsekwentnie i wszyscy użytkownicy używają przeglądarki X.
Jakie są nieodłączne ograniczenia komercyjnej publicznej aplikacji internetowej HTML5, do której potrzebujemy komercyjnych publicznych aplikacji komputerowych?
Interesują mnie ograniczenia aplikacji internetowych bez wtyczek, które nie polegają na mostkach Flash / Java / SilverLight / itp. W celu uzyskania dodatkowych funkcji ani na wtyczkach przeglądarki w celu uzyskania dodatkowych funkcji.
Możliwe ograniczenia, które nie mają zastosowania:
- Bazy danych? Mamy WebSQL i indexedDB.
- Plik IO? Mamy interfejs API plików HTML5, który zarówno odczytuje, jak i pisze.
- Prędkość? W ostatnim wyścigu silnika JavaScript przeglądarka nie jest już wolna. Natywny C ++ jest tylko 3 razy szybszy niż silnik V8 chrome.
- Narzędzia programistyczne? Sieć dojrzała i dostępna jest cała gama narzędzi, których nie można wymienić.
- Zamknięte źródło? Tak, cały kod jest open source. Jest to obosieczny miecz i istnieje wiele opinii na temat używania zamkniętego lub otwartego kodu źródłowego. Osobiście uważam, że zalety otwartego kodu przeważają nad wadami.
- JavaScript / HTML5? Argumenty takie jak „Osobiście uważam HTML5 i EcmaScript za okropne platformy programistyczne” nie liczą się.
Znane ograniczenia:
- Krytyczny kod czasu rzeczywistego / bezpieczeństwa (ściśle tajny) nie należy do sieci ani nie może. Musi być napisany w niskim, kontrolowanym języku, takim jak C lub C ++.
- Każde narzędzie, które musi wchodzić w interakcję z obcym sprzętem innej firmy podłączonym do komputera, będzie miało trudności z rozmową z aplikacją internetową.
Istnieje również cały zestaw programów, które nie należą do sieci. Systemy operacyjne, sterowniki, oprogramowanie serwera, niskopoziomowe interfejsy API. Zdaję sobie z tego sprawę, ale nie klasyfikuję ich jako „komercyjnych” aplikacji, są to rodzaje oprogramowania, które można wstępnie zainstalować na komputerach.
Nawiasem mówiąc, wiem, że te dwa założenia są okropnie nierealne, ale możemy je zrealizować za 5/10/20/30 lat. Interesuje mnie rodzaj aplikacji i funkcje aplikacji, które czynią je całkowicie niekompatybilnymi z Internetem.
Motywacja:
Punkt:
Biorąc pod uwagę zestaw problemów, w których aplikacja komputerowa jest prawidłowym rozwiązaniem.
- Dlaczego aplikacja internetowa nie jest prawidłowym rozwiązaniem?
- Jak rozpoznać, czy mogę używać aplikacji internetowej jako rozwiązania.
Próbowałem usunąć główne trudności z aplikacjami internetowymi (połączenie internetowe i obsługa przeglądarki), twierdząc, że nie istnieją.
Poza tym aplikacje offline HTML5 i Modernizr są na dobrej drodze do rozwiązania obu tych problemów.
Jakie są inne trudności z tworzeniem aplikacji internetowych?
Odpowiedzi:
Z czubka mojej głowy ...
źródło
Zasadniczo wszystko, co można dopasować do modelu serwer / klient, może być dobrą aplikacją internetową, a ispo wręcz przeciwnie można powiedzieć, że to prawda. Trend przechodzenia do Internetu minął tak szybko, ponieważ widząc, jak większość programów można zamodelować w Model / Kontroler / Widok, programy mogą podzielić model i kontroler z jego widoku.
Oczywiście ze względów wydajnościowych niektóre kontrolery są umieszczane również po stronie klienta, aby uniknąć przeciążenia serwera błędnymi żądaniami i danymi.
Chodzi mi jednak o to, jakie programy nie pasują do architektury modelu / kontrolera / widoku, ponieważ prawdopodobnie są to te same programy, które nigdy nie zostały przekonwertowane na aplikacje internetowe. Dobrym przykładem, który przychodzi na myśl, są systemy operacyjne, harmonogramy zadań, wiersz polecenia, ochrona przed wirusami, ochrona przed programami szpiegującymi. Każdy z nich prawdopodobnie nie jest zaimplementowany na stronie internetowej, ponieważ nie pasuje do modelu. I to nie przypadek, że każdy z tych programów jest silnie zależny od twojego systemu. Większość wymaga bezpośredniego dostępu do sprzętu, podczas gdy inne wymagają po prostu większego bezpieczeństwa, aby można je było uruchomić i nie można ufać, że zrobią to strony internetowe.
Oczywiście Google całkowicie dostosowuje tę koncepcję do swojego nowego systemu operacyjnego. Podobno, w przeciwieństwie do systemu Windows, nie jest to po prostu system, który zaczął korzystać z Internetu, ale raczej system w dużym stopniu od niego zależny. Wkrótce może się okazać, że wszystkie te programy zostaną udostępnione online, umożliwiając dostęp do sprzętu i oprogramowania, biorąc pod uwagę ścisłe uwierzytelnianie certyfikatu, aby uniemożliwić tylko dowolnej witrynie, ale raczej zaufanym stronom. Zależy mi na tym, aby wymyślić, co wymyślą, ponieważ myślę, że za 20 lat komputery nie będą już produkowane z oprogramowaniem do zainstalowania. Raczej wszystkie usługi będą dostępne online.
źródło
Oprogramowanie, nad którym pracuję, ma teraz aspekt pulpitu, a także aspekt sieciowy właśnie dlatego, że musi gromadzić dane z zewnętrznych urządzeń peryferyjnych. Potrzebne są sterowniki i program kliencki do wypełnienia luki między urządzeniem a siecią.
Nie wyklucza to jednak aplikacji internetowych, ponieważ tego rodzaju aplikacje komputerowe mogą być cienkie, a logika znajduje się głównie na serwerze.
Z drugiej strony, jeśli chodzi o przetwarzanie w chmurze i masową wirtualizację, można powiedzieć, że żadna aplikacja nie musi być koniecznie ograniczana przez ograniczenia i luki w zabezpieczeniach technologii internetowej. Uruchamianie aplikacji komputerowych ze zwirtualizowanego środowiska na głupim terminalu (podobnie jak Citrix) stało się znacznie łatwiejsze do osiągnięcia i może być kolejną „modą” dla programistów.
Najważniejsze jest to, że jest teraz większy wybór niż kiedykolwiek przedtem i znacznie więcej gadających głów, grających w technologię jutra jako „najlepszy” sposób.
źródło
Ok, oto rubla: ta przeglądarka ze swej natury będzie niepewna. Więc prosisz nas o kompromis między nimi. Jednak pokonanie tego i założenie, że mamy javascript (do którego nawiązałeś w swoim poście), to odpowiedź, że nie ma aplikacji, której nie można napisać przy użyciu samego HTML5 / Javascript. Zakładamy jednak, że przeglądarka nie przeszkadza.
Ta rzecz ma lokalny magazyn db, może nawiązywać połączenia z dowolną inną platformą za pomocą żądań HTTP (które RESTafarian powie ci, że jest wystarczająca) i może rysować (przez Canvas) prawie wszystko, co chcesz. Istnieją już gry 3D napisane przy użyciu otwartych standardów (OpenGL ish) i istnieją interfejsy API do robienia wszystkiego, co chcesz.
Jedyną prawdziwą wadą jest szybkość. Wykonywanie tych wywołań API HTTP do innych systemów (baz danych) potrwa. Przetwarzanie żądań FILE (COM1 :) zajmie trochę czasu (na przykład odczyt przez urządzenie szeregowe w systemie Windows), więc są to obszary problematyczne, których oczekiwałbym. Oczywiście zakładam również, że sterowniki są pisane tak, aby uzyskać do nich dostęp jak pliki, co, jestem pewien, nie jest już prawdą. Ale mogliby ujawnić taki mechanizm;)
Dla użytkownika niewiele będzie inaczej.
źródło