AJAX - rewolucja czy ewolucja

Komentarze do artykułu:

"Za poważną wadę JavaScript uchodzą różnice w jego interpretacji w różnych przeglądarkach. Jeszcze kilka lat temu bywało, że znacząca część kodu JavaScript na stronie była w dwóch wersjach, dla dwóch różnych przeglądarek. Sprawa zresztą jest związana także z HTML-em." To nie wada JavaScript, ludzie o czym wy piszecie jest coś takiego jak ECMA-262 to ..... przeglądarki wszystko komplikują, a szczególnie jedna jaka to wiadomo. A różne interpretowanie przez przeglądarki dotyczy niemal wszystkiego, a w szczególności CSS. Pozdrawiam

Dopiero dziś znalazłem tę polemikę. Odpowiadam: jak Pan zajrzy do standardu ECMA, znajdzie Pan tam pojęcie „conforming implementation”. Implementacja taka musi obejmować wszystkie elementy podane w specyfikacji ECMA, ale – co wyraźnie stwierdzono - może też zawierać elementy dodatkowe (typy zmiennych, wartości, obiekty, metody etc.). Niektóre z tych dodatków mogą być użyteczne przy pisaniu skryptów, nawet bardzo, ale z kolei ograniczają przenośność czy uniwersalność kodu. Tak czy inaczej w standardzie ECMA dopuszcza się stosowanie różnych dodatków. Autorzy przeglądarek z tej możliwości korzystają i trudno im się dziwić (każda grupa autorów chce, by ich przeglądarka - chociaż zgodna z główną specyfikacją standardu - górowała nad produktami konkurencji, przynajmniej pod pewnymi względami). Chyba, że Pan optuje za wprowadzeniem tylko jednej przeglądarki, z jedną implementacją standardu (korzystanie z reszty zabronione ). Argument, że jest standard jakiegoś języka programowania i to rozwiązuje problem, jest – oględnie mówiąc - dysksusyjny. To sprawa ogólniejsza. Podam przykład. Przez lata miałem dużo do czynienia z programami w C/C++, zarówno przy ich tworzeniu jak i przenoszeniu (kompilatory Microsoft, Borland, GNU i inne, komputery np. o różnej długości słowa, różnym uporządkowaniu bajtów w słowie etc.). Od dawna istnieje np. standard języka C, z kolejnymi wersjami, a przecież dokładna wierność jemu jest niepraktyczna czy wręcz niemożliwa, tym bardziej, że standard podaje szereg sytuacji czy przypadków, w których wynik operacji jest „undefined” (najczęściej praktycznie zależny od kompilatora). Można pokazywać, jakie konstrukcje są nieprzenośne i z jakich powodów, a jakie są i starać się korzystać tylko z tych ostatnich. Ale tak czy inaczej nie sposób napisać dużego złożonego programu w C, nie używając np. słów kluczowych własnych danego kompilatora (niektóre są wręcz narzucane), nie korzystając z różnych użytecznych bibliotek dynamicznych dostarczanych z kompilatorem etc. Wygenerowane binaria mogą działać w różnych środowiskach operacyjnych, ale z bezproblemową kompilacją kodu źródłowego w różnych kompilatorach będzie znacznie gorzej. To są realia nie do uniknięcia. Chyba, że – znów – każemy wszystkim korzystać z komputera jednego tylko typu i z jednego kompilatora języka C. Na koniec zacytuję Andrew Tannenbauma: „Miłą zaletą standardów jest to, że jest ich tyle do wyboru.” Pozdrawiam Marek Kotowski WSiP

Dodaj komentarz

captcha

działanie 2

 
  Weź udział w dyskusjach komentujących inne artykuły:
okladka big pobierz pdf

Data wydania: 14 grudnia 2007 r.
wersja online: ISSN 1731-7428
wersja drukowana: ISSN 1731-6758

info Artykuły naukowe zawarte w niniejszym czasopiśmie są recenzowane.