Javascript ו ecmascript6
-
ES זה תקינה לשפת JS. תקינה הכוונה מסמך עקרוני שמגדיר איך השפה עובדת, ואין לכך שום ביטוי מעשי כשלעצמו. אלא שהתקן הזה הוא התקן המכובד ע"י כל הגורמים בנושא, וממילא הדפדפנים צועדים פחות או יותר בעקבותיו.
הES6 (המהדורה ה6 של ES) זה גירסת התקינה שהפכה לרשמית ב2015 אחרי הרבה שנים של מחשבה ודיונים. התקינה הזו כוללת המון המון שינויים (לינקים בהמשך), שלרובם יש מכנה משותף והוא להפוך את JS לשפה נוחה לבניית מערכות של ממש (לא עוד שלושה קבצי סקריפט שהמפתח "אוחז ראש פחות או יותר" מה יש בהם ומה המבנה, אלא מאות קבצי קוד עם אלפי שורות ושנכתבים ע"י כמה אנשים - זה היה כמעט בלתי אפשרי בJS הותיקה).
לדפדפנים לוקח הרבה זמן ליישם תקינות חדשות. אני לא כ"כ מבין למה, אבל המציאות היא שעד לרגע זה המון תכונות לא נתמכות עדיין בדפדפנים הכי מודרנים. בעצם מצב כזה הופך את התקינה לכמעט לא רלוונטית! ההצלה הייתה הטרנספילרים. פיתחו כלים שממירים קוד מודרני לכל דבר - ES6 ואפילו מתקדם יותר, לJS ישן ועובד (ES5). וכך חברות גדולות אמצו את העבודה בES6. לכלי מהסוג הזה קוראים טרנספילר = ממיר שפת תכנות אחת לאחרת (בשונה מקומפיילר = ממיר שפת תכנות לקוד מכונה).
הטרנספילרים נכנסו מאוד חזק (המפורסם ביותר והראשון נראה לי היה babel), וכבר המון המון מתכנתים בעולם כותבים בES6 טהור (כמעט... הטרנספילרים גם הם לא יכולים - כנראה - לתמוך בכל השינויים). איך זה עובד? כותבים קוד ES6 ועם כלי תוכנה כל שהוא, כל הקבצים נכתבים מחדש למשל בתיקיה אחרת והפעם בES5. באתר הייצור התיקיה בשימוש היא הES5.אבל חלק נכבד מהשינויים כבר כן נתמך בדפדפנים המודרנים. לחברות של ממש זה לא עוזר כי יש אחוז נכבד של משתמשים שאין להם דפדפן מודרני (ויש להם למשל XP עם IE6 או WIN7 עם IE8). אבל הרבה מפתחים במיוחד קטנים שאין להם המון אחריות על הכתפיים, ולא חוששים מכאלה שלא יעבוד להם, כבר משתמשים עם המון פיצרים של ES6, כמוני למשל.
לינקים לקריאה נוספת
רשימת שינויים: http://es6-features.org/
תמיכת דפדפנים, טרנספיילרים ושאר הפלטפורמות: https://kangax.github.io/compat-table/es6/
מאמרים בעברית: https://internet-israel.com/מדריכים/es6/es6intro/
על הES6, ויקיפדיה האנגלית: https://en.wikipedia.org/wiki/ECMAScript -
דבר ראשון תודה על התשובה המקיפה והמקצועית,
ולגבי תגובתך השניה זה הנקודה,
האם היום בפועל מתכנת\ חברה\ מוצר שנכתב בJS
האם מומלץ\מקובל לכתוב עפ"י הבES6? (נניח שבאת רוצים לכתוב באופן טכנולוגי ומתקדם ולהמיר אותו ES5 כדי לתמוך בכל הדפדפנים)
כלומר למשל ביצירת קלאסים להשתמש בסינטקס החדש לדוג': class AA extends BB וכו'
או שכרגע בוחרים מה להשתמש הבES6, ובהגדרת קלאסים לדוג' משתמשים באופן המסורתי פונקציית קונסטרקטור, וכו,תודה
-
מקובל כיום וכך מעודדים כולם, לכתוב בES6. (בצד לקוח מקובל עדיין להשתמש עם טרנספילר).
מה זה כולל, זו שאלה מצויינת. הES6 אכן ודאי לא אומץ עדיין בשלמותו.
אבל כל נושא המחלקות בודאי שכן, זו ההמלצה היום.
(אפשר ללמוד זאת גם מהעובדה שזה נתמך כבר ממזמן בכל הדפדפנים המודרניים.
למעשה דפדפנים לא מודרנים לא קיימים כיום ברמת התמיכה, אלא רק פשוט יש משתמשים שתקועים איתם, כך שההמתנה היא שהאחוז הזה יהיה קטן מאוד).