Dlaczego nierealistyczne jest oczekiwanie, że wszystkie przeglądarki będą obsługiwać te same standardy? [Zamknięte]

12

Idealnie byłoby, gdybyśmy mieli różne przeglądarki obsługujące te same standardy i ten sam kod, dający taki sam wynik we wszystkich przeglądarkach.

To się jeszcze nie wydarzyło. Jakie są powody dlaczego?

użytkownik928345
źródło
1
„Ten sam kod daje taki sam wynik we wszystkich przeglądarkach”. - nie do tego służą standardy. „Ten sam kod działa przewidywalnie we wszystkich przeglądarkach” jest bliżej.
tdammers
1
Zadaję
1
Niestety nie ... liczyłem jednak na to od dłuższego czasu.
Corv1nus
Tylko raz sieć, którą znamy, jest martwa gopher.
dmckee --- były moderator kotek
Ponieważ W3C jest okropnie zarządzaną organizacją, która nie nadąża za tempem technologii. To prawie wszystko.
Jordan

Odpowiedzi:

18

Nie, to nie jest realistyczne, ponieważ specyfikacje są czasami mylące i wszyscy rozumieją coś inaczej niż inni. W końcu jesteśmy tylko ludźmi. Może istnieć tylko jeden prawdziwy standard, gdy jest tylko jeden dostawca z jedną wersją produktu.

Joel napisał doskonały artykuł na ten temat, zatytułowany Zestawy słuchawkowe Martian .

Myślę, że zacytuję go tutaj, ponieważ jest to najlepsze wytłumaczenie, dlaczego nigdy tego nie zobaczymy, dopóki zaangażowani będą różni dostawcy:

Te dokumenty są bardzo mylące. Specyfikacje są pełne instrukcji, takich jak „Jeśli pole bloku rodzeństwa (które nie unosi się i nie jest absolutnie ustawione) podąża za polem docierania, to pole docierania staje się pierwszym śródliniowym polem bloku bloku. Run-in nie może się uruchomić w bloku, który już zaczyna się od run-in lub który sam jest run-in. ” Ilekroć czytam takie rzeczy, zastanawiam się, jak ktokolwiek poprawnie dostosowuje się do specyfikacji.

Na rynku istnieje także konkurencja i ewolucja. Weźmy na przykład pola autouzupełniania. Każda duża przeglądarka już je ma, ale nie ma zdefiniowanego standardu. W3C jest po prostu zbyt wolny i zanim ten standard zostanie wprowadzony, istnieje już 5 różnych implementacji z różnymi zachowaniami na wolności, które musisz wspierać, jeśli chcesz być konkurencyjny. Innym doskonałym przykładem tego problemu jest osadzanie filmów.

To powiedziawszy: Tak długo, jak potrzebujesz obsługiwać różne przeglądarki i środowiska, przygotuj się na zmiany.

Sokół
źródło
11

Nie, ponieważ W3C w wielu specyfikacjach powierza odpowiedzialność za implementację gdzieś implementatorom UA (implementatorom przeglądarki). Dlaczego tak mówię, ponieważ zazwyczaj piszę moje artykuły bezpośrednio ze specyfikacji W3C i widzę te przypadki. Na przykład W3C mówi, że przeglądarki powinny wyrazić zgodę użytkownika na udostępnienie swojej pozycji (przez Geolocation API ), ale nie mówi, jak powinien o to poprosić. Może to spowodować, że różne typy wiadomości będą wyświetlane inaczej (wyskakujące, zsuwane itp.) W różnych przeglądarkach.

Ogólnie możemy powiedzieć, że:

Dopóki istnieje pewna pluralistyczna implementacja wymagań, spójność między przeglądarkami jest trudna do osiągnięcia .

Widzimy spójne przeglądarki tylko wtedy, gdy W3C bezwzględnie informuje programistów przeglądarki, co ma robić.

Saeed Neamati
źródło
Dobry, Saeed =) +1
Falcon
Dzięki @Falcon. To było miłe z mojego pytania drugiego. Jednak ten otrzymał wiele głosów oddanych i usunął: D. Myślę, że wszyscy wiemy, że pod tym względem IE jest najbardziej niestandardową przeglądarką.
Saeed Neamati
7

Nie wydarzy się w opisanej przez ciebie formie.

Jednak; jeśli kodujesz zachowawczo, nie trzeba wiele pisać kodu, który działa niezawodnie i przewidywalnie we wszystkich nowych przeglądarkach. Przeszliśmy już długą drogę w ciągu ostatniej dekady - nawet IE obecnie poprawnie wdraża duży podzbiór rekomendacji W3C, wystarczający do tego, aby faktycznie stworzyć strony internetowe niezależne od przeglądarki.

Oczywiście, jeśli chcesz robić rzeczy, których nie ma w zaleceniach, lub korzystać z funkcji, które są niejasne, lub nadal są nieprawidłowo implementowane (lub wcale), jesteś na własną rękę.

tdammers
źródło
1

Jest mało prawdopodobne, że nastąpi to wkrótce - w rzeczywistości posunę się aż do stwierdzenia, że ​​kiedy / jeśli tak się stanie, to silny znak, że świat się zmienił i po prostu nie dba już o przeglądarki internetowe .

Problem jest dość prosty: większość ograniczeń pisania nowych standardów dla jeszcze fajniejszych rzeczy, które mogłyby zrobić przeglądarki , to brak (nawet rozsądnej) zgodności z istniejącymi standardami. Patrząc na to z nieco innej strony, minuty przeglądarki są zgodne z istniejącymi standardami (lub nawet są dość zbliżone do zgodności), jest prawie pewne, że przynajmniej kilka osób zacznie myśleć: „Ale czy nie byłoby fajnie, gdybyśmy mogliby ... ”, a następnie zrobią jedną z dwóch rzeczy: albo wdrożą swój pomysł w jednej przeglądarce, a następnie pracują nad standaryzacją swojego pomysłu (prawie nieuchronnie, zanim jakakolwiek inna przeglądarka go wdroży) lub pracować nad napisaniem standardu dla tego zachowania, nawet jeśli żadna przeglądarka go jeszcze nie implementuje.

Najważniejsze jest to, że wdrażanie standardów w przeglądarkach prawie nieuchronnie pozostaje w tyle za wynalezieniem nowych standardów, z którymi należy się dostosować. Jedynym sposobem, w jaki przeglądarki mogą to wszystko nadrobić, jest rezygnacja z pisania / projektowania nowych rzeczy do zrobienia przez przeglądarki.

Jednocześnie czuję się zobowiązany do wskazania, że ​​jest mniej więcej odwrotnie: jest to stale rosnący zestaw standardów, z którymi przeglądarki coraz bardziej się dostosowują. Nie tak dawno temu najlepszy wynik w przeglądarce Acid3 uzyskał 93/100. Tak się składa, że ​​to dokładnie ten sam wynik, który IE obecnie otrzymuje ...

Jerry Coffin
źródło
0

Idealnie byłoby, gdybyśmy mieli różne przeglądarki obsługujące te same standardy i ten sam kod, dający taki sam wynik we wszystkich przeglądarkach.

Rodzi to pytanie, dlaczego potrzebujemy różnych przeglądarek. Jeśli wszyscy robią w zasadzie to samo, wystarczy jedna przeglądarka dla wszystkich. To byłoby rzeczywiście idealne. Koniec z bezużytecznym powielaniem wysiłków i kodem specyficznym dla przeglądarki. Ludzie w końcu mogli zacząć budować na solidnych podstawach.

ThomasX
źródło