למה לא jQuery?

jQuery היא אולי ספריית הג’אווהסקריפט הפופולרית ביותר כיום, אך זהר ארד מנסה להסביר מדוע היא עושה יותר נזק מאשר תועלת.

אחרי אתנחתא קצרה לבניית ניוזגיק V3, הגיע הזמן לחזור לכתוב. ברור לי לחלוטין שהנושא שבחרתי עשוי לעורר התנגדות והתרעמות כלשהי, אך כרגיל, אני מקווה שתוכלו לשמור על ראש פתוח בזמן שאשטח בפניכם את טיעוני.

אז למה לא jQuery?

למי שלא מכיר, jQuery היא ספריית הג’אווהסקריפט הפופולרית ביותר כיום. ל jQuery יש קהילה חזקה ופעילה, אוסף מרשים של תוספים, גרסת מובייל באלפא ומקום ראשון ברשימת הביצועים של DOM selection. צריך כנראה להיות משוגע, חבר מחתרת או חבר בכת כדי לטעון ברצינות שהדבר הזה שקוראים לו jQuery הוא משהו אחר מלבד פנטסטי. ואכן, גם כמי שאינו נמנה עם חסידי jQuery אני מודה בפה מלא שזו ספרייה מרשימה ומצויינת בזכות עצמה ועבור הבעיות שהיא באה לפתור.

הטענות שלי הן לא כלפי הספרייה עצמה אלא כלפי התופעה שנוצרה בעקבותיה. על-מנת בשביל להבין את התופעה, אנחנו צריכים להבין את התנאים שגרמו להיווצרותה.

בראשית

בראשית היתה ג’אווהסקריפט שפה חביבה שנועדה להעניק לעמודי HTML פונקציונליות שלא היה ניתן לתכנת באמצעות HTML בלבד. כמו בכל סיפור טוב, יש את הטובים (מוזילה עם נטסקייפ) שפתחו חלק ניכר מהג’אווהסקריפט, ואת הרעים (מיקרוסופט) שפיתחו חלק ניכר אחר, ללא תיאום של ממש עם הטובים. התוצאה היתה שהדפדפנים השונים הריצו (ועדיין מריצים) ג’אווהסקריפט שונה, מה שכמובן יצר מלחמת תאימות בין המתכנת והדפדפן שנמשכת עד היום.

ואלו שמות

כשהאינטרנט התחיל לקבל מספרי גרסאות, פתאום צצה ועלתה דרישה חזקה לממשקים עשירים יותר לאתרי אינטרנט, מה שהצריך כמובן קוד ג’אווהסקריפט מתוחכם יותר. כדי להשכין שלום בין המתכנת והדפדפנים השונים ולאפשר הטמעה אחידה של קוד ג’אווהסקריפט בכל הדפדפנים, מצאנו את עצמנו לפתע עם שלל ספריות המספקות שכבת תאימות בין הדפדפנים השונים ובין המתכנת. בין הספריות הללו נוכל למצוא את Dojo, Prototype, jQuery, YUI, Mootools ו Sencha ועוד רבות אחרות, כאשר כל אחת מהספריות נותנת דגש על היבט אחר של פתרון בעיית התאימות בין הדפדפנים השונים.

ויקרא

אם ננסה לקרוא בין השורות ולנתח את ההיבט ש-jQuery מספקת לפיתרון בעיית התאימות נמצא כי jQuery מטפלת אך ורק בשונות במימוש של ג’אווהסקריפט בין הדפדפנים השונים ע”י יצירת ממשק אחיד לטיפול בסוגיות הנפוצות שמתכנת ג’אווהסקריפט נתקל בהן מדי יום. בין הסוגיות הללו נמצא טיפול ב-DOM, טעינת נתונים (AJAX,JSON) וטיפול באירועים כמו לחיצות ושליחות טפסים. למעשה, jQuery היא רק שכבת תאימות המאפשרת למתכנים לכתוב קוד ג’אווהסקריפט אחיד שיעבוד בצורה תואמת על כל הדפדפנים ותו לא. זו לדעתי גם הסיבה העיקרית להצלחתה של jQuery: מכיוון שהיא מטפלת היטב בבעיה העיקרית של חוסר התאימות בין הדפדפנים, היא קלה לשימוש ואינה דורשת לימוד מעמיק או שינוי גישה מצד המתכנת בבואו לכתוב קוד לאתר.

במדבר

