ASP vs php

هر دو زبان برنامه نویسی تحت PHP و ASP.NET در واقع زبان های اسکریپت نویسی سمت سرور یا در اصطلاح فنی Server Side Scripting هستند که برای طراحی وب سایت های داینامیک مورد استفاده قرار می گیرند. صفحات وب داینامیک ابتدا درخواست کلاینت را در سمت سرور پردازش کرده و در نهایت پس از هر بازدید کاربر نتیجه را به سمت کاربر ارسال می کنند. انتخاب بین این دو زبان اسکریپت نویسی بستگی به مواردی از قبیل اندازه و بزرگی وب سایت ، قابلیت های توسعه وب سایت ، هزینه های هاستیگ وب ، هزینه های پشتیبانی و زمان پیاده سازی و بسیاری دیگر از مواردی از این قبیل دارد که در ادامه به بررسی اکثر این موارد خواهیم پرداخت.
به هیچ عنوان بصورت کلی نمی توانیم بگوییم فلان چیز خوب است یا فلان چیز بد است ، برای تعیین خوبی یا بدی چیزی بایستی شما دارای ملاک یا فاکتور باشید در غیر اینصورت مقایسه یا انتخاب شما غیرفنی و از روی تعصب یا نادانی خواهد بود. در خصوص انتخاب زبان برنامه نویسی هم همینطور است ، شما بایستی بدانید ملاک های شما برای انتخاب یک زبان برنامه نویسی وب چیست ؟ صرفا به دلیل اینکه فردی بگوید زبان برنامه نویسی PHP بهتر است زیرا وی برنامه نویس PHP است و یا بر عکس برای برنامه نویسان ASP.NET ، شما نباید انتخاب انجام دهید.

سرعت برنامه نویسی :


با توجه به وجود کدهای آماده و رایگان بیشتر برای PHP معمولا سیکل طراحي سايت با PHP به مراتب سریعتر از ASP.NET می باشد و همچنین کد زنی در PHP بسیار ساده تر می باشد و وجود سیستم های مدیریت محتوای رایگان و محبوبی نظیر جوملا و وردپرس کار طراحی وب سایت را بسیار ساده و سریع می سازد. البته .NET نیز سیستم های مدیریت محتوای رایگان خود نظیر DotNetNuke و Kentico را دارد.

سرعت php و asp.net :


یکی از دلایلی که برنامه نویسان php برای دفاع از آن مطرح می کنند سرعت آن است و میگویند که سرعت php از asp.net بیشتر است، در حالیکه آزمایشات انجام شده نتیجه کاملا متفاوت را نشان می دهند. از نظر منطقی نیز چنین چیزی امکان ندارد به این دلیل که کدهای خروجی asp.net در سمت سرور تفسیر نمی شوند و به صورت dll هستند و web server در زمان اجرای کدها هیچگونه زمانی برای تفسیر آنها نمی گذارد و با سریعترین زمان ممکن اجرا می شوند. لذا چنین حرفی هیچ پایه و اساس علمی ندارد.

میزان توسعه پذیری :


هر دو زبان PHP و ASP.net دارای قابلیت توسعه پذیری بسیاری می باشند. برای مثال فیس بوک که دومین سایت پربازدید دنیا می باشد و بیشترین ترافیک را در میان تمامی وب سایت ها به خود اختصاص می دهد با استفاده از زبان PHP ایجاد شده است. حال آنکه وب سایت MySpace که از نظر محبوبیت و میزان شهرت با فیس بوک تقریبا برابری می نماید با استفاده از ASP.net ایجاد شده است. این مساله نشان دهنده آن است که هر دو زبان ASP.net و PHP بسیار توسعه پذیر می باشند و هرچقدر که برنامه نویس ها بخواهند برنامه های پیشرفته تر و کامل تری بنویسند این زبان های برنامه نویسی به آنها خدمات بیشتری را ارائه می نمایند.

بازار کار داخلی برای PHP و ASP.Net :

در کشور خودمان میزان درخواست برای نیروی کار برای PHP از ASP.Net بیشتر است اما اگر فقط برنامه نویس .NET تحت این بررسی بود شرایط فرق می‌کرد. البته این بررسی نشان داد که کیفیت مشاغل ASP.Net در بیشتر مواقع بالاتر است.

بازار کار خارجی برای PHP و ASP.Net :

در بازار کار جهانی این دو اختلاف کمتری نسبت به هم دارند اما باز هم تقاضا برای نیروی PHP بالاتر است. و این بررسی نشان داد که بیشترِ شرکت‌هایی که تازه وارد بازار شده‌اند به سمت PHP گرایش دارند.

آیا سایت های بزرگی مانند گوگل و آمازون با php برنامه نویسی شده اند :

