soll ich von Prototyp zu Jquery wechseln?

8

Schließlich habe ich das Gefühl, dass jQuery langsam zum Defacto-Standard in JS-Bibliotheken wird (ich könnte mich irren!), oder zumindest das ist aktiver als der Rest der Frameworks.

Ich habe zum Beispiel nach einem guten Open-Source-Kalender wie Componente gesucht und Ссылка gefunden, das auf jQuery basiert.

Wir haben Prototype für sehr kleine Dinge verwendet, wie seine Selektorfähigkeiten ( $ function als eine Abkürzung für document.getElementById , hauptsächlich), das Ausführen eines Teils von JS beim Laden der Seite und das Ausgeben einiger sehr einfacher Ajax ruft an.

Ich schätze also, dass die Migration ziemlich einfach sein sollte, aber ich würde gerne die Vor- / Nachteile der Migration von Prototype zu jQuery erfahren.

Andererseits denke ich, dass es keine gute Wahl ist, beide zusammen zu haben, vor allem wenn man berücksichtigt, dass die Migration ziemlich einfach sein sollte. Habe ich Recht?

Bearbeiten: einige nützliche Ressourcen:

opensas 01.04.2010, 15:11
quelle

8 Antworten

9

Prototype und JQuery decken sehr ähnliche Felder ab. Ich habe Prototype jahrelang professionell als mein JS-Framework verwendet und wandle zu JQuery. Hier ist warum:

  • JQuery ist schneller . Prototyp kommt zuletzt in alle Leistungsvergleiche die ich gesehen habe (Zufallsauswahl hier ). Ich habe auch einen langjährigen subjektiven Eindruck, dass die Auswirkungen von Prototype insgesamt langsamer sind, insbesondere auf älteren Maschinen.

  • JQuery scheint nicht nur, sondern auch auf Stack Overflow beliebter zu sein. Das bedeutet, dass es viel einfacher ist, Support zu erhalten, und die Anzahl der verfügbaren Plug-Ins und vorgefertigten Codes ist viel größer. Das ist nicht der Hauptgrund für mich, aber zusammen mit dem Gesamteindruck, dass jQuery die technisch bessere Plattform ist, wurde die Wahl offensichtlich.

Meine einzige Abneigung ist:

  • JQuery-Code neigt dazu, schrecklich auszusehen. Ich mag JQuery und seine Philosophie sehr sehr, aber oft beim Betrachten des Codes. Wenn jemand einen Dialekt von JQuery gefunden hat, der so schön und strukturiert aussieht wie Plain-Vanilla-JavaScript, bin ich gerne an Bord. :)

Zu den Kommentaren: Zusätzliche Erläuterungen zu dem, was ich an jQuerys Codierungsstil nicht mag.

Mit einem Wort: Klammern. Tausende und Abertausende von ihnen :)

Aber ernsthaft. Mir ist klar, dass vieles von dem, was als "jQuery-Stil" bezeichnet wird, Shortcuts und Shorthands sind, die nur optional verwendet werden können. Aus der Sicht der Lesbarkeit und Wartbarkeit von Code finde ich große Teile von jQuery-Code viel schwieriger zu lesen und zu verstehen. Ja, das wird mit zunehmender jQuery-Erfahrung viel einfacher, aber ich möchte, dass mein Code selbst für einen Außenseiter lesbar ist. In Bezug darauf, jQuery geht nicht in die richtige Richtung IMO. Ein Großteil des Codes ist einfach hässlich. Es ist meine einzige große Kritik an diesem großartigen Rahmen bis heute.

Methode verkettet jedoch, @noah, und Sachen wie die neue .delay() oder wie es hieß, ich denke total rocken. Ich sage nichts dagegen.

    
Pekka 웃 01.04.2010, 15:21
quelle
6