אומרים ש”כל קוץ, במדבר פרח” ואכן, למרות ש jQuery לא הייתה הספרייה הראשונה שבאה לטפל בבעיית התאימות, היא בהחלט הייתה זו שהרוותה את הצמא העז לכלי פשוט ונוח שיאפשר לכתוב קוד ג’אווהסקריפט חוצה-פלטפורמה וכאן למעשה מתחילה הבעיה. המציאות היא שרוב המתכנתים שבאים לכתוב ג’אווהסקריפט אינם מתכנתי צד-לקוח ואינם מכירים את השפה על בורייה. עבורם, ג’אווהסקריפט היא שפה קצת נחותה ומשונה שהיא יותר כורח המציאות מאשר בחירה מרצון. לכן, בעוד jQuery מספקת דרך נוחה ומהירה לכתוב קוד שיעבוד על כל הדפדפנים, היא אינה מאלצת את המתכנתים לשבור את ההרגלים המיושנים והגישה הפושרת שלהם כלפי ג’אווהסקריפט, אלא מספקת מעקף נוח לטפל בבעיות שגם כך לא נחשבות “מרכזיות”. הרי כל מתכנת צד-שרת שמכבד את עצמו יודע שיותר חשוב שלהתעסק בביצועי צד-שרת, טיוב מסדי נתונים ותכנות מונחה עצמים מאשר זוטות כמו תכנות נכון בצד הלקוח.

מה יותר קל וטבעי מאשר להכניס כמה תוספים של jQuery לטיפול בגלריות, ניווט, כפתורים ו-AJAX בלי להבין מה הקוד עושה? אגב, זו סוג של צביעות כי הרי מתכנת צד שרת שמכבד את עצמו מעולם לא היה מרשה לעצמו להכניס לשרת קוד שהוא לא מבין איך הוא עובד ומה הוא עושה. אבל, בגלל שג’אווהסקריפט זו לא שפה רצינית, זו הרי לא ממש בעיה, נכון? לא נכון!

דברים

הטענה שלי כלפי jQuery היא שהיא מעצימה, שלא בכוונה, את הבורות של המתכנתים בכך שהיא לא מאלצת אותם לחשוב מעבר למינימום הדרוש. בעקיפין, היא שמה פלסטר על פצע מוגלתי שדורש ניתוח. למעשה, jQuery מזכירה לי מאוד את PHP בכך שגם PHP באה בזמנו לטפל בבעיה מובהקת (בניית אתרים דינאמיים) בצורה טובה, אבל בפועל, מי שלא מכיר את השפה על בורייה, יש סיכוי טוב שיכתוב קוד גרוע פשוט משום שהשפה מאפשרת לו. צריך להיות מתכנת PHP מאוד טוב כדי לכתוב PHP טוב. אפשר להיות מתכנת רובי בינוני ועדיין לכתוב קוד טוב, פשוט כי רובי “מאלצת” את המתכנת לכתוב בצורה מסויימת.

אם נחזור ל jQuery, הרי שברור שאפשר לכתוב קוד נהדר עם jQuery, פשוט צריך לדעת ג’אווהסקריפט, ומי שלא טורח ללמוד ג’אווהסקריפט, סופו שיכתוב קוד רע, אבל מאוד בקלות.

אז מה עושים?

בראש ובראשונה, הגיע הזמן לומר בפה מלא – ג’אווהסקריפט היא לא רק שפה חשובה, היא השפה הכי חשובה בעידן האינטרנט. לא משנה מה רץ על השרת, הדפדפן עדיין יריץ ג’אווהסקריפט. ביצועי צד-לקוח חשובים וראויים לתשומת לב שווה אם לא יתרה מביצועי צד-שרת וסביר להניח שהטכנולוגיה שבסוף תקבע את הצלחת האתר / יישום האינטרנטי שלכם לא תהייה הטכנולוגיה שרצה בשרת (למרות שהשיקול רלבנטי וחשוב), אלא הטכנולוגיה שהמשתמש רואה, כלומר ג’אווהסקריפט, HTML ו CSS.

לכן, עם כל הטוב ש jQuery מרעיפה על קהילת מתכנתי הג’אווהסקריפט, עליכם המשתמשים לאמץ גישה קצת יותר ספקנית ולהבין ש jQuery היא בסך הכל פתרון לבעיה של תכנות ג’אווהסקריפט חוצה פלטפורמה. עדיין מוטל עליכם, המתכנתים, לדעת ג’אווהסקריפט אפילו אם אתם לא משתמשים בפקודות ה DOM הרגילות אלא באלו של jQuery. לשתול תוספים באתר שלכם על ימין ועל שמאל סביר שיחסוך מכם את הצורך לפתח רכיב מסויים בעצמכם, אבל אינכם פטורים מלהטמיע את התוסף בצורה מושכלת, בדיוק כמו שהייתם עושים בצד השרת.

