PHP vs. ASP.NET

מאמר הסוקר את ההבדלים המהותיים בין בניית אתרים ב PHP לבניית אתרים ב ASP .NET

אחת מהשאלות העולות בבניית אתר אינטרנט חדש היא, באיזה טכנולוגיה לבחור – PHP או ASP.NET.

הסיבה שבה משתמשים בטכנולוגיות אלו היא על מנת ליצור מערכות קבצים אשר ירוצו על השרת, ויאפשרו הכנסת מידע דינאמי לתוך דפי הHTML הסטטיים. הטכנולוגיות הזמינות היום לביצוע הקישור הן PHP, ASP, ASP.NET, CGI, JavaServer Pages (JSP) וPerl/Mason.

אני אתמקד במאמר זה בטכנולוגיות המובילות היום, PHP ו ASP.NET. אסקור את היתרונות והחסרונות של כל טכנולוגיה, כדי להבהיר את התמונה בנוגע לבחירת הטכנולוגיה.

מה זה ASP.NET?

טכנולוגיית ASP.NET הינה טכנולוגיית Microsoft והינה שדרוג מהותי של טכנולוגיית ASP המיושנת.ASP.NET מאפשרת עבודה עם שפות סקריפט שונות כמו VBScript, Jscript, Perlscript וPython.

חוזקה של ASP.NET הינה בפשטות התכנון שלה ובהטמעתה. השפה נוחה מאוד למתכנתים וכוללת גמישות מבחינת השפה. חוזק נוסף של ASP.NET הוא בסביבת הפיתוח שלה. מתכנתים יכולים להשתמש בWebMatrix (תוכנת עזר), Visual Studio.NET ומגוון יישומי Borland כמו Delphi ו C++ Builder.

אולם , מה שמשיגים בקלות, עולה בדר”כ ביוקר. ASP.NET הינה טכנולוגיה זוללת משאבים וזמן עיבוד, מכיוון שנכתבה בצורה פחות יעילה. ליישומי רשת, הגבלות אלו יכולים להוות בעיה רצינית. מכיוון שאתרי אינטרנט נצפים ע”י אלפי אנשים, הדבר יכול להוביל לשניות ארוכות של המתנה לפני גמר ביצוע הפקודה. בעיית הזיכרון עשויה להשפיע גם על שרת האחסון.

מה זה PHP?

PHP הינה שפת תכנות המבוססת על מודל תהליכים דינאמיים לדפי HTML.  שפת PHP תהיה מוכרת למתכנתים אשר עבדו עם שפות תכנות כמו Perl, C וJava. PHP מאפשרת עבודה מול מאגרי מידע רבים, כמו MySQL, Oracle וPostgres. חברת Zend, התורמת משמעותית לשפת PHP בנתה כלי פיתוח מסחרי הנקרא Zend Studio וכולל בודק באגים מתוחכם ותכונות נוספות. היא בנתה גם כלי אופטימיזציה בשם Zend Optimizer המייעל את הדף ומביא אותו לביצועים מהירים.

יתרונות הPHP כוללים מערכות ניהול שגיאות לצורך העלאת דפים נקיים משגיאות, כתיבה בצורה נכונה תביא לדפי רשת מהירים מאוד, המגיבים כמעט מיידית. כתיבה נכונה בPHP תביא גם דפים נקיים ולעומס נמוך על שרתי האחסון. חסרון של PHP הוא בכך שהוא Case insensitive, כלומר הכיתוב באנגלית יכול להיעשות ללא הבדל בין אם האות היא רישית או לא. ישנם מתכנתים שימצאו בזה דבר מציק, אם זאת החיסרון הוא שולי.

פיתוח בPHP יהיה זול יותר מכיוון שהקוד הינו פתוח. מכיוון שכך, ישנה גם קהילה גדולה מאוד של מאות אלפי מתכנתים שיתמכו בכתיבה, יזהו באגים ויעזרו בפיתוח יציב. במידה ויש אופציה שאינך אוהב, תוכל תמיד להוריד אותה ולא להישאר איתה (בניגוד לASP.NET).

אבטחת המידע

ASP.NET  דורשת שימוש בשרת Windows (IIS). לרוע המזל, לשרתי Windows יש היסטוריה ארוכה של פרצות אבטחה. לא ברור אם הסיבה לפרצות הם בגלל תכנון לקוי או בגלל שהאקרים ברחבי העולם מכירים ומעדיפים לפרוץ למערכות Microsoft. השורה התחתונה היא, ששרתים אלו נוטים לפריצות רבות יותר, והמידע הנשמר עליהם רגיש יותר לפריצות.