Soweit ich weiß, überlappen sich Prototype und jQuery meistens, außer dass jQuery sich hauptsächlich auf DOM-Manipulation, Ajax, Ereignisse usw. konzentriert und einige der Fähigkeiten von Prototype nicht wirklich besitzt, wie Klassen, Vererbung, etc Wenn Sie jedoch diese Dinge nicht benötigen und nur ein Framework für Browser-DOM-Manipulation, Ajax, Ereignisse usw. benötigen, dann ist jQuery der richtige Weg.

    
Paul Woolcock 01.04.2010 15:16
quelle
4

Sie können sie beide zusammen verwenden. Rufen Sie einfach jQuery.noConflict(); auf, nachdem jQuery geladen wurde. Dann müssen Sie jQuery("whatever") anstelle von $("whatever") schreiben. Prototype bietet eine Menge Funktionalität, die jQuery nicht hat.

Prototyp ist jedoch auf dem Weg nach draußen. jQuery ist jetzt König, und aus einigen guten Gründen. Wenn Sie die neuesten Plugins und Widgets wollen, wird jQuery sie haben.

Underscore.js bietet fast die gleiche Funktionalität wie Prototype, ohne sich mit Objektprototypen und dem globalen Namespace herumzuärgern. Underscore plus jQuery sollte die Migration von Prototype ziemlich einfach machen.

    
noah 01.04.2010 15:19
quelle
4

Um Ihre Fragen direkt zu beantworten: Ja, Sie sollten wechseln. Und ja, du hast Recht.

Ich weiß, dass du gesagt hast, du magst keine Klammern ... kannst du einen Code-Schnipsel bereitstellen, den du für schön hältst (ich werde ihn zum Vergleich mit jQuery vergleichen)?

    
David Murdoch 01.04.2010 16:48
quelle
2

Ich benutze Prototype seit 2006 und ich stimme Pekkas Gefühlen über hässlichen Code zu. Prototyp ist eleganter.

Ich war ein überzeugter Befürworter der Prototype (+ Scriptaculous) Community, aber leider verliert Prototype Marktanteile. Karrieren können auf jQuery aufbauen, nicht so sehr auf Prototype.

Es scheint so, als würden jQuery-Leute mit Plug-ins glücklicher sein, ohne zu wissen, wie sie funktionieren, während Prototype-Leute eher Hardcore-Programmierer sind und dazu neigen, das zu bauen, was sie selbst brauchen.

Wenn mein Übergang zu jQuery nicht so schmerzhaft Die Funktionalität ist sehr ähnlich, nur mit anderen Namen. Es ist viel mehr Dokumentation und Beispielcode verfügbar, was das Abholen erleichtert.

Frameworks sind bewegliche Ziele, die sich in Bezug auf Geschwindigkeit und Funktionen manchmal gegenseitig überspringen. Alle verbessern sich weiter. Sagen X ist besser als Y wird sich im Laufe der Zeit ändern

Ich denke, die Rettung von Prototype könnte Scripty2 sein. Dies ist eine erstaunliche neue Animations-Engine mit Prototype. Wenn sich dies durchsetzt (und es auf den Markt bringt, ist es nicht einmal in der Beta), könnte das Interesse an Prototype wieder steigen. Darüber hinaus denke ich, dass es immer seine Unterstützer haben wird, aber vom Mainstream verschwinden wird.

    
quelle
2

Wenn Sie einen anderen Job haben möchten, wechseln Sie vielleicht zu JQuery. Wenn Sie an schönen, intuitiven JavaScript-Stick mit Prototoype interessiert sind - es geht nicht weg!

    
plodder 02.04.2010 00:51
quelle
0

Ich denke, dass Microsoft es in das ASP.NET Ajax Framework integriert hat spricht Welten für jQuery. Mein derzeitiger Arbeitgeber hat im letzten Jahr standardisiert und ich kann mehr Stellenausschreibungen finden, die speziell nach jQuery und jeder anderen Bibliothek fragen.

    
Adrian J. Moreno 01.04.2010 16:13
quelle
0

Ich denke, du solltest. Ich benutze JQuery religiös, und ich bin kein Javascript Pro. Es ist die Benutzerfreundlichkeit, denke ich, ist eine der mächtigsten Dinge daran.

    
willbeeler 01.04.2010 17:03
quelle