מתכנתי פולסטאק רבים מתכנתים סקריפטים בשפת ג'אווה סקריפט (JavaScript), והם עושים זאת מחוץ לדפדפן באמצעות Node.js, סביבת הרצה ל-JS המאפשרת תכנות אסינכרוני, בעת פיתוח פרונט אנד ובק אנד בג'אווה סקריפט.
כל המושגים הללו קצת לא ברורים לכם? רוצים לדעת מניין האנגלית שלי? אנחנו נעשה לכם סדר מהיר, כך שתדעו גם אתם מה זה Node.js.
כך תכתבו קוד בג'אווה סקריפט
כאשר אתם גולשים באינטרנט, בעיקר באתרים שבהם יש יותר מסתם טקסטים סטטיים אלא עמודים דינמיים, הקוד של האתר בנוי מכמה שפות. מה זה עמוד דינמי אתם שואלים? עמוד דינמי הוא עמוד אינטרנט שמה שמוצג בו משתנה בהתאם לפרטים שהוכנסו אליו על ידי הגולש. מכל מקום כאשר מדובר בעמודים דינמיים, אחת השפות בהן בנוי העמוד היא HTML (לפחות במקרה השכיח), שהיא שפת תגיות לתצוגה ולעיצוב של תוכן לתצוגה בדפדפן. זו השפה המהווה את "השלד" של עמוד האינטרנט. עליה יש שפת CSS, המכילה קוד הגדרות עיצוביות לאלמנטים ב-HTML.
אולם בנוסף לכך, דפי אינטרנט מכילים לא פעם סקריפטים הכתובים בג'אווה סקריפט (JavaScript), המאפשרים פונקציות דינמיות. שפת JavaScript (או JS בקיצור), היא שפה מוכוונת אובייקטים, כלומר הסקריפטים ב-JS הם מעיין "מובלעות" של סקריפט בדפדפן, המורכב ברובו מ-HTML כאמור. פיתוח בג'אווה סקריפט מאפשר מכלול של פונקציות (מתודות) ותכונות (Properties), המאפשרות שימוש באובייקטים דינמיים.
אז מה זה Node.js?
אם כן, אנחנו יודעים שג'אווה סקריפט רצה על דפדפני אינטרנט. עכשיו, איך נכתוב קוד בג'אווה? אפשרות אחת היא לכתוב על קובץ טקסט פשוט, אולם כך לא נוכל להפעיל את הקוד ולבדוק אותו. אפשרות אחרת (והיא מה שהיו עושים לפני Node.js), היא לכתוב אותו בדפדפנים. אולם אז ג'אווה יכולה לרוץ רק על דפדפנים, והיא טובה רק לפיתוח פרונט אנד).
עכשיו אפשר להבין מה זה Node.js ולמה היה מהפכני בזמנו: Node.JS היא סביבת ריצה שניתן לכתוב באמצעותה תוכניות JavaScript מחוץ לדפדפן. כמו כן, ה-Node.js הוא מיזם קוד פתוח (כלומר, מתוחזק על ידי קהילת מתכנתים); הקהילה דאגה לכך שניתן יהיה להתקין את Node.JS על כל פלטפורמה, קרי על כל מערכת הפעלה (Windows, מקינטוש, לינוקס וכדומה), ומאפשר סביבת ריצה לשפת JavaScript.
כמו כן, ה-Node.JS מאפשר תכנות אסינכרוני, וזה יתרון גדול של הסביבה הזאת. תכנות סינכרוני משמע ביצוע של פעולה אחת בלבד בכל רגע נתון לפי סדר: כלומר, קודם תבוצע פעולה A, אחריה B וכן הלאה. בתכנות אסינכרוני אפשר לבצע מספר פעולות מקבילות, כך שהביצוע של פעולה A לא יעכב את פעולה B וכן הלאה. רוצה לומר, אפשר לתכנת דברים מתקדמים ביעילות ובנוחות ולמגוון שימושים שונים, בזכות השימוש ב-Node.js.