PHP רץ על שרתי Apache המאופיינים כשרתים מהירים מאוד, התומכים בקוד פתוח ומאובטחים הרבה יותר. מכיוון ששרתי הApache נכתבים בקוד פתוח – כל פרצת אבטחה, נסגרת מיד על ידי קהילת הקוד הפתוח בעולם.

השוואה בין החלופות – הגעה להחלטה

מבלי להניח שהחלטתם להתקדם עם טכנולוגיית PHP, אציין כי יתרונותיו גדולים על חסרונותיו. הוא מאפשר הורדת עלויות, הגברת מהירות ויעילות, חיזוק האבטחה, שימוש במערכות הפעלה רבות ונכתב בקוד פתוח. מצ”ב טבלה המשווה בין PHP 5 לבין ASP.NET:

תכונות PHP 5 ASP.NET
מחיר התוכנה חינם חינם
מחיר הפלטפורמה חינם $$
מהירות מהיר איטי
יעילות גבוהה נמוכה
אבטחה חזקה חזקה
פלטפורמה רב פלטפורמות רק IIS
קוד פתוח כן לא

מחיר

כאן יש לשקול לא רק את ההשקעה הראשונית, אלא גם את עלויות ההטמעה, התחזוקה והוספת מודולים בעתיד. PHP מספקת יחס עלות-תועלת גבוהה משמעותית מASP.NET.  העלויות של ASP.NET גבוהות בעיקר משום שהחל מרכישת כלי הפיתוח, דרך תשלום על הפלטפורמה והמשך בעלויות על כל מיני תוספות, ספריות, מניפולציות גרפיות ומודולים.

מהירות ויעילות

כפי שצוין קודם, ASP.NET מאפשרת תמיכה בשפות רבות. הדבר נכון, אולם הוא לרועץ כאשר מדובר במהירות. מכיוון שהקוד תומך בהרבה שפות, גלומים בו שורות קוד רבות, אשר רצות בכל פעם שדף ASP עולה, ובכך מאטות משמעותית את העלאת הדף. 

PHP הוא פתרון פשוט ומהיר, כזה שמבצע את העבודה. PHP הינו הקוד היעיל והאופטימאלי לכתיבת דפים דינאמיים. מהירות אינה השיקול היחידי כאן. ישנו גם נושא הזיכרון. PHP יאפשר כתיבה קלה שלא תעמיס על זיכרון השרת.

אבטחה

ASP.NET רץ על שרתי IIS, אשר ידועים בפגיעותם ומתועדים מידי שבוע במגזיני הIT בארץ ובעולם. פריצות השרתים נהיו לעול כל כך גדול, עד כי אנשי מקצוע רבים מסרים להשתמש בשרתי IIS בארגוניהם. PHP רץ על Apache אשר הוכח כמהיר, אמין ומאובטח מאוד.

Cross-Platorm

ASP.NET רץ על שרתי Windows. PHP תוכנן לעבוד על Apache ומותאם לשרתים מפלטפורמות שונות. הן Windows והן Linux.

קוד פתוח

קוד פתוח אינו רק פילוסופיה אידיאולוגית של מתכנתים או רצון של חברות לחסוך כסף ברשיונות התוכנה היקרים. כאשר מתמודדים עם באגים ופרצות בתוכנה, קוד פתוח הוא יתרון אדיר. גם בPHP וגם בASP.NET ישנה יריעה גדולה של שורות קוד אשר מעלים את הסבירות לבאגים. 

בASP.NET באג שמתגלה צריך לעבור דרך תהליך בירוקרטי ארוך על מנת להגיע לידיים המתאימות, להיבדק, להסתדר, ולהיות מופץ שוב דרך טלאי אבטחה. בPHP תיקון יכול להיעשות במהירות וביעילות. כל מי שפיתח בקוד פתוח יודע כי הפצות חדשות מוטמעות בתוך ימים במקום בתוך שבועות או חודשים. אם זה לא מהיר מספיק – בקוד פתוח אפשר גם לפתור את הבעיה דרך המתכנת.

*המאמר מהווה תמצות מאמרו של Sean Hull, עובד Oracle.

אודות המחבר