ולבסוף, עשו לעצמכם, ללקוחותיכם ולמנהליכם טובה ולמדו ג’אווהסקריפט, בלי התוספות. זה באמת לא קשה וזה באמת ישפר את ההבנה שלכם לגבי הצרכים, האילוצים והפתרונות הזמינים עבורכם בבואכם לבנות את הממשק של האתר הבא (או הנוכחי) שלכם.

ואם כל זה לא לרוחכם, אתם כמובן מוזמנים לשבת בצד, עם אלו ממתכנתי ה PHP החביבים שבחרו לדבוק בהרגליהם הנושנים, ולצפות בעולם מתקדם וחולף על פניכם בעודכם מנסים פעם אחר פעם להתאים תוסף שילד בן 17 כתב לפני שנה לאתר של 100,000 משתמשים.

זהר ארד

צעיר נצחי, קיבוצניק שהדרים לעיר הגדולה, מפתח ווב וחובב טכנולוגיות מושבע. מעדיף הכל פשוט, מינימליסטי ועובד טוב ומשתדל להמנע מדברים עם הלוגו של מיקרוסופט ונהגי מוניות כעסנים. אוהב הרבה דברים חדשים ונוצצים, ספרים, פפאיות ומוזיקה מהחנות (בדיסק המקורי). מתנודד תדיר בין אקזיסטנציאליזם לאינדיבידואליזם ונכון להיום עדיין אוחז ב-fetish לא מוסבר לצבים.

הגב

36 תגובות על "למה לא jQuery?"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 

* שימו לב: תגובות הכוללות מידע המפר את תנאי השימוש של Geektime, לרבות דברי הסתה, הוצאת דיבה וסגנון החורג מהטעם הטוב ו/או בניגוד לדין ימחקו. Geektime מחויבת לחופש הביטוי, אך לא פחות מכך לכללי דיון הולם, אתיקה, כבוד האדם והדין הישראלי.

סידור לפי:   חדש | ישן | הכי מדורגים
יניב
Guest

תחליף jQuery בכמעט כל ספריה וזה אותו הדבר.
ברגע שאתה נותן אבסטרקציה כלשהיא מעל שפה מסוימת חלק ניקר מהמשתמשים של אותה ספריה ישתמשו בה לא נכון כי הם לא מכירים את התשתית שעליה בנויה הספריה.

ראה ערך : Microsoft .Net Framework

בגלל זה בחינה אמתית של מתכנת כלשהוא היא לאו דווקא עד כמה הוא מכיר ספריה כזו או אחרת אלא עד כמה הוא מכיר את התשתית וה runtime.

פליקס גרצמן
Guest

הבעיה/יתרון הבאמת גדולה ב-jQuery היא שזה ספריית אבסטרקציה ואפקטים. היא לא ספריית פיתוח. אין שם כלים לפיתוח שהוא לא מכוון לדפדפן. אין ירושה, אין מבני נתונים, ואם כבר אבסטרקציה אז חסרים בה הרבה דברים. אני משתמש ב-underscore.js להשלים קצת חוסרים. MooTools הרבה יותר שלמה כספריית פיתוח לאפליקציות ווב, אבל לאפקטים יש לה הרבה פחות פלאגינים. ועד כמה שאני סובל מ-NIH Syndrome, לפעמים לפתח לבד זה סתם כאב ראש. פשוט בוחרים רק פלאגינים ותיקים, בוגרים ומתועדים.

זהר ארד
Guest

פליקס, ל Mootools יש מודולים הרבה יותר נרחבים לאפקטים מל jQuery והיא מאפשרת כתיבת תוספים הרבה יותר גמישה.

מה שכן, אני לא מדבר על מצבים שבהם מפתחים מנוסים מטמיעים קוד בשל ובדוק של תוסף זה או אחר בקוד בשל ובדוק שלהם. אני מדבר על המצב ההפוך בו יש הטמעה נאיבית של קוד בלי להבין מה הוא עושה.

פליקס גרצמן
Guest

מודולים וכתיבה – כן, הרבה פלאגינים מוכנים מראש – לא. אבל אלה שכבר יש הם הרבה יותר איכותיים.

זהר ארד
Guest

