Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Porównanie frameworków JS
230005
post
Post #1





Grupa: Zarejestrowani
Postów: 316
Pomógł: 36
Dołączył: 2.04.2008

Ostrzeżenie: (0%)
-----


Fajnie by było, żeby wypowiedzieli się tu ludzie, którzy mogą coś powiedzieć o więcej niż jednym frameworku. Zacznę ja:

MooTools vs JQuery:

Jak dla mnie wygrywa jquery. Przede wszystkim łatwość nauki tego frameworka jest niespotykana. Sam byłem w stanie przy jego pomocy zaprogramować wiele nawet dosyć złożonych rzeczy tylko po przejrzeniu dokumentacji i oglądnięciu videotutoriala dla zielonych (IMG:style_emoticons/default/smile.gif) . Na pierwszy (bo później już nie patrzyłem (IMG:style_emoticons/default/winksmiley.jpg) ) rzut oka ma więcej pluginów niż MooTools, co też jest zaletą, która jednak blednie przy "obejściach" tego frameworka - jak ktoś nie zna, to powiem, że twórcy zadbali żeby programista pisał kod zamiast łamać sobie głowę nad tym, dlaczego pod połową przeglądarek działa, a pod kolejną połową nie. Praca z Mootools pod tym względem była dla mnie raczej bolesna. Z każdym problemem można sobie poradzić, jednak zraziło mnie to do dalszego zgłębiania frameworka. Żeby było sprawiedliwie, to podoba mi się implementacja obiektowości w Mootools, zarówno na poziomie, że się tak wyrażę standardowym (np. obiekt koszyka na zakupy), jak i budowania elementów html. Dla przykładu:

