Przeglądarka - zaawansowane oprogramowanie ?

0

Czy waszym zdaniem przeglądarki internetowe to oprogramowanie średnio-zaawansowane czy zaawansowane. Proszę o uzasadnienie odpowiedzi ;)

0

To zalezy jaka przeglądarka. Jej podstawowe zastosowane czyli wysyłanie zapytań do serwera WWW i odbieranie danych to jest sprawa trywialna i można to napisać za pomocą socketów w 15 minut. W językach typu Python można to napisać w minutę. Problem stanowi częściej parsowanie tego co przeglądarka dostaje - html, javascript, otwieranie flashplayera itd
Jeśli chcesz napisać coś takiego na lynx to powiedziałbym że średnio zaawansowane (bo stripujesz wszystkie tagi oprócz linków i obsługujesz cookies), ale jak chcesz napisać coś co faktycznie wyświetla strony to jest to ciężkie zagadnienie (zauważ ile jest przeglądarek z których ludzie korzystają...)

0

Nie zamierzam pisać przeglądarki ;) Pytanie było czysto teoretyczne :)
@Shalom
Wielkie dzięki za odpowiedź.

Mam jeszcze pytanie czy przeglądarka musi implementować jakieś protokoły itd. czy to wszystko wykonuje się po stronie serwera?
I czy oprogramowanie np. typu Office(np. Access) jest bardziej technologicznie zaawansowany od przeglądarki(np. Firefox/IE)?

0
prog4mer napisał(a):

Mam jeszcze pytanie czy przeglądarka musi implementować jakieś protokoły itd. czy to wszystko wykonuje się po stronie serwera?

Słyszałeś o XML, HTML, CSS i JS? No przeglądarka chyba nie wyświetla interaktywnego filmu animowanego streamowanego z serwera...

2
dawidgarus napisał(a)

nie wiedziałem że XML, HTML, CSS i JS to protokoły...

Nie wiedziałem, że w młodym pokoleniu, zamiast mięsa, intelekt jest na kartki:

Mam jeszcze pytanie czy przeglądarka musi implementować jakieś protokoły itd. czy to wszystko wykonuje się po stronie serwera?

  • "itd." czyli nie tylko protokoły
  • protokoły niczego nie wykonują
  • obsługa wymienionych rzeczy odbywa się po stronie klienta, nie serwera.
    Co drugi Dawid na tym forum to...
1
prog4mer napisał(a):

Mam jeszcze pytanie czy przeglądarka musi implementować jakieś protokoły itd. czy to wszystko wykonuje się po stronie serwera?

Protokół to zasady na jakich łączą się ze sobą dwa urządzenia lub aplikacje, więc jakim cudem miałby działać tylko po jednej stronie?

I czy oprogramowanie np. typu Office(np. Access) jest bardziej technologicznie zaawansowany od przeglądarki(np. Firefox/IE)?

W jakim sensie bardziej zaawansowany technologicznie?
Na pewno ma więcej funkcji, ale nie wiem na jakiej zasadzie można by to porównać, żeby miało sens.

1

Niech autor wątku spróbuje napisać własną przeglądarkę i/lub jakiś klon Office'a to sobie sam odpowie na swoje pytania.

8

@a_s_f, przecież to proste. Przeciągasz TWebBrowser na formę, dodajesz kilka TEditów, TButtonów i gotowe.

0

Jak się użyje gotowego silnika to nie jest takie trudne (nie mówię tu o TWebBrowser, które bardziej odpala IE niż jest silnikiem). Używając np. WebKit'a raczej do nadmiernie skomplikowanych rzeczy to nie należy. Silnik jest najtrudniejszy.

0

Prawdziwy trik to zrobienie przeglądarki tak, żeby działała szybko i mało obciążała procka nawet na stronach z dużą ilością animacji i JavaScriptu. Zrobienie czegoś co obsługuje poprawnie standardy, ale ma spore wymagania nie powinno być jakieś mega trudne. Z drugiej strony nie miałoby wiele sensu, bo kto by korzystał z przeglądarki, która np wymaga procka 5 GHz do obsługi Facebooka?

2

Zrobienie czegoś co obsługuje poprawnie standardy, ale ma spore wymagania nie powinno być jakieś mega trudne

Zrobienie czegoś co tylko poprawnie obsługuje standardy to za mało. Zrobienie czegoś co poprawnie wyświetla zwalone strony to jest dopiero trik. Oczywiście można twierdzić, że przeglądarka nie powinna wyświetlać niepoprawnego htmla, ale z takim podejściem raczej ciężko zdobyć użytkowników, no może poza takimi którzy bardziej cenią ideologię niż użyteczność.

0
0x200x20 napisał(a):

Zrobienie czegoś co obsługuje poprawnie standardy, ale ma spore wymagania nie powinno być jakieś mega trudne

Zrobienie czegoś co tylko poprawnie obsługuje standardy to za mało. Zrobienie czegoś co poprawnie wyświetla zwalone strony to jest dopiero trik. Oczywiście można twierdzić, że przeglądarka nie powinna wyświetlać niepoprawnego htmla, ale z takim podejściem raczej ciężko zdobyć użytkowników, no może poza takimi którzy bardziej cenią ideologię niż użyteczność.