پاسخ قطعا منفی است! سایت های فوق عمدتا از زبان های C++‎‎‎‎ پایتون و جاوا برای برنامه نویسی سمت سرور خود استفاده می کنند و به هیچ وجه از پلتفرم های اپن سورس مثل پی اچ پی در طراحی بخش های اصلی آنها استفاده نشده است. تنها گوگل برای برخی از سرویس های جانبی خود به طور محدود از زبان php استفاده می کند. تنها سایت پربازدید دنیا که از php استفاده می کرده است سایت یاهو بود که آن هم در حال انتقال برنامه های خود به زبان جدید node.js است.
می‌توان گفت به جز تفاوت زبان برنامه نویسی php با ASP یک وجه شباهت با هم دارند ، هیچ سایت قدرتمندی از این زبان ها به طور مستقیم استفاده نکرده است.

امنیت :

ایمن بودن نرم افزارهای کدباز یکی از مباحثی است که برخی برنامه نویسان مطرح می کنند. به طور کلی هر سیستمی که افراد زیادی بر روی آن کار کنند و استفاده کنندگان زیادی داشته باشد به مرور تکمیل می شود. اما کدباز بودن نه تنها دلیل بر ایمن بودن نیست بلکه در بسیاری از موارد ممکن است باعث شود که سیستم فوق مورد حمله قرار گرفته و هک شود. به عنوان مثال پلتفرم جوملا که بر پایه php است یکی از ضعیف ترین پلتفرم ها از نظر امنیتی است و هر از چندگاهی شاهد هک شدن نسخه های مختلف آن در اینترنت هستیم.

عملکرد :

PHP معمولا تحت لینوکس، آپاچی و mysql می باشد که بهینه سازی بسیاری برای ارتباط سریعتر این سه انجام شده است که باعث سرعت بالای آن گردیده است و همچنین ASP.NET معمولا تحت ویندوز، IIS و MSSQL که ارتباط و هماهنگی مناسبی با یکدیگر دارند و تفاوت عملکرد PHP و ASP.NET نا محسوس می باشد. موردی که وجود دارد آن است که فایل های سیستمی لینوکس عملکرد بهتری نسبت به فایل های NTFS ویندوز دارند و همین مورد باعث برتری عملکرد PHP نسبت به ویندوز می باشد.
مقایسه کارایی :

میزان کارایی اکثر اپلیکیشن ها تابعی است از تعامل میان اسکریپت ها، پایگاه داده و سرور. بیشتر اپلیکیشن های تحت وب با استفاده از زبان PHP نوشته شده اند و از پشته LAMP پیروی می نمایند پایگاه داده MySQL، سرور Apache، سیستم عامل لینوکس و زبان برنامه نویسی PHP از این رو عملکرد و کاراریی های آن برای اپلیکیشن های تحت وب بهینه سازی سایت شده است.پایگاه داده ای که در اکثر مواقع برای ASP.net مورد استفاده قرار می گیرد MSSQL می باشد (Microsoft SQL Server) البته شما می توانید به جای MSSQL از MySQL استفاده نمایید.
اختلاف در کاراریی و عملکرد ASP.net با پشته MSSQL از PHP با پشته MySQL بسیار ناچیز است. یکی دیگر از فاکتورهایی که عملکرد و کارایی این زبان ها را تحت تاثیر قرار می دهد سیستم عامل و فایل های سیستمی که بر روی سرور قرار داده می شوند است. زمانی که آزمون هایی برای بررسی کارایی و عملکرد سیستم های ورودی و خروجی انجام می شود نتایج نشان می دهد که فایل های سیستمی Linux و ext4 عملکرد ورودی خروجی بهتری نسبت به فایل های سیستمی ویندوز و NTFS دارند. از این رو می توان گفت که زمانی که اپلیکیشن نوشته شده با استفاده از زبان PHP بر روی یک هاست لینکوس اجرا می شود عملکرد بهتری خواهد داشت نسبت به یک اپلیکیشن مشابه نوشته شده با استفاده از ASP.net که بر روی هاست ویندوز اجرا می گردد.

حقوق برنامه نویس PHP در مقایسه با ASP.Net :

 میانگین حقوق در ایران برای برنامه‌نویس ASP.Net بالاتر از PHP است. البته حقوق یک برنامه نویس ارتباط مستقیم با تجربه کاری و قدرت حل مسئله او دارد.
در خارج از ایران هم این موضوع صدق می‌کند و یک برنامه نویس .Net حقوق بالاتری نسبت به یک توسعه دهنده PHP دریافت می‌کند. و شرکت‌های ثروتمند بیشتر به سمت ASP گرایش دارند.

سادگی زبان  :

