לאחרונה אני עוקב אחר כמה פרויקטים מעניינים בתחום הווב.
פרויקט אחד משך את תשומת לבי באופן יוצא דופן. מדובר ב-XML11.
אולי חלק מכם שמעו עליו, אבל למי שלא, מדובר בלא פחות ממהפכה, לפחות ברמת התפישה של עולם הווב. או יותר נכון עולם התוכנה של הווב.
ווב טפו.0
את הבאזוורד הזה כבר כולכם מכירים.
מדובר בלהיט הקמפיינים החם ביותר של מיטב המוחות הפרסומיים, של כל ספקית אינטרנט ישראלית שמכבדת את עצמה. ולועגת לנו.
לא אכנס עכשיו למשמעות הטכנית והתדמיתית של מה שקרוי web2.0, רק אומר שהקו בין הערך הפרסומי והאמת הטכנולוגית אינו ברור, לכל היותר מדובר בניצול של יכולות לא חדשות, בעידן בו האינטרנט הופך להיות כלי העבודה המרכזי בחיינו, על מנת ליצור אפליקציות מבוססות ווב עשירות יותר, המזכירות את עולם הדסקטופ.
לכל מי שלא הבין ממש למה אני מתכוון, מדובר בהרבה לוגואים מגניבים ושימוש מופרע במונח “בטא”.
רוצים דוגמאות? כמעט כל אחד מהפרויקטים של גוגל, ה-Calendar הוא אולי הבולט שבהם, הממשק החדש של יאהו! מייל, פליקר, ועוד רבים וטובים…
בכל מקרה, עמוד התווך הטכנולוגי המרכזי של הטרנד הוא AJAX , או Asynchronous JavaScript & XML.
ללא ספק, יכולת שימושית המרחיבה את מסגרת הפונקציונאליות של האינטרנט באופן משמעותי. אבל היא כאן כבר הרבה זמן.
לכל מי שעוסק בפיתוח לווב, אני לא צריך לספר שאחת המשימות המדכדכות ביותר בתהליכי הקמה של אתרים\אפליקציות ווב, היא כתיבת ג’אווה-סקריפט. או יותר נכון, “למה זה לא עובד באקספלורר?!” (החליפו את “אקספלורר” בדפדפן החביב עליכם)
בקיצור, ג”ס נתמכת וממומשת באופן שונה בדפדפנים שונים וכן על פלטפורמות שונות.
יותר מזה, היא שפה מאוד “מעייפת” מבחינה פונקציונאלית. אמנם היא מסוגלת לעשות כמעט הכול, אבל מעט מאוד אנשים יודעים להביא אותה לשם, אף פחות טורחים לעשות זאת.
היא פינה כפוית טובה של עולם התוכנה- שום תכנת המכבד את עצמו לא ישאף להגיע לדרגת מאסטר בג”ס; אין בתחום כסף ולא תהילה. אני מכיר כמה אנשים שאפילו לא מוכנים לגעת בשיקסע מטעמי כבוד.
בכל מקרה, החדירה המאסיבית של AJAX לכל פינה, שהיא בעצם ג”ס לכל דבר ועניין, מסבכת אף יותר את חייהם של המפתחים.
כל בעל פלאפליה המקים אתר, דורש מהאמונים על בנייתו אתר web2.0, שתפריט המשקאות הקלים מתעדכן בזמן אמת ללא טעינה מחדש של הדף כולו.
כתיבת ג”ס מתחילה לתפוס יותר מקום וזמן בחייו של המפתח, וזה לא בהכרח מה שהוא רוצה או יודע לעשות. זוהי משימה מורכבת, הדורשת הבנה עמוקה של מגוון תחומים ושליטה בשפה אפורה ותזזיתית, הדורשת טיפול מיוחד תחת נסיבות שונות.
ולעניינינו
שני מפתחים חביבים, ארנו פונדר ווולפגנג קורן, עשו קצת חושבים ומימשו משהו שעלול להראות מופרע לחלוטין.
הבסיס הרעיוני של מה שהם עושים הוא די פשוט, אפילו מתבקש: ג”ס היא המכנה המשותף הנמוך ביותר של דפדפנים, על כן, אפשר לקרוא לה… שפת המכונה של הווב.
ואם אפשר לקרוא לה כך, אז אפשר גם להתייחס אליה כך! (או- לא להתייחס אליה)
ומה זה אומר? זה אומר שעל פי קו החשיבה הזה, בדיוק כמו שכמעט אף מתכנת לא כותב אפליקציות באסמבלי או באפס ואחדים, כי הן מפחידות וקשות מדי, אין שום סיבה שג”ס “תומצא” כל פעם מחדש ע”י מתכנת אומלל אחר.
כשמתכנת ++C לדוגמא, כותב אפליקציה קטנה בחמש דקות, שנראית מצוין ועושה משהו מזה מגניב, הוא לא דואג לקוד המכונה שבפועל יעשה את העבודה, בשביל זה יש לו מהדר (קומפיילר). וול… זה בדיוק מה שהם עשו.
מי שבקי בעולם התוכנה מבין על מה כל המהומה. לכתוב מהדר מכלום, הממיר שפה כמו ג’אווה (JAVA, לא ג’אווה-סקריפט) לג”ס זו משימה מפלצתית, לא פחות.
אבל הם עשו את זה.
המהדר שלהם מאפשר כתיבת אפליקציות “עשירות” ב-JAVA, ככל שהסביבה מאפשרת, ובלחיצת כפתור להמיר אותם לקוד שכל דפדפן יכול לקרוא, והפלא ופלא- מתקבל תעתיק מדויק של האפליקציה מבוסס ווב, מורכב כולו מג”ס, CSS ו-AJAX, אבל ניראה ועובד בדיוק כמו התוכנה החדישה ביותר על המחשב שלכם…
אני מאוד אוהב את הקונספט הזה, ומגישושים ראשונים שעשיתי בעזרת אחד המתכנתים שעובדים איתי- זה גם עובד.
יש בזה משהו מאוד נכון וטבעי. מאוד מיושר עם הכיוון בו נראה שהאינטרנט הולך\ת אליו.

