Wpis z mikrobloga

statyczne i ścisłe typowanie


@Marmite: Dla początkujących byłaby to mordęga (na początku), ale później dużo plusów. Mogliby chociaż zrobić tak jak w pythonie - silne typowanie.
@P0lip: Chrzanić początkujących, skoro nawet ludzie którzy siedzą w JSie jakiś czas nie umieją w nim pisać dobrze :P (#potwierdzoneinfo, chociażby za każdym razem kiedy otwieram jakieś zapomniane, dawno nie oglądane pliki z obecnego projektu).

No cóż, mamy luźne, dynamiczne typowanie i musimy z tym żyć. Dobrze że chociaż silniki jakoś próbują sobie z tym radzić (hidden class, optymalizacje, itp.), no ale to wymaga pisania czystego kodu. Więc paradoksalnie w
@Marmite: No racja. Największą porażką i tak jest fakt, że wszystkie nowe funkcje, które są baaaardzo przydatne i tak są póki co nieużywalne ze względu na kompatybilność :D
@P0lip: Zgadza się. Niestety JSem zacząłem się interesować jak już ES5.1 było dosyć dobrze zadomowione, więc nie mam pojęcia jak wyglądała i ile zajęła przesiadka z ES3 na ES5. Teraz przy okazji ES6 wydaje się to ciągnąć w nieskończoność. A biorąc pod uwagę że specyfikację planuję wydać dopiero w czerwcu 2015 (pozdro, miała być gotowa pod koniec 2013) to polyfillów i innych shimów do ES6 będziemy pewnie używać do 2016.

Dobrze,
@Marmite: Ja też JSem się zacząłem interesować od niedawna, więc również nie wiem jak to wyglądało. IE, by mogli na Linuxa wydać to nie musiałbym chociaż co chwilę wirtualnej maszyny włączać, żeby debugować. Niemniej MS i tak źle zrobił, że nie wydał choćby 9 dla XP'ka, to może 8mka by szybciej znknęła, a tak to nadal 4-5% w Polsce.

A tak swoją drogą, to kiedyś czytałem jak kiedyś na rozmowie o
@Marmite: A i tak swoją drogą, robisz jakieś optymalizacje dla poszczególnych przeglądarek/silników? W sensie, że np. jedna funkcja dla spidermonkey jest nieco inna niż inna robiąca ta samo w v8
Nawet na blogu (csstricks) autor pisał coś takiego $("a[href]") zamiast $(document.links)


@P0lip: No i nawet lepiej, że tak pisał :P

document.links
to nie dość, że częśc nie do końca związana z samym JSem (bo to DOM API), to jeszcze jest to stara wersja DOM API. Też bym tego nie używał :P jak już to

document.querySelectorAll("a[href]")
, ale warto wspomnieć, przeglądarki udostępniają właśnie tę funkcję (czy tam

document.querySelector
) pod

$
.
@Marmite: 1. ale duuuużo wydajniejsze :P

2. Czekam z niecierpliwością. Zależy też od targetu, jeśli chodzi o urządzenia mobilne to te kilka ms daje jakąś różnicę, zwłaszcza, gdy jest stary aparat
1. ale duuuużo wydajniejsze :P


@P0lip: No, nie do końca. Przeglądałeś kiedyś kod Sizzle (silnika selektorów z jQuery)? Jeśli tylko jest w stanie, to pod spodem korzysta właśnie z

document.querySelectorAll
. Oczywiście i tak dochodzą koszty zamiany

NodeList
na instancję

jQuery
i jeszcze kilka innych rzeczy, ale nie przesadzajmy ;)

EDIT: a, chyba że mówisz o

document.links
. No, ale to jest stare API :D
@Marmite: Miałem okazję. Co do document.links to jest szybszy ~ 1.5x - zwłaszcza greasemonkey

Zresztą zawszę korzystam z natywnych metod jeśli dostępne (w sensie wszystkie poza querySelector/All), bo są szybsze, a jeśli chodzi o kompatybilność to zawsze robię sobie teścik mały i jeśli coś się nei zgadza to korzystam z querySelector. Trochę jest babrania się z tym, ale na moim starym smartphonie widać różnicę jeśli aplikacja jest bardzo duża.
@P0lip: Jakby co to Greasemonkey to nie jest silnik Firefoxa, bo mam wrażenie że właśnie w tym znaczeniu używasz tego terminu :P jeśli tak nie jest, to nie mam pojęcia co ma do tego Greasemonkey i jak to zmierzyłeś :P