Jquery vs Mootools vs Prototype – porównanie

Ostatnio wdałem się (niepotrzebnie) w dyskusje na temat wyższości jquery nad mootools. Ostatecznie wyszło tak, że ja mam „kota” na punkcie jquery a ktoś na punkcie mootools :), lecz udało się dojść do porozumienia. Po zapoznaniu się z konkurentem lidera :), nadal uważam że jquery jest lepsze :). W sumie moje widzimisie małe ma tutaj znaczenie bo zazwyczaj jak dowiaduję się o lepszej technologii jak tej której używam – dążę do zmiany, np php -> python, prototype -> jquery. W artkule postaram się poruszyć główne zalety jquery mając nadzieję, że ktoś przytoczy lepsze argumenty w tych kategoriach wskazujące na wyższość mootools lub prototype.

Test szybkości :)

Podstawą w porównaniu jest szybkość – najlepiej stosując test stworzony przez kogoś z renomą i wiarygodnością, taki test znajduje się tutaj http://mootools.net/slickspeed/. Jasno z niego wynika, że jquery jest szybsze. Sprawdzałem na ff, opera (na linux i widows) oraz na ie (win). Pod linuxem i ff3 różnice były znikome lecz to tylko jeden przypadek kiedy w szybkości mootools zbliżyło się do jquery.Prototype – w każdej kombinacji był najwolniejszy. Pojawił się natomiast jakiś framework Dojo – pomijam to ze względu na egzotyczność i małą populatność.

Objętość kodu

Aby się nie przemęczać za bardzo wchodzę na oficjalne strony produktów i spisuję jakie objętości mają poszczególne frameworki, skompresowane i nie.

wersja min (kb) wersja max (kb)
jquery 1.2.6 56 97
mootools 1.2 60 90
prototype 1.6.0.2 92 123

Pomiędzy jquery i mootools praktycznie nie ma różnicy, natomiast prototype odstaje w rankingu. (Aha proszę się zmylić informacją na stronie jquery.com o objętości pliku 16kb – to występuje podczas gdy do przeglądarki jest wysyłana wersja zgzipowana – to wydaje się być ciekawy temat na wpis :) ).

Możliwości, pluginy

Tutaj napisze tylko o jquery, z tego powodu że nie znam możliwości innych frameworków albo po prostu ich nie ma :). W rzeczywistości jest tak, że do jQuery napisano baaardzo dużo i jak narazie istniejące pluginy zaspokajają moję potrzeby w 100%. Podam kilka przykładów które pokazują potęgę tychże dodatków.

Dokumentacja i społeczność :)

To jest chyba najważniejszy aspekt używania frameworka – uzyskanie/wyszukanie pomocy gdy staniemy na jakims problemie. W tym przypadku jestem w 100% pewien, że największą społeczność i najlepszą dokumentację ma jquery, tutaj można również przeprowadzić test, a mianowicie wykorzystując google (światowy), tzn wpisując słowo kluczowe i sprawdzać ile jest wyników, a wyglądają one tak (slowo kluczowe – wynik, są one w takiej formie ze względu na wieloznaczność „prototype” ):

  • „jquery javascript” – 204,000
  • „prototype javascript” – 214,000
  • „mootools javascript” – 40,600

Jak widać wyniki jquery i prototype są do siebie zbliżone natomiast mootools widocznie odstaje – co oznacza że społeczność jest bardzo mała i byłoby ciężej otrzymać pomoc niż w przypadku jqery i prototype. Wynik tego ostatniego mnie bardzo dziwi ale niech już tak będzie :).

Podsumowanie

Z porównań jednoznacznie wynika, że najlepsze jest jquery, bo jest najmniejsze, najszybsze i posiada największą społeczność oraz gigantyczną ilość pluginów, dzięki którym nie musimy wymyślać świata na nowo. Tak więc jeżeli jest ktoś kto uważa inaczej, tzn że mootools jest lepsze od jquery – proszę o kontrargumenty – ale konkretne i treściwe, aby było wiadomo o co chodzi.

 

Tagi: , , ,