Co to znaczy "poprawnie wyswietla zwalone strony"? Jak przeglądarka ma się domyślić, co na mysli mial uzytkownik piszac strone, na ktora nie spelnia standardow/specyfikacji? (ma mu czytać w myslach ?)

2

Jak przeglądarka ma się domyślić, co na mysli mial uzytkownik piszac strone

This is tricky part, babe ;)

1
mich88 napisał(a):

Co to znaczy "poprawnie wyswietla zwalone strony"? Jak przeglądarka ma się domyślić, co na mysli mial uzytkownik piszac strone, na ktora nie spelnia standardow/specyfikacji? (ma mu czytać w myslach ?)

Nie no, aż czytania w myślach nie trzeba. Wystarczy zaobserwować typowe wzorce błędów popełnianych przez debili i postarać się naprawić dokument przed renderowaniem. Dla przykładu:

<div id="content"><p>wtf treść</div>

Większość przeglądarek samodzielnie domknie tag <p>, takich wzorców można znaleźć od ciula, tylko naprawianie niektórych rzeczy może nie być na tyle oczywiste jak na wymienionym wyżej przykładzie.

PS. I to co widziałem ostatnio na stronie geniusza @Docenta:

<table class="auto-style5" border="0" bordercolor="cellpadding=0" cellspacing="0" style="width: 846px; height: 146px">
<div id="quotes">...</div id="quotes">

Nowoczesna przeglądarka musi niestety umieć przebrnąć przez takie cuda.

0
Wibowit napisał(a):

Zrobienie czegoś co obsługuje poprawnie standardy, ale ma spore wymagania nie powinno być jakieś mega trudne.
No nie wiem. Na pewno wymaga maaaaaaaaasy czasu. Nie będzie to hop-siup. Standardy web'owe sumarycznie są ... spore.

Spokojnie można powiedzieć, że kompletne przeglądarki (silnik+reszta) należą do mocno zaawansowanych projektów.

2

Napisanie przeglądarki jest trudne i oczywiście trzeba być zaawansowanym programistą, żeby to zrobić. Mówię tu o czymś więcej niż złożenie przeglądarki z klocków typu niesławny TWebBrowser. Tj. zakładam, że nawet jeśli opieramy się na jakimś kodzie, to i tak chcemy dodać coś ważnego od siebie.

Weźmy takie Google Chrome. Niby używa silnika renderującego Webkit, ale już interfejs był zupełnie świeży, rozdzielanie kart do osobnych procesów też, a do tego dorzucili własny, poniekąd rewolucyjny silnik javascriptowy o nazwie V8.

Nie chciałbym nam umniejszać zasług ;), ale gdy rozmawiamy w takim gronie możemy śmiało powiedzieć, że takie coś jest diabelnie trudno napisać.

0x200x20 napisał(a)

Zrobienie czegoś co tylko poprawnie obsługuje standardy to za mało. Zrobienie czegoś co poprawnie wyświetla zwalone strony to jest dopiero trik.

Nie sądzę. Ciężej jednak ogarnąć te standardy -- i to nie na 80-90% tylko na 100%. Przypadki brzegowe bywają najtrudniejsze. Standardy są złożone. Zobaczcie jakie problemy z implementacją miał Microsoft. Nawet teraz, gdy naprawdę się temu poświęcili, nie przychodzi im to łatwo, a w teamie IE mają dobrych programistów.

No i wydajność... Zrobienie interpretera JS zgodnego ze specyfikacją faktycznie nie jest MEGA trudne, choć oczywiście cholernie mały odsetek nawet programistów JavaScript (!) wiedziałby w ogóle jak to dokładnie miałoby działać -- bo poziom znajomości bardziej zaawansowanego JS-a jest niestety kiepściutki nawet wśród "specjalistów" (wyjątki są chlubne, ale nieliczne). Ale pisanie interpretera, nawet wolnego, byłoby dobrym sposobem na poznanie języka.

Napisanie do tegooptymalizacji... JIT-a... To zupełnie inne sprawy. Nawet z garbage collectorem nie było tak łatwo -- bo to chodził wolno, bo to miał memory leaki...

Tak samo z samym renderowaniem. Tam dość ostro używa się algorytmów grafowych. Niekoniecznie hiperskomplikowanych, ale jest tego sporo i trzeba ładnie myśleć nad tym, gdzie czego użyć. Wszystko po to, żeby reguły CSS czy pojedyncze deklaracje były dostępne dla danego elementu bardzo szybko, a przy tym zajmowały rozsądną ilość pamięci. W specyfikacji CSS nie ma o tym słowa.

Naprawdę, nad dobrymi przeglądarkami pracują kolesie z Google, Microsoftu czy od Apple'a i nie są to cieniasy. Napisanie nowoczesnej przeglądarki to kwestia paru milionów linii kodu. Sprawienie, by trzymało się to kupy można uznać za coś zaawansowanego, jak na nasze potrzeby.

1 użytkowników online, w tym zalogowanych: 0, gości: 1