אני מסכים אבל לא לחלוטין. יש ספריות שדורשות ממך קצת יותר ו”מצפות” ממך למימוש מעט יותר מושכל. הדוגמה האולטימטיבית שלי היא תמיד Mootools כי הם אומרים בפה מלא שהמטרה שלהם היא לשנות את איך שאתה כותב ג’אווהסקריפט, ולא רק לספק שכבת תאימות.

מעבר לזה, ש jQuery לא נותנת אבסטרקציה, אלא מספקת ממשק תכנות אחיד וזה לא אותו דבר.

john resig
Guest

אתה לא עשית פרפורמנס ריוויו לקוד שלך כמו שנעשה מאות פעמים לחבילת הגרעין של jquery.
עוברים על הקוד עשרות אנשים מבריקים שלא אתה ואני איי פעם נגיע לרמה שלהם. אתה יכול לאמץ אי אילו חלקים של הקוד ולהרחיב אותם בקלות כפי שהתכוונו המפתחים ולא להשתמש בחבילות המנופחות של הUI. אתה יכול לאמץ את מנוע הtraversing שלהם שבכל מקרה יקל על הפיתוח כי הוא תמיד שימושי.

אם יש משהו שאני ממש לא אוהב זה אנשים שחושבים שלכתוב getElementById הופך את הקוד לשהם למהיר ואיכותי. אנחנו פה כי ג’אווהסקרפיט זה שרשרת שבמילא רובנו צריכים לכתוב לה את הגלגלים והשילדה.

תום
Guest

אני מקווה בשבילך שאתה מתקרב לעשירית מהכישרון שמאחורי השם שלקחת לעצמך פה…

ורק כדי להוכיח לך נקודה – http://jsperf.com/dollar (לקוח מכאן – http://frontend.co.il/%d7%94%d7%93%d7%a8%d7%9a-%d7%94%d7%9b%d7%99-%d7%9e%d7%94%d7%99%d7%a8%d7%94-%d7%9c%d7%91%d7%97%d7%95%d7%a8-%d7%90%d7%9c%d7%9e%d7%a0%d7%98/)

רוני
Guest

תודה על ההמלצה תום ;-)
הנה קישור לא שבור – http://frontend.co.il/%d7%94%d7%93%d7%a8%d7%9a-%d7%94%d7%9b%d7%99-%d7%9e%d7%94%d7%99%d7%a8%d7%94-%d7%9c%d7%91%d7%97%d7%95%d7%a8-%d7%90%d7%9c%d7%9e%d7%a0%d7%98/

התנצלותי על העברית ב-URL.

תום
Guest

אחלה ניתוח זהר, למרות שבסופו של דבר באמת הפריימוורק לא חשוב אלא המתכנת שמשתמש בו.
ראיתי מימושים זוועתיים לריילז, וראיתי מעשי תועבה שנעשו לדרופל, ומצד שני ראיתי אפליקציות שלמות שנכתבו מדהים בויז’ואל סטודיו.

אחד הדברים היפים בjQuery זו הדרך בה היא כתובה (לא אומר שאחרות כתובות פחות טוב, רק מעביר נקודה). למי שבאמת רוצה ללמוד ג’אווה סקריפט כדאי להשתמש בה, ולהשתמש בקוד המקור שלה ככלי לימוד – על כל פונקציית jQuery שהוא כותב גם להסתכל בקוד המקור שלה ולהבין מה היא באמת עושה, כמעט כל פונקציה שם שווה יותר מקורס של שבוע.

