آبجی
15th February 2010, 01:10 AM
دوستان ۷ دلیل برتری PHP نسبت ASP را در این مقاله بررسی میکنیم و در ادامه سعی میکنم هر هفته حداقل ۱ مقاله در مورد PHP براتون میزارم. امیدوارم کمکی در جهت بالا بردن سطح علمی دوستان و آشنا شدن آنها با PHP باشه. ۱- سرعت ، سرعت ، سرعتاولین باری که یک کد به زبان PHP نوشتم بر روی یک کامپیوتر Pentium 166Mhz بود بر روی سیستم عامل Linux و بههمراه Apache Web Server . بسیار برایم جالب بود که چقدر کد های من سریع اجرا می شوند . یعنی در آن موقع بااگر شما یک Windows NT بر روی آن می توانستید سوار کنید و به فرض که IIS هم بر روی آن بالا می آمد فکر کنماصلا وقت Serve کردن صفحات عادی html را نداشت چه برسد به اینکه بخواهد ASP را هم اجرا کند . علتش این استکه Microsoft از یک Technology در اجرا کردن کدهای زبان ASP استفاده می کند که در آن هر موقع شما تصمیم بهاستفاده از یک عنصر خارجی مانند VBScript, MSSQL, ODBC و خیلی چیزهای دیگر که در حقیقت از Engine هایخارجی استفاده می کنند دستور به آن Engine خارجی می دهد و جواب بدست آمده را بررسی و برای استفاده در اختیارادامه برنامه می گذارد . همین رفت و برگشت و اجرا کردن Engine های خارجی باعث کند شدن سرویس دهی می شود کهاین را شما به خوبی می توانید در استفاده از MSSQL به طرق مختلف احساس کنید . مثلا اگر شما خود MSSQL Extentions
برای استفاده از MSSQL استفاده کنید برای یک Query مشترک ۱.۸۸ ثانیه زمان تلف می شود و اگر همان را با استفادهاز ODBC اجرا نماﺋید زمانی در حدود ۹.۵۴ ثانیه تلف می شود که این خود نشان می دهد که ASP اینها را به تنهاﺋی اجراءنمی کند و از Engine های ویندوز استفاده می کند .
۲- استفاده بهینه از Memory
در IIS4 اگر شما در یک صفحه مثلا ۲۰ بار یک صفحه را Include کنید این صفحه ۲۰ بار در حافظه بارگذاری می شود و درحقیقت حافظه شما ۲۰ برابر زیادتر اشغال می شود . البته شنیدم که این مشکل در ویندوز ۲۰۰۰ و IIS5 حل شده استاما بازهم برای کسانی که ASP را مینویسند و می خواهند آنرا بر روی سرور های Hosting که دارای سیستم عامل NT
هستند اجرا کنند مشکل زا است و باعث کند شدن سیستم می شود و در Load بالا مسلما مشکل زا خواهد شد .
این مشکل به طور کلی در PHP وجود نداشته و ندارد و استفاده درست از Memory در هنگام اجرای یک کد باعث شده استکه صفحات در Load بالا نیز به خوبی قابل رٶیت باشند .
۳- خرج اضافی ندارید !
مثلا در ASP اگر بخواهید از امکاناتی نظیر Encryption یا File Uploading یا ارسال نامه توسط کد برنامه استفاده کنیدباید امکانات اضافی برای این کار خریداری کنید و نصب کنید تا این امکانات به IIS شما اضافه گردد . این در حالیست کهدر PHP همه اینها در هنگام Compile در نظر گرفته می شوند و همگی از امکانات Standard این زبان هستند و هیچ نصبیا خرج اضافی در کار نیست .
۴- MySQL بهترین انتخاب، بیشترین سرعتدر اینجا قصد ندارد به مقایسه MySQL و MSSQL بپردازم . اما به خاطر قدرت خارق العاده MySQL و سازگار بودن این
DBMS با زبان PHP به صورتیکه PHP اتصال به MySQL را به صورت دستورات Internally پشتیبانی می کند و حتی نیازبه نصب Module اضافی برای این کار نمی باشد ، از سرعت بسیار بالاﺋی در کار با SQL برخوردار است که شاید بعدا درمورد MySQL مقاله ای نوشتم .
۵- نزدیک بودن Syntax به ++C/C و Java
از آنجاﺋیکه اکثر برنامه نویسان از ++C/C استفاده کرده اند و بخاطر محبوب بودن بی حد Java معمولا با Syntax هایاین دو زبان اکثرا آشنا هستند . PHP هم اکثر Syntax های خود را شبیه به این زبانها انتخاب کرده است که برای یادگیریدوباره Syntax دستورات دچار مشکل نشوید که مسلما Microsoft اصلا برایش این مساﺋل مشکل حساب نمی شود .
۶- رفع ایرادات ، سریع ، بی دردسرتا حالا از Microsoft خواسته اید که ایرادی را در سیستمهای خود رفع کند ؟ مسلما اگر شرکت بزرگی مانند Boeing
نباشید حرف شما خیلی خریدار ندارد یا لااقل به این زودی ها به نتیجه نمی رسید .
OpenSource بودن PHP این امکان را به شما می دهد که شخصا اقدام به رفع مشکل کنید و آنرا برای دستندرکاران PHP
ارسال کنید و یا اینکه در Mailing List های عمومی PHP موضوع را مطرح کنید و خواهید دید که از سراسر دنیا برایرفع ایراد شما Patch ارسال می گردد .
۷- اجرا بر روی Platform های مختلفدرست است که خیلی از این ایرادات را Microsoft رفع خواهد کرد و Technology های جدیدتر اراﺋه خواهد کرد ( چهبسا این Net. که الان آمده همه را درست کرده باشد ) اما یک مشکل اساسی برای ASP وجود دارد و آن این است که
ASP بدون Windows یعنی هیچ ! بدلیل اینکه ASP نصفی از کدها را توسط Engine های ویندوز اجرا می کند که درسیستم عامل های دیگر خبری از آنها نیست . لذا ASP در سیستم عاملهای دیگر همیشه دارای ضعفهای بزرگی است .
اما PHP به دلیل آنکه توسط GNU C Compiler در همه Platform ها قابل Compile شدن است و از Engine های خاصهیچ سیستم عاملی برای اجرای کدها استفاده نمی کند قابلیت اجرا بر روی تعدا زیادی از OS ها را داراست که این یکمزیت برای برنامه نویس ها محسوب می شود
برای استفاده از MSSQL استفاده کنید برای یک Query مشترک ۱.۸۸ ثانیه زمان تلف می شود و اگر همان را با استفادهاز ODBC اجرا نماﺋید زمانی در حدود ۹.۵۴ ثانیه تلف می شود که این خود نشان می دهد که ASP اینها را به تنهاﺋی اجراءنمی کند و از Engine های ویندوز استفاده می کند .
۲- استفاده بهینه از Memory
در IIS4 اگر شما در یک صفحه مثلا ۲۰ بار یک صفحه را Include کنید این صفحه ۲۰ بار در حافظه بارگذاری می شود و درحقیقت حافظه شما ۲۰ برابر زیادتر اشغال می شود . البته شنیدم که این مشکل در ویندوز ۲۰۰۰ و IIS5 حل شده استاما بازهم برای کسانی که ASP را مینویسند و می خواهند آنرا بر روی سرور های Hosting که دارای سیستم عامل NT
هستند اجرا کنند مشکل زا است و باعث کند شدن سیستم می شود و در Load بالا مسلما مشکل زا خواهد شد .
این مشکل به طور کلی در PHP وجود نداشته و ندارد و استفاده درست از Memory در هنگام اجرای یک کد باعث شده استکه صفحات در Load بالا نیز به خوبی قابل رٶیت باشند .
۳- خرج اضافی ندارید !
مثلا در ASP اگر بخواهید از امکاناتی نظیر Encryption یا File Uploading یا ارسال نامه توسط کد برنامه استفاده کنیدباید امکانات اضافی برای این کار خریداری کنید و نصب کنید تا این امکانات به IIS شما اضافه گردد . این در حالیست کهدر PHP همه اینها در هنگام Compile در نظر گرفته می شوند و همگی از امکانات Standard این زبان هستند و هیچ نصبیا خرج اضافی در کار نیست .
۴- MySQL بهترین انتخاب، بیشترین سرعتدر اینجا قصد ندارد به مقایسه MySQL و MSSQL بپردازم . اما به خاطر قدرت خارق العاده MySQL و سازگار بودن این
DBMS با زبان PHP به صورتیکه PHP اتصال به MySQL را به صورت دستورات Internally پشتیبانی می کند و حتی نیازبه نصب Module اضافی برای این کار نمی باشد ، از سرعت بسیار بالاﺋی در کار با SQL برخوردار است که شاید بعدا درمورد MySQL مقاله ای نوشتم .
۵- نزدیک بودن Syntax به ++C/C و Java
از آنجاﺋیکه اکثر برنامه نویسان از ++C/C استفاده کرده اند و بخاطر محبوب بودن بی حد Java معمولا با Syntax هایاین دو زبان اکثرا آشنا هستند . PHP هم اکثر Syntax های خود را شبیه به این زبانها انتخاب کرده است که برای یادگیریدوباره Syntax دستورات دچار مشکل نشوید که مسلما Microsoft اصلا برایش این مساﺋل مشکل حساب نمی شود .
۶- رفع ایرادات ، سریع ، بی دردسرتا حالا از Microsoft خواسته اید که ایرادی را در سیستمهای خود رفع کند ؟ مسلما اگر شرکت بزرگی مانند Boeing
نباشید حرف شما خیلی خریدار ندارد یا لااقل به این زودی ها به نتیجه نمی رسید .
OpenSource بودن PHP این امکان را به شما می دهد که شخصا اقدام به رفع مشکل کنید و آنرا برای دستندرکاران PHP
ارسال کنید و یا اینکه در Mailing List های عمومی PHP موضوع را مطرح کنید و خواهید دید که از سراسر دنیا برایرفع ایراد شما Patch ارسال می گردد .
۷- اجرا بر روی Platform های مختلفدرست است که خیلی از این ایرادات را Microsoft رفع خواهد کرد و Technology های جدیدتر اراﺋه خواهد کرد ( چهبسا این Net. که الان آمده همه را درست کرده باشد ) اما یک مشکل اساسی برای ASP وجود دارد و آن این است که
ASP بدون Windows یعنی هیچ ! بدلیل اینکه ASP نصفی از کدها را توسط Engine های ویندوز اجرا می کند که درسیستم عامل های دیگر خبری از آنها نیست . لذا ASP در سیستم عاملهای دیگر همیشه دارای ضعفهای بزرگی است .
اما PHP به دلیل آنکه توسط GNU C Compiler در همه Platform ها قابل Compile شدن است و از Engine های خاصهیچ سیستم عاملی برای اجرای کدها استفاده نمی کند قابلیت اجرا بر روی تعدا زیادی از OS ها را داراست که این یکمزیت برای برنامه نویس ها محسوب می شود