Komentarze: 10 do “Jquery vs Mootools vs Prototype – porównanie”

  1. 1 eRIZ

    Pojawił się natomiast jakiś framework Dojo – pomijam to ze względu na egzotyczność i małą populatność.

    A YUI, ExtJS, inne…?

    (Aha proszę się zmylić informacją na stronie jquery.com o objętości pliku 16kb – to występuje podczas gdy do przeglądarki jest wysyłana wersja zgzipowana – to wydaje się być ciekawy temat na wpis :) ).

    A czemu zmylić? Skoro przeważająca większość przeglądarek potrafi zinterpretować skompresowane dane, to dlaczego trzeba od razu uznawać tą wersję za nieistniejącą? Przecież faktyczny transfer wynosi wtedy tyle, ile skompresowany strumień. :P

    iterface elements :) http://interface.eyecon.ro/

    Zapomniałeś o chyba najważniejszym napisanym przez twórców jQuery – UI.

  2. 2 Mateusz Żeromski

    Dlaczego pominąłem:
    ExtJs – jest to wielka kobyła 500kb, a aktualna wersja jest płatna do zastosowań komercyjnych,
    YUI – jest produkcji yahoo i dlatego takim wynalazkom nie ufam, wole mieć poczucie że promuje open source niż yahoo-korporacje :)
    inne – marginalna popularność i wykorzystanie zmusza mnie do pomijania tego.

    A o zmylenie mi chodziło w tym sensie, że kod jquery według informacji na stronie wynosi 16kb, a tak naprawdę jest to 56, a 16kb to tylko transfer.

    O ui zapomniałem, ale chyba dlatego bo jak pisałem artykuł ich serwer miał jakieś problemy i nie działała mi ta stronka, i dalej mam problem aby na nią wejść, jak zacznie działać to dodam do listy :)

  3. 3 eRIZ

    A o zmylenie mi chodziło w tym sensie, że kod jquery według informacji na stronie wynosi 16kb, a tak naprawdę jest to 56, a 16kb to tylko transfer.

    Właśnie o to chodzi, że transfer. ;]

  4. 4 hepi

    JQuery zawsze wydawał mi się dziwnie napisany (przykład – http://ferrante.pl/2007/12/27/o-frameworkach-i-javascript-slow-kilka/), nie wiem jak to wygląda w jego najnowszej wersji. No i wole w mootoolsach OOP, modularność – moge z tych 60kilo zejsc do duzo mniej. A dziwi mnie, że wspominasz o community, jeżeli jak napisales dążysz do zmian „php->python”. W tym wypadku to raczej python jest tym mniej popularnym. Jeszcze odnośnei szybkości, jak ja przeprowadzalem testy u siebie, to mootools gorowal, wiec duzo zalezy od platformy, a ten test to raczej zabawka i nie ma odniesienie w rzeczywistosci. O to przyklad potegi mootools : http://mochaui.com/demo/. Artykuł stronniczy, ale tak to jest jak cos sie lubi :)

  5. 5 Mateusz Żeromski

    Sytuacja jest troche inna – w pracy zespołowej ważne jest to aby aplikacja napisana przez jednego programistę mogłaby być rozwijana przez innego. Duża popularność jquery, oraz duża społeczność pozwala na to, co innego jeżeli chodzi o mootools – być może i jest lepsze, ale nie zdecydowałbym się używać tego w moich aplikacjach, no chyba że jQuery zacznie mnie ograniczać :).
    To że dążę do zmiany php -> python – zawsze coś nowego, lepszego, lecz doświadczenie wskazuje, że w pythonie napisałem jedną dużą aplikację z 3 mniejsze. W tym samym czasie napisałem sporo więcej w php – python jest lepszy, tylko znow php bardziej popularny i jezeli mialbym pisac jakis złożony system – wybrałbym niestety php – kwestia utrzymaniowa/rozwojowa mnie by do tego zmusiła.

    Nie zawsze to co lepsze technicznie jest wykorzystywane – np czemu wielkie firmy (samsung itp) używają serwerów windows, pomimo że linux jest oczywiscie lepszy – powiązania biznesowe i znajomości :), podobnie jest z technologiami, jeżeli 5 programistów zna php, a jeden pythona – aplikacje będą pisane w php, i tak dalej itp :)

  6. 6 i

    http://mootools.net/slickspeed/
    moo jqr pttp yui dojo
    737 630 637 1780 529 firefox 2.0.0.16
    323 349 446 748 218 firefox 3.0.1
    317 321 405 1107 *50 firefox 3.1a2
    316 265 360 823 166 opera 9.52
    117 138 354 358 127 webkit r36120 (midori 0.21)
    375 360 541 1197 387 qt webkit 4.4.1 (arora 0.4)
    249 390 676 964 348 konqueror 4.1.1

    * podejrzane, 3x exception i wszystko <3s

  7. 7 dojo

    dojo egzotyczny i mało popularny? skąd ten pomysł? W prezentowanym teście u mnie dojo wypadło najlepiej, do tego jest zintegrowany z Zend framwrok, czyli jednym z popularniejszych frameworków do php ;)

  8. 8 hepi

    Wielkie firmy wykorzystuja pythona – patrz Google i platforma Google App Engine – nie ponosisz prawie kosztow utrzymania aplikacji na serwerze. A moim zdaniem jesli mialbym pisac zlozony system to wlasnie wybralbym np. django(bo latwiej) a nie jakis framework php. Php bym wybral do jakies malej stronki dla firmy, tylko dlatego ze wiecej mozliwosci hostngowych. Php ma duze community, ale popatrz co najczesciej pisze sie na forach itp. Najczesciej pytania dzieciakow np. jak uzyskac dostep do bazy danej, jak dostac sie do tablicy POST i tak dalej :)

  9. 9 Mateusz Żeromski

    hepi – temat dotyczy frameworków javascript a nie php/python :)
    Jeżeli chodzi o Twoje zdanie to zgadzam się, lecz nie do końca. Aktualnie tworzę dość złozone systemy i robię to w PHP (zend framework). Jak umiesz programować to i w pythonie to dobrze zrobisz i w ruby i php. Mój pierwszy projekt w python – był tak źle zrobiony że głowa mała – pomimo wykorzystania django, sqlalchemy, jakiś tam formsów itp.

    Jak umiesz programować w php i masz trochę doświadczenia – nie ma sensu zaczynać w pythonie, chyba że naprawdę czujesz wypalenie. Ja chcialem być taki fajny i robić w pythonie – to jest możliwe tylko w firmie gdzie jest zespół conajmniej 3 osób piszących w danym języku.

    Jeżeli na codzień nie pracujesz w środowisku python – nie zabieraj się za to :) Dopiero któraś kolejna aplikacja będzie poprawnie wykonana/

    Jeżeli chodzi o community PHP’a – Zend Framework, Symfony, Doctrine, maja tak dobrą dokumentację że nie potrzeba mi tych for. Nawet php.net i komentarze na każdej funkcji rozwiązują wszystkie problemy. To o czym ty piszesz ma miejsce w „piaskownicy” – tam się nie zagląda mając conajmniej roczne doświadczenie – chyba żeby zdobyć opinie eksperta.

  10. 10 jquery vs mootools vs prototype - porównanie - cz 2 at Mateusz Żeromski - Blog programisty

    [...] http://blog.zeromski.com.pl/2008/07/jquery-vs-mootools-vs-prototype-porownanie/ [...]

Napisz komentarz



Wersja mobilna