שאלת תם - מה כל כך נורא בPHP?
-
@dovid
אני לא חושב שיש נקודה אחת שגורמת לאנשים לא לאהוב את PHP
אלא מכלול של פרטים שמציקים לכל אחד בפינה אחרת
ואני לא אומר שPHP זה שפה גרועה/רעה, אלא פשוט שפה ישנה שעדיף ללמוד שפות אחרות ולא להיכנס לפינות של השפה הזו, ומי שיש לו 10 שנות ניסיון בPHP אולי כדאי לו להישאר שם (אני אישית שמח שלא נשארתי שם, אבל זה היה טוב לשפה ראשונה). -
@nigun אמר בשאלת תם - מה כל כך נורא בPHP?:
עוד כאב ראש זה התאימות לאחור בין הגרסאות
אם בפייתון צריך להתמודד רק אם השינויים בין גרסא 2 ל 3
מPHP זכור לי שיש יותר כאבי ראש ויותר מעברים בין גרסאות (נראה לי שעכשיו זה אוחז ב8.1 כשיש לך שרתים שרצים רק על 5.6)
ואם אתה רוצה להריץ סקריפטים מגרסאות שונות זה כאב ראש רציני.דווקא בזה אני ממש חולק עליך.
ב PHP אם אתה מפתח בגרסה נמוכה יחסית, אין לך שום כאב ראש.
כאבי הראש מתחילים, כשאתה רוצה להתקין ספריה שמעודכנת לגרסה 8 ולך יש 5.6 בשרת. (אתה מכיר את זה כי עבדת עם אסטריסק, ו-FREEPBX היו בזמנו תקועים ב 5.6, זה לא מקרה סטנדרטי, כל שרתי האחסון מעדכנים מיד לגרסה האחרונה).@nigun אמר בשאלת תם - מה כל כך נורא בPHP?:
ואיך שכחתי את הקובץ PHP.INI שרוב האנשים לא מכירים את כל ההגדרות שלו
וכך יש לך הבדלים בין סביבת פיתוח לפרודקשן שזה מתכון לצרות.
(בפרט שלא ברור איפה הקובץ הזה יושב ובכל שרת אפשר למצוא אותו במקום אחר, אולי יש בזה כללים אבל אני זוכר שהיה בזה כאב ראש)זה נכון, זה קשור לזה שההגדרות חלות על שרת האינטרנט, וגם לזה שלפעמים יש 5 גרסאות PHP מותקנות על השרת (הבעיה הזאת קיימת בעוד שפות אני חושב).
-
@www אמר בשאלת תם - מה כל כך נורא בPHP?:
ב PHP אם אתה מפתח בגרסה נמוכה יחסית, אין לך שום כאב ראש.
מה אתה עושה אם יש פיצ'ר חדש ב8 שאתה ממש רוצה להשתמש בו ויש לך ספריה אחרת על השרת שתואמת רק ל5.6? גם אם זה פרוייקטים נפרדים זה כאב ראש להפריד ביניהם (אולי אני טועה וזה ממש קל להגדיר לכל פרוייקט גרסה שונה) אבל באותו פרוייקט זה נראה לי בלתי אפשרי.
-
@nigun אמר בשאלת תם - מה כל כך נורא בPHP?:
@www אמר בשאלת תם - מה כל כך נורא בPHP?:
ב PHP אם אתה מפתח בגרסה נמוכה יחסית, אין לך שום כאב ראש.
מה אתה עושה אם יש פיצ'ר חדש ב8 שאתה ממש רוצה להשתמש בו ויש לך ספריה אחרת על השרת שתואמת רק ל5.6? גם אם זה פרוייקטים נפרדים זה כאב ראש להפריד ביניהם (אולי אני טועה וזה ממש קל להגדיר לכל פרוייקט גרסה שונה) אבל באותו פרוייקט זה נראה לי בלתי אפשרי.
אני לא יודע באיזה מבנה היישום שלך בנוי, אבל יש את התחביר הזה:
if (version_compare(phpversion(), '5', '>=')) { // act accordintly }
וורדפרס למשל היא דוגמא לקוד PHP שנועד לעבוד עם טווח גרסאות אפשרי.
-
אני חושב, שיש הרבה סיבות לא לאהוב PHP, ורובם הוזכרו כאן לעיל. אבל הסיבה האמיתית ש"קוברת" את השפה (ענין של זמן, רק האקוסיסטם מחזיק אותה) זה ה"קוד ספגטי".
הבשורה של PHP (אי שם במאה ה-14) היתה היכולת לכתוב HTML בצורה דינמית, ובשפה קלה ונגישה.
לוקחים שורת HTML וכתובים אותה בלולאה, או מכניסים בה משתנה.
הבשורה, הזו, שהיתה בשורה אי שם, הפכה לחושך בעיניים של כל מתכנת מודרני. הערבוב בין הלוגיקה והAPI לבין הHTML - יצר את הביטוי קוד ספגטי, שאני לא מוצא גרוע ממנו. מכוער, קשה להבנה ולהתחזוק, ולא גמיש בגרוש.
עם הזמנים יצאו פתרונות שונים, ופריימוורקים שונים, ותבניות MVC וכדומה, אבל הם פותרים בקושי נקודת פתיחה גרועה.אז נכון, ככל שהBACK שלך גדול יותר, והHTML שולי יותר זה פחות משנה.
אבל אם זה המצב - אז גם בשביל מה PHP. למה לא שפה נקיה ומודרנים יותר וחפה מבעיות? ולמה פריימוורק בצד שרת שמנסה להסתדר עם המגבלות של השיטה הישנה כשיש פרייוורקים טובים בצד לקוח שעושים את העבודה בJS, בהפרדה חזקה מהשרת ובהפרדה חזקה בין הJS לHTML?
בעבר גם היכולות של JS ושל דפדנים היו מוגבלות מאוד, והיכולת של עיבוד HTML נוח בצד שרת היתה חשובה. אבל היום? SPA זו המילה האחרונה.אני חושב, שבסוף בחוויית מפתח, זה מה שקובר את השפה. לא רק הכלים שלה, אלא הייעוד שלה לא מתאים לעשור שלנו.