یکی از مهمترین قسمت ها در تفاوت زبان برنامه نویسی php با ASP در نحوه یادگیری آن می باشد.
پی اچ پی با هدف اولیه سادگی برای استفاده و یادگیری نوشته شده است و تاکنون نیز هدف را منظور کرده است بنابراین میتوان به سادگی گفت که یادگیری و استفاده از پی اچ پی ساده تر از ASP.NET است.
استفاده از ASP.NET نیازمند آشنایی با مفهوم اولیه شی گرایی و همچنین پیچیدگی‌های خاص دات نت است. در واقع یادگیری و استفاده از ASP کلاسیک ساده تر از ASP.NET و قابل قیاس با یادگیری پی اچ پی است. عموما طراحان وب سایت به دلیل سادگی استفاده و یادگیری پی‌اچ‌پی آن را یاد میگیرند و برنامه نویسان حرفه‌ای و مهندسان نرم افزار هم علاقه بیشتر به دات نت و JAVA دارند.
همچنین یک نکته قابل توجه در پی‌اچ‌پی وجود هزاران خط کد و اسکریپت آماده به زبان PHP است که تقریبا در هر زمینه‌ای وجود دارند ، این قضیه باعث شده بسیاری از برنامه نویسان پی‌اچ‌پی به جای نوشتن کدها بسیاری اوقات اسکرپیت‌های آماده موجود در اینترنت را سر هم کنند و به هدف خود برسند و یا شیوه کار را فرا بگیرند. البته کم کم در مورد دات نت نیز این قضیه در حال اتفاق است و سایتهایی که کدهای نمونه یا نرم افزارهای آماده با سورس ارائه میکنند در حال افزایش هستند.

پشتیبانی  :

PHP به عنوان محبوب ترین زبان برنامه نویسی تحت وب می باشد که توسعه دهندگان و جوامع کاربری بسیاری دارد و همین مورد باعث گردیده در صورتی که برای توسعه دهنده مشکلی به وجود آمد بتواند نحوه رفع مشکل خود را به راحتی و با جستجو در اینترنت بیابد. پشتیبانی و کمک آموزشی های ASP.NET به مراتب کمتر از PHP می باشد.

میزان محبوبیت  :

بر اساس آمارها و رای گیری های انجام شده در مرجع معتبر TIOBE Language Index، PHP از لحاظ میان محبوبیت در رتبه ششم در میان زبان های برنامه نویسی آنلاین یا مخصوص اینترنت قرار دارد حال آنکه در کمال ناباوری باید بگویم که ASP.net در میان 20 نتیجه اول در این آمارها و رای گیری ها مشاهده نمی شود. این نشان دهنده میزان عدم محبوبیت این زبان در میان کاربران و برنامه نویسان آنلاین یم باشد.

ابزارات توسعه  :

برای زبان PHP ابزاراتِ مختلفی وجود دارد که با استفاده از آنها می‌توانید از این زبان استفاده کنید. در این زبان ابزارِ مشخصی وجود ندارد که مورد تایید همه باشد. یعنی بگویند این ابزار عالیه ولی من با این راحتم. که با بررسی در مورد بهترین ابزار برای PHP ما به یک ابزار مشخص نرسیدیم تنها دلیل آن هم کدباز بودن این زبان است. تحقیق ما نشان داد که یک برنامه نویس PHP برای ساخت یک پروژه از ابزاراتِ مختلفی برای توسعه، دیباگ، تست، بهینه سازی و... استفاده میکند.
برای زبان ASP.Net هم ابزارات مختلفی وجود دارد اما تحقیق ما نشان داد که اکثرا برنامه‌نویسان این زبان از ویژوال استودیو (Visual Studio) استفاده می‌کنند. ابزاری فوق‌العاده که مایکروسافت به خوبی طراحی کرده و نیازی وجود ندارد که یک برنامه نویس داشته باشد و این ابزار نتواند آن را برطرف کند.

بهترین زمان برای استفاده از PHP:

اگر پروژه ای که میخواهید انجام دهید یک پروژه کوچک است و در مقیاس های بزرگ عملیاتی اجرائی نمیشود ، php میتواند گزینه خوبی باشد.
اگر اسکریپت‌های آماده و کدهای آماده برای پروژه فوق به زبان php وجود دارند، گزینه مناسبی است.
اگر سرور شما لینوکس است، از php استفاده کنید.

بهترین زمان استفاده از ASP.net :

اگر پروژه شامل انواع نقش های سیستمی و سطوح دسترسی مختلف و یک پورتال است از دات نت استفاده کنید.
اگر می خواهید از ساختارهای نوین برنامه نویسی مانند MVC  استفاده کنید از دات نت استفاده کنید.
اگر می خواهید نرم افزار وب شما به صورت شی گرا تولید شود از دات نت استفاده کنید.
اگر به دنبال توسعه ساختار و پشتیبانی سیستم در دراز مدت هستند و دید کوتاه مدت به پروژه ندارید از دات نت استفاده کنید.