• בלוג
  • מהי ES2015 ולמה צריך להיות לכם אכפת

מהי ES2015 ולמה צריך להיות לכם אכפת

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

בשנת 1995 הכריזה נטסקייפ על כוונתה לפתח שפת תכנות עבור הדפדפן שתקרא JavaScript. עשרים שנה אחרי ביוני 2015 אושר רשמית התקן עבור גירסא 6 של השפה, שהוא העדכון המשמעותי ביותר מאז סוף שנות ה-90.

1. למה צריך JavaScript חדשה

גירסת ה JavaScript שכולכם מכירים היא גירסא 3, שיצאה ב 1999. בעשר השנים שלאחר מכן חל קפאון בכל עולם ה Web. הוועדה שתפקידה לאפיין את גירסא 4 של JavaScript התפצלה עקב סכסוכים פוליטיים והגירסא ננטשה. החברות הגדולות Yahoo, Microsoft ו Google הקימו וועדה משלהן והחלו לעבוד על תקן לגירסת JavaScript 3.1 שתפקידה לתקן באגים ולשפר תאימות בין דפדפנים.
גירסא זו הפכה לימים ל ES5 שהיא הגירסא הנתמכת בדפדפנים המרכזיים היום.

היכולות החדשות המרכזיות של ES5 כללו את Strict Mode, הגדרת Getters ו Setters לאוביקטים, האפשרות להוסיף פסיק בסוף השורה האחרונה בהגדרת אוביקט. נוספו גם מספר פונקציות חדשות כמו למשל הפונקציות לעבודה עם JSON והפונקציה Object.create. כמו שאתם מבינים לא מדובר כאן על מהפכה ולמעשה עולם המושגים של מתכנתי JavaScript נשאר כפי שהיה ב 1999.

ואז הגיע HTML5.

ובנוסף לתקנים החדשים של HTML ו CSS קיבלנו גם פרדיגמה תכנותית אחרת לגמרי: במקום שמפתחים יכתבו סקריפטים פשוטים וקצרים או מקסימום jQuery Plugins, מפתחים עברו לכתוב יישומים מלאים ב JavaScript, מה שמכונה Single Page Applications.
אלו יישומים שמורכבים מהמון קבצי JS (מאות, אלפי ואף עשרות אלפי שורות קוד ליישום). כדי לשמור על שפיות מתכנתים עברו לכתוב קוד מונחה עצמים המחולק למודולים, כך שניתן יהיה לתחזק ולהחליף רכיבים שונים במערכת. הבעיה ששפת JavaScript לא עזרה לכתוב קוד טוב בפרדיגמות אלו, ופעמים רבות אף הפריעה.הספר JavaScript: The Good Parts שיצא ב 2008 היה אחד המייצגים הבולטים של שינוי זה. דאגלס קרוקפורד מתאר שם כיצד באמצעות ES5 אפשר לממש עקרונות תכנות שאנו מכירים משפות מונחות עצמים מודרניות כגון Java או C#. אבל בינינו, העובדה שצריך בכלל ספר כזה מעידה יותר מכל על מגבלות השפה.

2. מה ES6 כוללת

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

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

 

3. תמיכה בדפדפנים

הדפדפנים המרכזיים מוסיפים את התמיכה ב ES6 בהדרגה, בדומה לתהליך שעשו עם CSS3 כשנכנס. אפשר לראות רשימה מלאה של יכולות השפה והתמיכה של כל דפדפן כיום ביכולת מסוימת בטבלא הבאה:
https://kangax.github.io/compat-table/es6/

כדי לתמוך בדפדפנים ישנים וגם בשביל לאפשר יכולות שעדיין לא מומשו לדפדפנים חדשים קיים כלי בשם Babel שמסוגל לקחת כל קוד ES6 ולתרגם אותו לגירסת ה ES5 התואמת. אפשר לקרוא עוד על הכלי בעמוד הבית של הפרויקט בקישור:
https://babeljs.io/

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

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