רן בר-זיק
Guest
לרבים מהמפתחים יש הרבה טינה כלפי jQuery מהסיבות שהעלית. בתור מי שיודע היטב גם jQuery וגם MooTools (וקצת prototype), אני מבין מהיכן הטענות האלו באות. אני גם מאד מודע לחולשות של jQuery. אבל לפי דעתי הכעס שלך קצת מפספס את המטרה. מהניסיון שלי, רוב השימושים שרוב המשתמשים עושים ב-JavaScript זה לעשות קצת אפקטים ולתקוע איזה ווידג’ט מגניב. ורוב השימושים האלו הם לא לאתר של 100,000 משתמשים אלא לאתרים קטנים בהרבה. לצרכים האלו jQuery ממלאת את הצרכים באופן מושלם. לא כל HTMLיסט הוא מפתח פרונט אנד מומחה ולא כל אתר הוא גוגל. חלק גדול מהפלגינים של jQuery הם בסדר גמור ועושים… Read more »
דרופל מן
Guest
אני מסכים עם תום ועם רן. למעשה, כבר התכוונתי לכתוב הרבה דברים אבל פשוט רן כבר כתב את הרוב. אני מגיע באמת מהכיוון של צד שרת ובעבר, כאשר עברתי מתכנות בשפת C לתכנות בשפת C++ התעצבנתי שמלמדים את השפה האחרונה לפני הראשונה. “איך באמת אפשר להבין את C++ בלי להבין C???”. כאשר התבגרתי מעט (…) ועברתי לתכנת בדוטנט (סישארפ) עדיין המלצתי בחום רב לאנשים ללמוד C++, אך כבר הייתי פחות נחרץ. היום, אני חושב שהכול תלוי במטרה של האתר או היישום. איני מתכנת ג’אווהסקריפט ואני מקווה שאיני חוטא מבחינתך בהקבלה שאני יוצר. נתמקד באתר, שהרי בג’אווהסקריפט עסקינן. השאלות הנשאלות: מהי… Read more »
ליאור קסוס
Guest
נביאים אחרונים: העולם מחולק 90:10 – אלו שכותבים את הapiים ואלה שצורכים אותם. כשאתה מתלונן על הניוון אתה מכוון אל ה10 שכותבים לבד ולא בסך הכל רוצים להטמיע את הגלריה המנצנצת שעושה נעים. לכן כל מה שאתה אומר הוא מדויק ונכון אבל רלוונטי ל10 אחוז וצריך להיות ממוען אליו. אני מתעסק כבר שנים רבות עם דרופל ואצלנו ההבחנה הזו עוד יותר חדה מכיוון שדרופל נותנת ל”לא-מתכנת” להיכנס די עמוק ולעשות דברים רבים לפני שהוא צריך לשלוף את הIDE. jquery והיכולת להטמיע מהר (וגם בלי להבין) תוספים שמעצימים את החוויה ומעצימה את ה “לא מתכנת”. אם בקהלי היעד עסקינן בוא נתייחס… Read more »
יגאל
Guest
בואו נודה בדבר אחד, JS זאת שפה פשוטה. כי הכול אוביקט. אפילו מערך זה אוביקט. והכל אפשר לתרגם ל-JSON. מה שמסבך את העניינים זה ה-DOM. ומי שעבד באופן ישיר עם ה-DOM יודע שזה לא כיף. jQuery הוא פיתרון מצויין לבעיה הזאת, זה קוד פתוח, ובמצב שלו, זה עוד ימשיך להתקיים שנים. מי שעבד עם זה ברצינות יודע שזה יכול לעשות כל דבר שקשור לממשק המשתמש. צריך להפוך את זה לסטנדרט במקום להשתמש במגוון כלים שונים שעושים פחות או יותר אותו דבר (מדברים עם ה-DOM), אבל עובדים קצת שונה, כתוצאה מפתחים לא יכולים לשתף אחד את השני במה שהם בונים, כי… Read more »
אריה
Guest
Mootools FTW! מאמר מצויין. מסכים עם כולו. קצת הרחבות – קודם כל – לדעתי אין תחליף ללימוד של JS כשפה לפני שמתחילים לגעת בספריות. מישהו פה למעלה כתב שJS היא שפה פשוטה כי הכל אובייקטים – למרות שאני לא חושב שJS היא “קשה” כמו C, מדובר בשפה מאוד מורכת, ושונה באפן מהותי מרוב שאר השפות שנתקלתי בהן. חצי מהקוד שאני רואה ברשת הוא פרוצדורלי. עוד שליש מגדיר משתנים גלובלים על ימין ועל שמאל פשוט כי הוא לא יודע מה זה var ואיך עובד ה scope resolution. מכל הבחינות האלו – אין תחליף לדעתי לעבודה עם vanilla JS. למעשה הבעיה הגדולה… Read more »
אלעד אוסדון
Guest
תענוג לקרוא, וגם את התגובות! אני חושב ש-jQuery לא מספיק רובאסטית לבניית אתרים ואפליקציות מורכבים מהרגיל, ולכן אני מעדיף את MooTools, שהיא בהחלט מקיפה ואקסטנסיבילית, בכל מצב שהוא *. כשבונים אתר ומתכננים רחוק, כדאי לבחור את הכלים הנכונים בשלבים ראשוניים כמה שאפשר: בחירה ב-jQuery עירומה, ללא מנגנון OOP או תוספות פונקציונליות לאובייקטים, בהחלט עלולה להביא לאי סדר, שכפולי קוד וחוסר עקביות. אני רואה את זה כמעט בכל פרוייקט גדול שמשתמש בספרייה. MooTools, או לצורך העניין כל ספרייה (יותר נכון פריימוורק) שמספקת תשתית קצת יותר נרחבת משאילתות DOM ואפקטים, מובילות לכתיבה נכונה בסופו של דבר. כך ששיקולי תקציב סבירים במקרים של… Read more »
בועז
Guest
אני מסכים עם כווווווולם וחושב שכולם צודקים וגם קצת מפספסים את הנקודה. צודק הוגה המאמר ותומכיו שטוענים שספריות מפשטות חיים כמו jquery מפחיתות מהבנת החומר של המשתמשים בהם ואולי מזרזות מאוד את העבודה, ומאפשרות הכנסת קסמים לאפליקציה, אבל גורמות לאתרים להיות כתובים לא כל כך טוב, מה שבא לידי ביטוי בין השאר בעיתות הדרישה לסקלביליות. צודק ליאור שאומר שמצד שני חבילות כמו jQuery מאפשרות לקהל מאוד גדול להגיע להישגים ותוצרים מבלי להיות מתכנת מומחה ובכך לעשות את הדבר הפשוט אך הכרחי בחיים שנקרא להתפרנס (ובכבוד, לא בחסד). הנקודה שגם המתכנתים וגם הצרכנים שלהם צריכים לזכור היא שלא תמיד מי ששולט… Read more »
יגאל
Guest
אלעד, אני לא ממש מבין את ההשוואה שאתה עושה בין JQ, PHP, MOO, RAILS גם JQ וגם MOO הם תשתיות פיתוח, Frameworks. בשונה מכל האחרים PHP זאת שפת תיכנות, Rails זאת תשתית פיתוח (לא שפה) מבוססת Ruby. אז ההשוואה הזאת לא ממש נכונה. JQ “ללא מנגנון OOP” ?? מה זה מנגנון OOP בדיוק, ומה הוא עושה? JS היא שפה שיותר מהרבה שפחות אחרות היא שפת מונחת אובייקטים. ברור שאפשר לכתוב קוד מסודר עם JQ (וגם קוד לא מסודר), תמיד עדיף לכתוב קוד מסודר באופן כללי. עם שפות כמו JS או PHP יש בעיה, והבעיה היא שהם שפות מאוד קלות לשימוש.… Read more »
אלעד אוסדון
Guest
יגאל, ראשית, jQuery אינה framework. היא library. ההבדל הוא בהיקף הפונקציונליות שהיא מספקת וביכולת שלך להשתמש רק בה ולא בקוד תשתיתי צד שלישי, בכדי להשיג תוצאות מלאות. מנגנון OOP – נכון, JS מגיעה עם יכולות OOP כלשהן. כתיבת מחלקות בעזרת function+prototype+new, אך לא עם יכולת הורשה או Mixins. לטווח הארוך ולפרוייקטים מורכבים אלו דברים שבהחלט נדרשים. תחשוב שהיית צריך לכתוב ב-C במקום ב-++C או #C. בשביל כתיבת פלאגאינים reusable עם הרחבת יכולות יש צורך כמעט מוחלט ב-OOP. אם לא משתמשים במנגנון הורשה ראוי, אפשר להגיע לפונקציות ענקיות שלפי options שהועברו מבצעות את הפעולות הנכונות בעזרת המון תנאים. מאוד דומה לתכנות… Read more »
סרג' קרול
Guest
פוסט מעניין וגם מהתגובות אפשר ללמוד המון. הנקודה שרציתי להוסיף היא שעם כל הביקורת על jquery שהיא הופכת את הדברים לפשוטים זה גם הכוח שלה – היא הופכת אותך לפרודוקטיבי מהיום הראשון שאתה נוגע בה. כמו שליאור אמר מעליי אפשר להתמקד בדברים המעניינים והבעיות הגדולות יותר בהגיעך לפתח אתר או אפליקציה חדשים. אפשר גם בהחלט לומר שהיא הדליקה מחדש את האש של פיתוח קליינט והביאה הרבה כבוד לתחום הזה. בתוך כל ההיצע העצום של הפלגאינים שלה אפשר לראות יצירתיות עצומה, זה כמו מפץ גדול שיוצאים מתוכו גם כוכבים זוהרים וגם גושי אבן ואבק סתמיים, רעש לבן. בזכות הדברים האלה עקומת… Read more »
סרג' קרול
Guest

