מסמך קצר שכתבתי על PHP לעומת ASP
מטרת מסמך זה היא להסביר את ההבדלים בין PHP ל ASP . PHP ו ASP הן שפות תיכנות לאפליקציות אינטרנט. הן רצות בצד שרת. משמעות הדבר היא שניתן בעזרתן ובעזרת מאגר נתונים כלשהו לבנות "אתר דינאמי" – אתר שמכיל נתונים רבים , יודע להציג אותם , להשתמש בהם ולשנות אותם. ASP היא טכנולוגיה פרטית של חברת מיקרוסופט. כל מי שמעוניין להשתמש בטכנולוגיה זו , חייב לקנות את כל המוצרים הנילוים – מערכת הפעלה ושרת IIS של מיקרוסופט. הקוד של ASP הוא קוד סגור ומוגן בזכויות יוצרים והתיעוד שקיים (שגם אותו צריך לקנות בחבילת MSDN) שייך למיקרוסופט. PHP לעומת זאת היא טכנולוגיה חופשית. כל אחד רשאי להשתמש בה ואין צורך לשלם על מוצרים נוספים. PHP עובד על כל סוגי השרתים ומערכות ההפעלה שקיימות כולל שרת IIS של מיקרוסופט. התיעוד הרישמי של PHP מופץ בצורה חופשית באינטרנט ויתרה מזו , גם קוד המקור של PHP מופץ בצורה חופשית באינטרנט כך שכל מתכנת יכול לפתחו ואין שום "סודות והפתעות". כתוצאה ישירה מכך, עלות ההפקה של אתר ב PHP נמוכה בהרבה מהעלות של אתר מקביל ב ASP. קצת על שרתים ------------ לאחרונה עלתה המודעות של בעלי שרתים לגבי סוג השרת אותו הם מפעילים בעקבות וירוסים שונים כגון NIMDA ו CODE RED . וירוסים כאלו ורבים אחרים הוכיחו ששרת IIS הוא שרת פרוץ ביותר ואתרים שעובדים על שרת כזה היו יעד נוח לתקיפות של "קראקרים" – פושעי מחשבים. וירוסים כאלו הסבו נזק לשרתי IIS בלבד ונזק כלכלי עצום לחברות שהחזיקו בשרתים מסוג זה. אתרים פשוטים נהרסו ותוכנם שונה על ידי הפורצים. אתרים אחרים המפעילים מערכות רגישות כגון מערכות סליקה, נפרצו והמידע הרגיש (כגון כרטיסי אשראי של לקוחות) נגנב והופץ ברחבי האינטרנט. יש לציין ששרת ה IIS הוא שרת "חדש בשכונה" והשרת הותיק יותר (והיציב יותר) הוא שרת "אפאצ´י". מתחילת ימי האינטרנט ועד עצם היום הזה , שרתי אפאצ´י הם השרתים השולטים באינטרנט. שרתי אפאצ´י הם שרתים יציבים ביותר שעובדים על מערכות הפעלה UNIX וקרובותיה (Linux,FreeBSD). מערכות הפעלה מבוססות UNIX הוכחו כמערכות היציבות והמאובטחות ביותר במשך 30 השנים שהן קיימות. ביצועים של PHP לעומת ASP ------------------------ בדיקות קפדניות הוכיחו שרמת הביצועים של שרת PHP מבוסס לינוקס עוקף כל טכנולוגיה מיקוסופטית המקבילה לו. ניהול הזיכרון של PHP הוא מעולה ואין את המושג "דליפות זיכרון" במילון המונחים של PHP. ASP ,לעומת זאת , בעייתי מאד מהבחינה הזו ואם ישנה דליפת זיכרון בתוכנית ה ASP , יתכן והשרת יקרוס בקביעות כל מספר ימים או שבועות. גם מבחינת מהירות הריצה של שתי השפות מחקרים הראו בבירור שזמן הריצה של אפליקציית PHP קטן בהרבה מהזמן הדרוש לאפליקציה זהה הכתובה ב ASP. מאגרי נתונים ------------ PHP תומך ועובד עם כל סוגי בסיסי הנתונים שקיימים כולל בסיסי הנתונים של מיקרוסופט. ASP תומך בעיקר ב ODBC/ACCESS שידוע במסורבלותו, איטיותו והנפח העצום שהוא גוזל מהדיסק הקשיח. מפתחי PHP מרבים להשתמש בבסיס נתונים בשם MySQL שהוא "קטן וממזר" כפי שרבים נוהגים לכנותו. מהירות התגובה של בסיס MySQL היא זריזה לאין ערוך והנפח שהוא דורש הוא מינימלי ביותר. להלן רשימת בסיסי הנתונים שנתמכים ב PHP : Adabas D, Ingres ,Oracle (OCI7 and OCI8), dBase ,InterBase, Ovrimos Empress, FrontBase, PostgreSQL ,FilePro (read-only), mSQL ,Solid Hyperwave ,Direct MS-SQL, Sybase, IBM DB2, MySQL, Velocis Informix, ODBC, Unix dbm קלות הפיתוח ב PHP ----------------- כל מתכנת בעל ידע בסיסי בשפת C או PERL יכול להתחיל לכתוב כמעט מייד אפליקציות PHP מסובכות. מבנה השפה של PHP (הסינטקס) קרוב מאוד לשפת C ועל כן הוא קרוב לליבם של מתכנתים רבים. לימוד PHP יכול להתבצע בצורה עצמית והוראת PHP אינה מצריכה הסמכה מיוחדת. התיכנות יכול גם להתבצע בצורה מונחית עצמים בדומה ל C++ . עלויות נילוות ------------- ב ASP קיימות עליות נלוות רבות. למשל כאשר אנו זקוקים לבצע פעולה מסויימת בעזרת מודול חיצוני. רוב המודולים של ASP נמכרים ברישיון סגור ואילו ב PHP יש לנו מגוון של אלפי מודולים חופשיים המופצים בחינם. כך למשל , אם ברצוננו לבנות טופס משוב\הזמנה פשוט , שלאחר סיום המילוי שלו על ידי משתמשי האתר , הוא ישלח באופן אוטומטי לתיבת הדואר האלקטרוני שלנו , עלינו לקנות מודול מיוחד לשליחת דואר. ב PHP לא נתקל בבעיה כזו. דוגמאות נוספות למודולים כאלו : מודול להעלאת קבצים (Software Artisans SA-FileUp) מודול להצפנה (ASPEncrypt) כל הפעולות האלו מתבצעות ב PHP ללא קושי ותשלום נוסף. לסיכום ------ היתרונות שיש ל PHP הם יתרונות עצומים. עסקים שיבחרו להשתמש בטכנולוגיית ASP בשנים הקרובות יסבלו מהנטל התחזוקתי והכלכלי העצום שנילווה איתה. הסיבה היחידה הניראית לעין לבחירה ב ASP היא שם המותג שעומד מאחוריה וזו לא סיבה מספקת כאשר ברצוננו לבנות מערכת מקצועית, יציבה והכי חשוב : מערכת שפשוט עובדת.