אופרה עוברת ל–Webkit: על הומוגניות וקוד פתוח

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

אלא שהסתכלות קצת יותר מעמיקה תראה שהדפדפן עצמו לא משנה. מה שחשוב זה המנוע. מנועי web נפוצים קיימים רק ארבעה: Gecko, עליו רץ פיירפוקס, WebKit, עליו רצים כרום, ספארי והדפדפן של אנדרואיד, Trident, עליו רץ אינטרנט אקספלורר, ו–Presto, עליו רץ אופרה.

אלא שהיום יש אחד פחות. אופרה הכריזה שהם עומדים להעביר את הדפדפן שלהם לרוץ מעל WebKit. המעבר לא יהיה מיידי, אבל המשמעות היא זהה: בשוק יהיה מנוע אחד פחות, ומסת המשתמשים ב–WebKit תגדל עוד.

Monoculture

מילה על עולם האינטרנט עד לפני כחמש שנים. בעולם הזה אינטרנט אקספלורר גרסה 6 היה הדפדפן הפופולרי ביותר, עם כ–98% מהגולשים גולשים דרכו. מיקרוסופט הרגישה שהיא ניצחה את קרב הדפדפנים, והפסיקה לעדכן את הדפדפן. ארגוני התקינה (במקרה הזה, World Wide Web Consortium, או W3C) המשיכו לעדכן את התקן לגבי מה זה HTML ומה הוא יכול לעשות, אבל ללא מימוש אצל 98% מהגולשים, כותבי האתרים לא יכלו להשתמש ביכולות החדשות.

מה שיותר גרוע, אבל, היתה תופעת ה–Monoculture. לא זו בלבד שכותבי אתרים לא יכלו להתבסס על התקן, רבים מבניהם בכלל לא היו מודעים לקיומו. כדי שאתר יעבוד, הוא צריך היה לעבוד טוב על אינטרנט אקספלורר, וזהו. פניה לכותבי אתרים בנסיון לשכנע אותם לתמוך בתקן קיבלה את התגובה „אינטרנט אקספלורר הוא תקן דֶה–פַאקְטוֹ”.

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

תקן דה–פאקטו לא נותן אף אחד מהיתרונות האלו. ראשית, הוא לא מתועד.הדרך היחידה לדעת מה „תקני” ומה לא היא ניסוי וטעיה – בדיוק הבעיה שתקן נועד למנוע. תקן דה–פאקטו מוגדר ע״י התוכנה שמממשת אותו. כתוצאה מכך, אין התנהגויות תקניות לעומת באגים במימוש – כל מה שאינטרנט אקספלורר 6 עושה הוא תקני בהגדרה, כולל באגים שאף אחד לא רוצה שיישארו. למעשה, הדומיננטיות של אינטרנט אקספלורר 6 יושבת היום כאבן ריחיים על צווארה של מיקרוסופט ביצירת אינטרנט אקספלורר 7, 8, 9 וכו׳. ישנם מודי עבודה מיוחדים שמטרתם לנסות לנחש אם דף מסויים נבנה עבור אינטרנט אקספלורר 6, ואם כן, להתנהג בצורה שונה.

במילים אחרות, ימי „תקן דה–פאקטו” הם ימים שאף אחד לא רוצה לחזור אליהם.

המבחן הגדול של הקוד הפתוח

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

כפי שכל אוונגליסט לינוקס בוודאי כבר יודע, עודף בחירה הוא מבלבל לרוב משתמשי המחשב. אולי כתוצאה מכך, ואולי לא, יש נטיה לשוק להערך סביב שני שחקנים, אחד מוביל, עם מעל 80% מהשוק, ואחד שני, עם כ–15% מהשוק. כל שאר השחקנים נאלצים לריב על הפירורים שנותרו. זה יכול להיות חלונות לעומת מאק (ולינוקס במאסף), iPhone לעומת אנדרואיד (עם בלאקברי וחלונות הרבה מאחור), או Google לעומת Yahoo (בינג? מישהו?). הזמן היחידי שבו אפשר לראות יותר משני שחקנים בעלי נתח שוק משמעותי הוא בזמן שיש שינוי של מוביל. זו הסיבה שבשוק הדפדפנים אנחנו מדברים כיום על יותר שחקנים – אינטרנט אקספלורר בדרך החוצה (כפי שניתן לראות מהעובדה שמיקרוסופט מפיקה לו פרסומות!).

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

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

שחר

מאת

שחר שמש

מייסד ומנכ"ל "לינגנו ייעוץ קוד פתוח בע"מ" חבר ועד בעמותת "המקור" וסתם פעיל קוד פתוח ולינוקס

3 thoughts on “אופרה עוברת ל–Webkit: על הומוגניות וקוד פתוח”

  1. הבעיה היא לא רק קיפאון של המנוע, אלא גם הבעיה ההפוכה והיא יצירת "תקני דה פאקטו" חדשים. בתקופה שאקספלורר היה דומיננטי, למשל, הוכנסו שיפורים רבים בדפדפן, אלא שאלו לא רק שלא היו מתועדים מספיק, אלא במקרים מסויימים בלתי ניתנים למימוש בטכנולוגיות שהקשר בניהן למערכת ההפעלה רופף יותר (למשל ActiveX, מסננים של DirectX, שפות חדשות שמעולם לא תפסו כמו VRML, שפת VBScript ועוד טכנולוגיות רבות נוספות).

    כיום המנועים WebKit ו־Gecko (מוזילה עובדים על מנוע נוסף בשם Servo כפרויקט צדדי, אבל בעתיד הוא עשוי להחליף את המנוע הקיים) הם שניים מהמנועים החשובים, כאשר אליהם מצטרפים שני מנועים מוערכים פחות על קהילת המפתחים אבל הם עדיין חשובים ומתעדכנים באופן תדיר – Trident ו־Presto. שינוי של המצב הקיים יעביר יותר כוח למנוע אחד, וגם לכך שהמצדדים בו בוועדות של W3C יגדל, ובכך גם כוח רב יותר להשפיע על וועדות התקינה וגם לדוף למנוע שלהם קוד שאינו יתקבל בברכה במנועים אחרים, גם אם מדובר בתוכנה חופשית.

    למשל? חברת Apple שהיא עדיין בעלת עמדה חשובה בכל הקשור לפיתוח של WebKit עשויה לחשוב שיש טעם בהכנסה של מנגנוני DRM לדפדפן באופוזיציה אחת עם חברת Microsoft, ולהכניס את זה לקוד של WebKit. ארגון Mozilla, שנוקט עמדה כנגד הכנסת מנגנוני נז"ק ימצא את עצמו בעמדת מיעוט, ועלול להימנע משילוב של טכנולוגיה זו, והנה שוב שברנו את ההגמוניה של תאימות בין דפדפנים ומנועים שונים.

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

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

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

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

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

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

    שחר

סגור לתגובות.