אמרתי ליאור?! סליחה, יגאל! :)

רוני
Guest
אחלה מאמר ותגובות, פשוט כיף לקרוא. סרג’, הבעיה של הרבה מתכנתים עם jQuery היא שבמקום לעזור עם עקומת הלמידה היא מסתירה אותה. קלות זה מצוין, אבל זה נהיה נורא מפתה לא ללמוד לעולם על DOM, XMLHttpRequest, אירועים ואלף דברים אחרים. האופי שלה גורם להמון אנשים להתחיל את העיסוק שלהם עם JS דרכה, אבל בגלל שהיא עוצרת שם ולא מאפשרת להתקדם ל-OOD ודפוסי עיצוב בריאים מפתחים רבים פשוט לא מגיעים לשם. אם זה לא מספיק, היא יוצרת דפוסי עיצוב גרועים משלה כמו שרשור אינסופי, הצמדה של כל דבר לדולר ובכלל בניה של הרים וגבעות על ה-DOM. כשאתה כותב יותר מדי jQuery… Read more »
אריה
Guest
ליגאל – JS היא לא שפת OOP. היא מבוססת עצמים, אבל היא שפת prototype. הירושה אצלה עובדת בצורה אחרת לחלוטין, ויש לה מספר פיצ’רים בסיסיים שקשה להתמודד איתם בלי תוספת של כלים בסיסיים. הבעיה הגדולה ביותר, והיא הראשונה שבה מטפלות רוב הספריות, היא העובדה שבירושה אבטיפוסית אין לך יכולת להשתמש בבנאי של מחלקת האב. כמובן – יש הרבה משחקים שאפשר לעשות כדי לפתור את זה בלי להשתמש בfactories, אבל בסופו של יום הם מספקים קוד קריא יותר וקל יותר לתחזוקה. דבר נוסף הוא השאלה כמה כלים הספריות מספקות לך כדי להרחיב את המחלקות. Class.Extras של מוטולס, וביחוד Class.Events הן פשוט… Read more »
יגאל
Guest
אחרי שקראתי קצת על MOO TOOLS השכלתי, וראיתי גם את הקישורים להשוואות אני בהחלט יכול להבין למה מתכנת מנוסה ב-JS יעדיף להשתמש *בספרייה הזאת לאומת JQ. מעולם לא נגעתי בMOO, אבל לפני שעברתי ל-JQ השתמשתי הרבה ב-PROTOTYPE, ומי שמכיר את הספריה הזאת יודע שהיא יותר בסיסית מ-JQ ולכן מאפשרת כביכול יותר חופש ויעילות בתיכנות, אבל אחרי שעברתי ל-JQ, הבנתי שזה לא באמת משנה כמה היא יעילה, מה שמשנה הוא מה שאני יכול לעשות איתה, באיזה מהירות, ומה אני יכול להוריד מהאינטרנט ולחסוך זמן פיתוח יקר. כמובן שלא כל מה שיש באינטרנט (JQ/JS) נכתב ע”י מתכנתי על, ההפך, זה כנראה לא,… Read more »
אביב צאלים
Guest

