זה היה יכול להיות סיפור מערבון קלאסי על קרב בין שני חברים ותיקים שדרכיהם נפרדו. שניים כאלה שהחיבור ביניהם היה כל-כך מושלם עד שאף אחד לא צפה את מה שעתיד לקרות.
כמו תמיד, הבעיה התחילה כשאחד הצדדים התחיל להביע התעניינות גוברת בתחום שהיה מזוהה עם חברו לשעבר (ויריבו בהווה). כך אפשר להתחיל את הסיפור ההוליוודי שלנו, רווי היצרים והמתחים, על Node.js. הטריגר שהביא להתפתחות קרב איתנים בין PHP ל-JavaScript (עד לא מזמן שני שותפים ששלטו ביחד באינטרנט).
השותפות בין PHP ל-JavaScript הייתה פשוטה וברורה. JavaScript עסק בפרטים קטנים בדפדפן ו-PHP ניהל את כל משימות הצד-שרת שיצאו בין פורט 80 ל-MySQL. אלה היו ימים מאושרים של הרמוניה. האינטרנט הוצף במערכות של קוד פתוח כמו וורדפרס, דרופל ופייסבוק, ואי אפשר היה להיות און-ליין יותר מדקה מבלי להגיע לגיליון PHP.
האידיליה השתנתה כשמתכנת צעיר (וחצוף!) גילה שהוא יכול לגרום ל-JavaScript לרוץ על השרת. לפתע פתאום, לא היה כל צורך ב-PHP לטובת פיתוח הדור הבא של משימות שרת. שפה אחת בלבד הייתה דרושה לבניית Node.js וסביבות העבודה הורצו אצל הלקוח. "JavaScript Everywhere" הפכה לתפיסת עולם.
טנגו של טקסט וקוד זה PHP
נניח שאתם רוצים להזין תוכן לאתר ובמקביל לצרף ענף נוסף לתהליך. למשל, הצהרת "If-Then" קטנה שמבוססת על פרמטרים ב-URL. במקרים כאלה, PHP היא פיתרון טוב יותר מ-Node.js. בעזרת PHP ניתן לפתוח את הקסם של תגיות PHP ולכתוב קוד בתוך שניות ספורות. לא צריך טמפלטים שכן הכל הוא טמפלט. אתם לא זקוקים לקבצים נוספים או ארכיטקטורה משוכללת. כל שדרוש הוא יכולות תכנות לוגיות בקצות האצבעות שלכם.
Node.js ודוקטרינת הפרדת הרשויות
שילוב קוד PHP וטקסט עלול להיות משענת קנה רצוץ. אמנם בפעמים הראשונות שתעשו את זה אתם עלולים לחשוב שזה כיף לחבר PHP עם HTML, אך מהר מאד תגלו שבסיס הקוד שלכם הפך לבלגן מאורגן. מתכנתים רציניים יודעים לפתח מבנים ארכיטקטוניים נכונים ולהפריד את השכבה הקוסמטית מהשכנה הלוגית. זוהי טכניקה שמקלה על הקריאה של הקוד ומשפרת את היכולת לתפעל אותו בהמשך. סביבות העבודה שרצות על Node.js נבנו על ידי מתכנתים שיודעים כמה החיים יפים יותר כשהמודל, התצוגה והבקרה מופרדים.
הפשטות מנצחת - PHP
PHP ידוע בכך שהוא קוד פשוט וזהו אחד מיתרונותיו הגדולים. אפשר להגדיר אותו בסך הכל ככמה פונקציות בסיסיות ומשתנות שמאפשרות "לשחק" עם שאילתות ולולאות. הוא שכבה דקה שלא עושה יותר מדי מלבד העברת מידע מפורט 80 לדאטאבייס ובחזרה. זו המטרה שלו. לא מעט מתכנתים ומפתחים יסכימו עם האמירה ש-PHP הוא מסובך בדיוק במידה המדויקת לעבודה שלא צריכה להיות מסובכת כלל.
המורכבות מנצחת – Node.js
כולם יודעים שיש ל-JavaScript כמה נטיות התנהגותיות (שלא נאמר הפרעות קשב וריכוז) אשר יכולות להוציא מפתח מכליו. אולם, ברוב המקרים זוהי שפת תכנות מודרנית אשר תומכת בסינטקס עדכני עם כמה תכונות שימושיות כמו מעגלים. מפתחים יכולים בקלות לסדר את ה-JavaScript מחדש ולהרחיב אותה בהתאם לצרכיהם. בקיצור, אם אפשר לדלג מעל פונקציונאליות ללא מאמץ, למה להגביל את עצמכם?
PHP – הורד אותו, התאם אותו, השתמש בו
הרשת מלאה בקוד PHP והפלטפורמות הפופולאריות לכך הן אתרי אינטרנט שנכתבים בשפה זו (כמו וורדפרס, ג'ומלה ודרופל). העניין כאן הוא לא רק אתר האינטרנט עצמו אלא גם התוספים (Plugins) אשר מושתלים בו לשיפור הביצועים. PHP הוא בכל מקום והוא מחכה לכם בכל פינה. הורד אותו, התאם אותו לצרכיך והשתמש בו כאוות נפשך.
Node.js מכריז שקוד חדש = תכונות מודרניות
אין ספק שיש מאות אלפי קבצים של קוד פתוח אשר כתובים ב-PHP והם פאר היצירה. עם זאת, חלק לא מבוטל מהם הם קבצים ותיקים שרבים מהם נכתבו לפני 7-8 שנים (מושגי נצח באינטרנט). הנה שאלה, מי רוצה לבזבז שעות (אם לא ימים או שבועות) על שיפוץ קוד שנכתב כשיאיר לפיד עוד היה מגיש בחדשות ערוץ 2. ובכן, Node.js הוא לא רק חדש יותר. התוספים שנכתבים בעזרתו מבוססים על ידע מהגישות הארכיטקטוניות המתקדמות ביותר. מאחורי החומרים שנכתבו בעזרת Node.js עומדים מפתחים שמבינים שאפליקציות רשת מודרניות חייבות לדחוף את מלוא האינטליגנציה שלהן אל הלקוח.
הסיפור שעדיין לא נגמר
הסוף טרם נכתב. על כל איש קוד שמלהג לגבי היתרונות של Node.js ומעלה על נס את בשורת הפשטות של JavaScript, יש תמיד אחד אחר שיעדיף את התכנות העמוק, הבסיסי והיציב (כמו גם המוכר והאהוב) של PHP. ברשימה הקצרה שלפניכם סקרנו שש נקודות מעניינות במאבק (שסופו טרם סופר).
כותב המאמר: Peter Wayner, Infowars , תרגום ועריכה: שחר דניאלי