[JAVASCRIPT] pobierz, plaintext
  1.  
  2. //mootools
  3.  
  4. var anchor = new Element('a', {
  5. 'href': 'http://mootools.net',
  6. 'class': 'myClass',
  7. 'html': 'Click me!',
  8. 'styles': {
  9. 'display': 'block',
  10. 'border': '1px solid black'
  11. });
  12.  
  13. //jquery
  14.  
  15. var anchor = $('<a href="http://jquery.com/" class="myClass" style="display: block; border: 1px solid black">Click me!</a>')
  16.  
[JAVASCRIPT] pobierz, plaintext


Oczywiście można sobie kod jquery sformatować, ale w gąszczu literek i cyferek i tak można go łatwo przeoczyć. Może to tylko kwestia estetyki, ale dla mnie to duży plus dla mootools (jednak nie na tyle żeby porzucić jquery (IMG:style_emoticons/default/winksmiley.jpg) ).

I jeszcze jedna rzecz - nie wiem czy taką opcję posiada mootools, ale jQuery.noConflict() jest ekstremalnie przydatna, kiedy na stronie używane są jeszcze jakieś biblioteki.

Ten post edytował 230005 13.04.2010, 20:11:18
Go to the top of the page
+Quote Post
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


jQuery udstoępnia takie metody jak: attr/css/text dzięki którym Twój kod będzie czytelny:
Kod
var anchor = $("<a />").attr({
  href: "/test",
  title: "test"
}).css({
  display: "block",
  border: "1px solid red"
}).text("click me!");


PS. O ile dobrze kojarzę to istnieją też pluginy udostępniające niemalże taką samą składnię
Kod
$.create("a", { atrybuty, styles: { style } }, "Click me")
Itp.

Ten post edytował Crozin 13.04.2010, 22:27:33
Go to the top of the page
+Quote Post
230005
post
Post #3





Grupa: Zarejestrowani
Postów: 316
Pomógł: 36
Dołączył: 2.04.2008

Ostrzeżenie: (0%)
-----


Fakt, zapomniałem o tych metodach (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
skowron-line
post
Post #4





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Warto rzucić okiem na http://mootools.net/slickspeed/ . No i @230005 argument
Cytat
tylko po przejrzeniu dokumentacji i oglądnięciu videotutoriala dla zielonych
(IMG:style_emoticons/default/smile.gif)
Ja osobiście używam mootools -a z niewiadomych mi przyczyn przypadł mi do gustu bardziej niż jQuery.

Edit:
A co do noConflict to mootools ma
http://mootools.net/blog/2009/06/22/the-dollar-safe-mode/

Ten post edytował skowron-line 14.04.2010, 07:54:16
Go to the top of the page
+Quote Post
melkorm
post
Post #5





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Cytat
Warto rzucić okiem na http://mootools.net/slickspeed/ . No i @230005 argument


Z chęcią bym zobaczył aktualne porównanie (IMG:style_emoticons/default/smile.gif) Ponieważ jQuery w wersji 1.4.x bardzo przyśpieszyło.
Go to the top of the page
+Quote Post
ShadowD
post
Post #6





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

Ostrzeżenie: (0%)
-----


Za pomocą firebuga podmień link do biblioteki zawierający najnowszą wersję, wzrost w teście to ~10pkt. ;-)
Go to the top of the page
+Quote Post
230005
post
Post #7





Grupa: Zarejestrowani
Postów: 316
Pomógł: 36
Dołączył: 2.04.2008

Ostrzeżenie: (0%)
-----


Cytat
No i @230005 argument (...)


No co (IMG:style_emoticons/default/smile.gif) ? W dosyć krótkim czasie mogłem zacząć się raczej bezproblemowo poruszać w tym fraweworku. Po przeznaczeniu mniej więcej takiej samej ilości czasu na mootools wciąż zdarzało mi się zacinać na jakichś pierdołach. Obsługa pierwszego jest dla mnie bardziej intuicyjna (IMG:style_emoticons/default/smile.gif) .
Go to the top of the page
+Quote Post
erix
post
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Przyznam, że nawet nie wiem, kiedy się jQuery nauczyłem, ale w porównaniu do innych bibliotek - wg mnie - ma dwie bezapelacyjne zalety:

  • chaining - nie trzeba korzystać z tymczasowych zmiennych, czy konstrukcji with
  • intuicyjność - nawet po baaardzo długiej przerwie w kodzeniu front-endu wystarczy pozgadywać nazwy metod, aby się okazało, że... to działa (IMG:style_emoticons/default/smile.gif)


Jeśli chodzi o porównanie innych bibliotek - wolę jQuery również za szybkość, której ustępują praktycznie wszystkie frameworki oprócz Dojo (http://selectors.turnwheel.com/slickspeed.php - np. engine selektorów).

Pozostaje jeszcze kwestia wygody:
  • nie trzeba prawie zaglądać do dokumentacji przy pisaniu, całość jest dość dobrze ustandaryzowana
  • nie ma jakiegoś podziału na klasy/metody typu "sztuka-dla-sztuki", jak to ma np. miejsce w Prototype. Jedna funkcja $() i koder jest już szczęśliwy (IMG:style_emoticons/default/biggrin.gif)


Cytat
Oczywiście można sobie kod jquery sformatować, ale w gąszczu literek i cyferek i tak można go łatwo przeoczyć. Może to tylko kwestia estetyki, ale dla mnie to duży plus dla mootools (jednak nie na tyle żeby porzucić jquery ).

A kto Ci broni użyć takiego potworka?

[JAVASCRIPT] pobierz, plaintext
  1. $('<a href="http://jquery.com/" class="myClass" style="display: block; border: 1px solid black">Click me!</a>')
  2.  
  3. $(document.createElement('a')).addClass('myClass').style({display: "block", border: "1px solid black"}).html('Click me!');
[JAVASCRIPT] pobierz, plaintext


Jak mało czytelne, to stosuję swój ulubiony sposób zapisu.

[JAVASCRIPT] pobierz, plaintext
  1. $(document.createElement('a'))
  2. .addClass('myClass')
  3. .style({
  4. display: "block",
  5. border: "1px solid black"
  6. })
  7. .html('Click me!');
[JAVASCRIPT] pobierz, plaintext


I po kiego grzyba jakieś wtyczki, które tylko zwiększają rozmiar pobieranych bibliotek? (IMG:style_emoticons/default/winksmiley.jpg)

wszystko pisane z palca, jak nie działa, to przykro mi (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
230005
post
Post #9





Grupa: Zarejestrowani
Postów: 316
Pomógł: 36
Dołączył: 2.04.2008

Ostrzeżenie: (0%)
-----


Cytat
chaining - nie trzeba korzystać z tymczasowych zmiennych, czy konstrukcji with


Akurat co do chainingu, to jestem raczej pewien, że przynajmniej część pozostałych bibliotek coś takiego wspiera. Na pewno Mootools.
Go to the top of the page
+Quote Post
erix
post
Post #10





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Pokaż, bo ja chyba ślepy jestem. (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
230005
post
Post #11





Grupa: Zarejestrowani
Postów: 316
Pomógł: 36
Dołączył: 2.04.2008

Ostrzeżenie: (0%)
-----


W mootoolsowym tutorialu to wyczytałem, ale teraz nie mogę znaleźć (IMG:style_emoticons/default/smile.gif) . Nie zmyślam, ani nie mam zwidów, tylko nie mogę znaleźć! (IMG:style_emoticons/default/biggrin.gif) Myślę że skowron-line mógłby coś powiedzieć na ten temat.
Go to the top of the page
+Quote Post
skowron-line
post
Post #12





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Cytat(230005 @ 14.04.2010, 22:09:06 ) *
Myślę że skowron-line mógłby coś powiedzieć na ten temat.

Tak potwierdzam twoje słowa (IMG:style_emoticons/default/smile.gif)
http://jqueryvsmootools.com/ akapit "Chaining as a Design Pattern"
[JAVASCRIPT] pobierz, plaintext
  1. new Element('a').setProperty('href','http://mootools.net').set('html', 'mootools.net').inject($(document.body));
[JAVASCRIPT] pobierz, plaintext


+ mootools::chain class

Jedyną różnicą na jaką należy patrzeć w tych FW jest szybkość działania.

Edit:
http://ryanflorence.com/jquery-1-4-mootools-1-2-compared/

Ten post edytował skowron-line 15.04.2010, 08:34:28
Go to the top of the page
+Quote Post
athabus
post
Post #13





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Mam wrodzoną niechęć do wszystkiego co jest związane z JS - może dlatego, że gdy pierwszy raz uczyłem się JS to cały kod trzeba było pisać do każdej przeglądarki osobno...

Obecnie w ogóle unikaj JS - robiłem wyjątek tylko dla aplikacji oparty o ajaxowy interfejs. Moje podejście zmienia właśnie jquery - bardzo łatwo można ją opanować. Jest wiele fajny pluginów i wszystko działa bardzo domyślnie. Dokumentacja jest całkiem niezła, więc łatwo się przebić i zacząć programować.

W niektórych miejscach trochę denerwuje mnie składnia, ale ogólnie bardzo przyjemne narzędzie dla kogoś, kto JS używa rzadko i często wraca po dłuższej przerwie. Bez tej biblioteki wiele rzeczy byłoby poza moim zasięgiem bo tak jak pisałem jestem niedzielnym javascriptowcem.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 09:01