וואוו ! איזה דיון מרתק…. אני קטונתי מלהגיב פה על התכנים המקצועיים… אינני מתכנת וגם לא איש קוד :) אבל אחרי כמה שנים טובות בתחום הווב כמנהל פרויקטים ואיש SEO… למדתי דבר או שניים – המסקנה מאוד פשוטה: מה שמתאים ללקוחות הקצה לא בהכרח מתאים לצוות הפיתוח של עסק או חברה בתחום האינטרנט… וזה עוד מבלי לגשת לנושא אפליקציות הווב שאינן נשענות בהכרח על דפדפן כזה או אחר בצד הלקוח… לפעמים מה שפשוט יותר תופס יותר אנשים.
תודה לכל המגיבים – השכלתם אותי במספר דברים, שבת שלום לכולם.
זהר, פוסט חזק ביותר כתוב בצורה משעשעת אך ממוקדת :)

גלעד אלעזר
Guest

זהר תודה על המאמר. ראיתי את הקישור בפייסבוק ודי לא הבנתי על מה אתה מדבר. החששות האם לעשות לייק התגברו ולבסוף החלטתי לקרוא את המאמר. בתחילה הגעתי ספקן אבל כבר מהפסקה הראשונה התאבהתי בצורת הכתיבה שלך, בניסוח ובאופן שבו הצגת את הדברים פשוט מאמר שכיף לקרוא.

תודה !