28/10/06, 17:12
קונספט מעניין. מצד אחד, זה הגיוני: כמו שעדיף, ככל שאפשר, להתרחק מ-C ולכתוב דברים בשפה עילית (בחלומותיי, העולם עשוי מ-PERL), כך יש שאיפה להתרחק מג”ס שעובדת שונה בכל פלטפורמה. מצד שני, יש דברים שלא נוח לי להפקיר לרצונות של קומפיילר מסוג זה או אחר; לדוגמה, xhtml אני כותב בעצמי ולא סומך על Dreamweaver או FrontPage, רחמנא ליצלן.
22/02/07, 20:53
קיבלתי ממך השראה
http://webdev.blogli.co.il/archives/17
09/03/07, 12:37
רעיון נחמד אבל ממש לא חדש
וחוץ מזה אנשים בפשות לא יודעים לפתח בJAVASCRIPT וגם לא רוצים ללמוד
JAVASCRIPT קצת שונה משפות אחרות בגלל שהתיכנות בה מבוסס על prototypes
ולא על class כמו בJAVA אי אפשר לחשוב בJAVA ולפתח בJAVASCRIPT פשוט צריך
ללמוד. מתכנת מנוסה בJAVASCRIPT יכול להשיג פרודוקטיביות לפחות כמו זו של מפתחי JAVA.
11/03/07, 11:34
אני חושב שחזרת על רוב מה שאמרתי.
אני מסכים עם הקביעה שמתכנת JS צריך להיות מתכנת JS.
אבל אין שום סתירה בין זה לבין הקונספט של XML11 ודומיו.
18/03/07, 22:30
הייתי פה. גילתי שיש טקסט FFF
.
08/05/07, 15:03
גם גוגל הוציאו סביבת עבודה ג’אוואית לאג’קס.
אופן לזלו עושים את אותו הדבר עם פלאש.
14/06/07, 21:05
הווו, אני חושב על קומפיילר לג’אווה סקריפט כבר לפחות שנה. ומאוד מקנא בהם שהקדימו אותי. למרות ששמעתי על עוד כמה אנשים שעובדים על משהו דומה.
בכל מקרה, אני חושב שעניין ה”כל מתכנת שמכבד את עצמו לא ינסה להגיע לרמת מסטר בג’וואה סקריפט” היא לא נכונה. ג’וואה סקריפט היא העתיד. ואני בתור מתכנת רואה בה את העיקר בכל דף שאני בונה, היא הפונקציונליות. היא מה שנותן למשתמש לתקשר עם הדף.
זה נכון שיש כאלו בתחום הווב טפו.0 (אהבתי!) שהגזימו והשתמשו בג’וואה סקריפט בצורה מיותרת וחסרת כל תועלת, בהמון אתרים שראיתי. יש גם “ספריות” כמו פרוטוטייפ שהם הבזבוז הכי גדול של משאבי מערכת (וזמן של המתכנת, ללמוד את השפה) שראיתי. ואני מתפלא כל פעם מחדש כשאני רואה שמתכנתים משתמשים בהם.
אבל שוב, בשביל זה יש קומפיילרים לJS. הם השילוב המושלם למצב הזה
15/06/07, 13:44
מזל שאתה עדיין בשלב החשיבה…
אני בהחלט מקבל ש-JS היא כרגע השפה שמעצימה ומשפרת את אפיק התקשורת בין המשתמש לדף, ואני לא מזלזל בחשיבותה. זה עדיין לא אומר שהיא נחשבת שפה שמפתחים שואפים להתמחות בה. לפחות לא רק בה. וזה באמת חבל.
להגנת פרוטוטייפ ודומותיה אני יכול לומר שלמרות שהן באמת שמנמנות מדי, וברוב המערכות שכוללות אותן הן רק מכבידות במבחן העלות-תועלת, אבל אין לי ספק שהן באו בדיוק בזמן הנכון בכך שהנגישו יכולות מתקדמות יחסית לסביבת הפיתוח הוובית, ובכך תרמו להעלאת הסטנדרט הטכנולוגי והחווייתי של ממוצע האתרים והאפליקציות. לא בטוח שזה היה קורה אחרת, והמציאות מוכיחה זאת.
בעניין העתיד אגב, אני לא לגמרי מסכים ש-JS היא השפה.
כמו שכתבתי בפוסט, כרגע יש חלל טכנולוגי בווב, הכלים והתנאים למילוי החלל הזה קיימים ולכן אני חושב שבתסריט אחד JS תהפוך למה שקראתי “שפת המכונה” של הווב ותהיה נחלתם של מעטים יחסית אבל ממוקצעים הרבה יותר, או שלחלל הזה תחדור טכנולוגייה עשירה בהרבה, ואני לא מדבר על פלאש, אלא על התפתחות של התקנים והיכולות של “דפדפנים” ותוספים שיהפכו להיות סטנדרטיים.
גוגל כמובן, כבר עשו את הצעד הראשון.
15/06/07, 18:00
הבעיה היחידה שלי עם קומפיילרים וספריות, היא שהקוד של אתרים נהיה יותר מכוער ולא קריא. וזה בעצם כל היופי באתרי אינטרנט! מקש ימני -> view source ואתה יכול ללמוד את כל מה שהמתכנת עשה! ככה אני למדתי לבנות אתרים. היום כשאני רואה אתר שבנוי נכון, ובצורה קריאה, אני מתמוגג. רק בגלל שזה כל כך נדיר.
זה יכול להיות נהדר אם בעתיד כל האפליקציות יהיו בקוד פתוח פשוט בגלל שהן יהיו בנויות בתוך הדפדפן. אבל איך שזה נראה כרגע הקוד יהיה כל כך לא מובן ולא יעיל, שכל הקונספט הזה יהרס.
בקשר לסטנדרטים - בוא קודם נחכה ליום שאקספלורר יתמוך בטכנולוגיות הבסיסיות של CSS שחסרות לו, ואז אולי יגיע היום ששפה חדשה תצוץ (:
18/09/07, 11:34
יכול להיות גם שJS תעלם מן העולם(לא בקרוב) כמו שקרה לשפות טובות אחרות (לדוגמה smalltalk שהיא דרך אגב הרבה יותר טובה מJAVA לפי דעתי ויכול להיות שהיא עוד תחזור).
בקרוב(יחסית) תהיה לנו אפשרות לפתח בצד הלקוח(כן אני מתכוון לצד לקוח ממש כמו בJS) עם שפות כמו Python וPHP שגם הם שפות מעולות לדעתי(אני מתכוון לPython) אבל אני גם אוהב את JS וחושב שתמיד יהיה לה מקום.
השאלה היא אם יוכלו המפתחים לבחור בין Python(או משהוא יותר פופולרי כמו PHP) ל JS
כמה מהם יבחרו בJS?
לצערי אני חושב שלא רבים. וחבל!