איזה דפדפן הכי מהיר והכי טוב? הדפדפן הכי מושמץ הרבה יותר טוב ממה שאתם חושבים

2 בדצמבר 2011

10 תגובות

image

 

מי הכי מהיר?

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

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

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

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

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

האנימציות יותר חלקות בצורה משמעותית בIE, ונראות הרבה יותר איכותיות. עם כל הכבוד לעוד 4 מילי-שניות בטעינה של דף – האתר שלי מתנהג יותר טוב ב-IE. הנקודה החשובה ביותר מבחינת מהירות זה המהירות של המנוע של ג’אווה סקריפט שמאחורי הקלעים (שאחראי בין השאר על האנימציה).
גם כאן, הנושא נטחן עד דק עם מבחנים שמודדים מיליארד פרמטרים במהירות המנוע. כמאמר הידוע, יש “יש שקרים רגילים, יש שקרים ארורים, ויש סטטיסטיקה” – גם כאן – אני לא מבין גדול בבנצ’מרקינג (Benchmarking) של תוכנה – אבל מבחן המציאות הכי רלוונטי הוא jQueryUI.

 

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

image

זו דוגמא קטנה אבל משמעותית. הטיפוגרפיה נראית משמעותית יותר טוב ב-IE. הפונטים בIE פשוט נראים יותר איכותיים, בעוד בכרום הם אפילו לא ישרים!

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

image

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

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

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

 

תמיכה בסטנדרטים

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

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

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

כדוגמא שנתקלתי בה בזמן האחרון – תלת מימד;

יש מספר טכניקות מתחרות ליצירת אפקטים תלת מימדיים בHTML5: שימוש בCanvas3D, שימוש בCSS3, ו WebGL.

לאחרונה פיתחתי בסלע רכיב בתלת מימד בHTML והייתי צריך לבדוק באיזו טכנולוגיה להשתמש. CSS3 לא מאפשר תלת מימד אמיתי אלא רק הצגת אלמנטים דו מימדיים במרחב תלת מימדי בצורה די פרימיטיבית. זה מספיק ללא מעט אפקטים, אבל זה לא תלת מימד אמיתי.
Canvas3D וספריות דומות, זה מימוש של ספריית תלת מימד בJavaScript מעל Canvas. ו- Canvas לא באמת תומך בתלת מימד, אלא רק בגרפיקה דו-מימדית. הספריות האלו משתמשות בהרבה מאוד טריקים והרבה מתמטיקה בשביל להציג תלת מימד, והביצועים (שימוש בCPU לדוגמא) מורגשים מאוד. בשביל 500+ פוליגונים המצב נהייה בעייתי, במיוחד אם אתה רוצה שטאבלטים יצליח להריץ את זה (זו הייתה הדרישה בפרוייקט)

WebGL לעומת זאת הוא החלום של כל מפתח תלת מימד. ספרייה מקבילה לOpenGL המעולה, שמאפשרת תלת מימד אמיתי בHTML. פיתוח של משחקי תלת מימד אפשרי לגמרי עם ספרייה כל כך חזקה. בעצם כבר עושים את זה..

 

מגניב, לא? רק שIE לא תומך בזה.

כשחקרתי את WebGL קראתי פוסט אחרי פוסט שמשמיץ את מיקרוסופט ואת IE. אין תמיכה בIE9, ואין גם תוכניות לתמוך בזה אפילו בIE10. מעצבן. עד שהגעתי למאמר הזה. יש סיבה שמיקרוסופט לא תומכת בפיצ’ר לא גמור של HTML5. לצערנו הרב, יש פרצת אבטחה חמורה בWebGL. עד שזה לא יתוקן, לא תהייה תמיכה, וכרגע לא ברור מתי זה יתוקן. (ראה עוד בוויקיפדיה)

אני לא חושב שIE יותר טוב כאן מכרום, או ההפך. כל חברה בוחרת בטקטיקה משלה, ושתיהן לגיטימיות.

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

 

מה הסיפור של IE6?

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

רק שזה די הגיוני האמת. IE6 הוא פרימיטיבי, היות והוא דפדפן בן 10 שנים… להשוואה, זה הפלאפון שהיה לי לפני 10 שנים:

לא באמת פייר להשוות את הסמסונג המנוח הזה לסמסונג S2, נכון?

IE6 לא תמך בסטנדרטים של W3C בכלל. מיקרוסופט די עשו מה שהם רוצים, ולא ממש הקשיבו למה שיש לW3C להגיד.
זה אולי מעצבן אותנו היום, אבל אם נחזור 10 שנים אחורה – בעולם בו IE שולט על 90% מהשוק לא הייתה משמעות לסטנדרטים שועדה כלשהי קובעת…

(אחוז השוק של אקספלורר ב15 שנים האחרונות)

מה פתאום שועדה כלשהי תקבע סטנדרטים לדפדפן שהוא דה-פקטו הסטנדרט? המון פיצ’רים של HTML נקבעו בשטח. מיקרוסופט הוסיפו פיצ’ר, והW3C הוסיפו אותו לסטנדרט בדיעבד. כמעט כל הפיצ’רים אז התחילו ע”י מיקרוסופט או נטסקייפ, כשהW3C מוסיפים את מה שתפס לסטנדרט בדיעבד.
אף אחד לא חשב שזה משמעותי ב2001. רק ב2005 אני התחלתי להיות מודע לראשונה לסטנדרטים, וזה היה כשדפדפן שבהתחלה עצבן אותי מאוד בשם פיירפוקס התחיל לתפוס נתח שוק. בהתחלה לקח לי זמן להפסיק להאשים את פיירפוקס ולהתחיל להאשים את IE. הרי פיירפוקס עובד על פי הסטנדרטים של W3C, וIE לא, אז IE אשם, לא?
היום כשסטנרטים נהיו כל כך חשובים אז נראה שהתשובה היא בבירור כן, אבל ב2005 אני לא בטוח שזו תשובה נכונה. אם 90% מהשוק מריץ IE, אז IE זה הסטנדרט, ואם קרן מוזילה היקרה הייתה בוחרת להיות פחות ייקית ויותר פרגמטית, היא הייתה מפתחת לפי הסטנדרטים דה-פקטו. מי שייצר את בעיית תאימות הדפדפנים זה פיירפוקס, לא IE. אם פיירפוקס היה מתנהג כמו הסטנדרט דה-פקטו היו נחסך לנו כזה כאב ראש אדיר!

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

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

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

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

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

10 תגובות

  1. תלמיד לשעבר4 בדצמבר 2011 ב 8:33

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

    הגב
  2. חבר של חברותא4 בדצמבר 2011 ב 14:34

    לפני 10 שנים, חוץ מפלאפון מעאפן גם הייתה לך כיפה על הראש… 🙂

    הגב
  3. משה6 בדצמבר 2011 ב 20:12

    אני מסתכל על הדומיין של האתר הזה והכל נהיה ברור פתאום. לא השתכנעתי.

    הגב
  4. עודד6 בדצמבר 2011 ב 22:02

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

    הגב
  5. ירון6 בדצמבר 2011 ב 22:06

    הי אלעד, תמשיך בקצב הזה, אנחנו מבסוטים

    הגב
  6. eladkatz6 בדצמבר 2011 ב 22:43

    תודה ירון!

    עודד – בקרוב, אני מבטיח 🙂

    הגב
  7. Shabi_6698 בדצמבר 2011 ב 10:37

    רק להבהיר את השלכות הפוסט הנ"ל….

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

    העובדה שאתה צודק רק מגדילה את חומרת המעשה. 🙂

    תמשיך עם הפוסטים המצויינים (רק אולי בעילום שם)

    הגב
  8. רוני13 בדצמבר 2011 ב 8:01

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

    (הפקצ' "שלח" לא עובדת בכרום – מזל שיש בכרום תוסף שמאפשר שימוש בדפדפן הפרימיטיוי)

    הגב
  9. רוני13 בדצמבר 2011 ב 8:05

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

    הגב
  10. אדם אובייקטיבי1 באוגוסט 2012 ב 15:41

    הייתי אולי מקשיב יותר לפוסט זה אם הדומיין שבו הוא היה מתפרסם לא היה microsoft.co.il

    הגב