איתמר
Guest

אני חושב שאתם בהחלט מלאים מעצמכם – כל כך הרבה תשבוחות אישיות לא ראיתי מזמן בבלוג.

הספריה JQUERY או MOOTOOLS שינו את עולם הJS והביאו אותו לרמה ויכולות שלא הכרנו מעולם. על זה אין ויכוח. על מהירות גישה אני מסכים אבל באמת שאתם מתעסקים בזוטות.

לראיה לטיב וליכולות של המערכת לשרת אתרים בסדר גודל גדול-ענק אנא עברו על השמות שאתרי הבית של שני המערכות.

לכל מי שכותב JS בצורה ישירה וללא מערכת מעטפת לכל עניין מעבר לשליחת טופס אני אומר – חבל על הזמן שלכם !

זהר ארד
Guest

לא ממש הבנתי את התגובה שלך איתמר.

הדיון כאן הוא לא על ביצועים של JQ או MT אלא על השוני בגישה לפיתוח קוד ג’אווהסקריפט בין השתיים.

גם ההערה על היכולת לשרת אתרים בסדר גודל ענק לא ברורה לי כי היא לא ממש קשורה לספריה אלא למימוש (ואגב, אין קשר בין גודל, פופולריות וטיב כמו ש”חלונות” מראה לנו).

מה בעצם אתה מנסה להגיד?

גלעד ואביב, שמח שנהנתם מהפוסט והדיון

ארז
Guest

אני רוצה לציין נקודה חשובה (לפחות לפרילנסרים שבינינו), לפי החוק אם שילבתם JQ (או כל קוד מוכן אחר) במערכת שבניתם אתם לא יכולים להכריז עליה “מערכת קניינית”. אם כתבתם CMS והשכרתם ללקוח זכות שימוש ללא זכות קניין או זכות שינוי (מה שרוב הפרילנסרים הרווחיים עושים רוב הזמן, להערכתי) אם המערכת משלבת JQuery או MooTools הוא יכול מבחינה חוקית לצפצף על החוזה ולשנות אותה כמה שהוא רוצה.

רפי
Guest
גילוי נאות – אני אוהב גם את JQ וגם PHP. ואני לא חושב שזה עושה אותי מתכנת טוב יותר או רע יותר. באותה מידה ניתן לטעון ש-ROR גם כן עושה נזק. מכל מקום, לעניות דעתי, כפי ש-PHP עזרה לפיתוח האינטרנט על ידי זאת שהורידה את חסמי הכניסה לעולם פיתוח האתרים הדינמיים כן גם JQ מורידה את חסמי הכניסה ומאפשרת להמון מתכנתים שלא היו נוגעים ב-JS לנסות קצת תכנות client-side. אז נכון, הרבה יכתבו קוד גרוע אבל גם הרבה יכתבו אתרים שירותים מעניינים שרק יקדמו רעיונות חדשים. בסופו של דבר צריך לזכור שכל תפקידם של JS/JQ/PHP או Java לממש רעיון למוצר… Read more »
שמואל
Guest

קודם כל, אל תכליל.
אני התחלתי להטמיע את JQUERY לאחר ששברתי ציפורניים עם JAVASCRIPT, ולאחר שבניתי לעצמי “מיני פריימוורקים” משלי.
[מי לא זוכר את function $(id){return document.getElementById{id};} O המפורסם שחסך לכולנו את הכיתוב הארוך]
אני לא “חורש” כל קוד של גלריה שמבקשים ממני להטמיע, אבל בהחלט קורא את ההערות בכותרות הפונקציות, ומנסה לשחק ב API [ולפעמים גם מוסיף קצת או משלב תכונה מגלריה אחרת].
היחס לכל קוד מוכן צריך להיות בדיוק באותה צורה של יחס הניתן להעתקה מהרשת של קוד צד שרת, על זה אין חולק.
תודה על המאמר ותודה למגיבים.

איתי תבור
Guest

זהר , מה עם גרסת המובייל ?
מה דעתך עליה ?

זהר ארד
Guest

הי איתי

אני מצפה בקוצר רוח לגרסת המובייל של jQuery – שמעתי דברים טובים מאוד. לא ניסיתי עדיין את גרסת האלפא אבל מעמוד הפרוייקט נראה שהם מכוונים למוצר מצויין.

ארי
Guest

החכמתי, וקיבלתי חשק ללמוד קצת יותר על MooTools.
תודה רבה לזהר ולכל המגיבים

wpDiscuz

תגיות לכתבה: